Книга
Книга
ЯС-Л. Лорьер
СИСТЕМЫ
ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Перевод с французского
под редакцией
канд. физ.-мат. наук В. Л. Стефанюка
Москва «Мир》1991
ОГЛАВЛЕНИЕ
779 9 о о1369 9 о о136Предисловие редактора перевода
7
7
9 9 о о136
9 9 о о136
Предисловие .
Глава 1. Искусственный интеллект *
Информатика и искусственный интеллект .. “
Искусственный интеллект как наука ...
Области применения искусственного интеллекта
Историческая справка
Заключение
Глава 2. Представление задачи . . 19
Введение史
Естественный язык 19
Постановка задачи 2°
Задачи в замкнутой форме 20
Общий подход к решению задачи22
Пример полного решения задачи..- 27
Что нужно сделать, чтобы решить задачу?31
Из истории развития и преподавания математики-32
Представления 4°
Использование графических моделей в области искусственного интеллекта48
Изменение представлений .. 57
Язык Лисп 59
Графы •• . 77
Глава 3. Формальные системы 79
Введение79
Определение формальной системы . .. 81
Разрешимость и интерпретацияформальныхсистем85
Исчисление высказываний .. 93
Исчисление предикатов первогопорядка100
Теоремы ограничения в формальных системах114
Алгоритм унификации .. . . . .116
Примеры использования унификации131
Программа Ж. Питра для исчисления высказываний154
Принцип резолюции и язык Пролог 161
Глава 4. Классические методы решения задач 178
Примеры хороших алгоритмов .178
Список хорошо решаемых задач (полиномиальные алгоритмы) 200
Классификация задач по степени сложности'. . 204
Класс NP: недетерминированные полиномиальные задачи .. ,. 208
Список задач класса NP . . ....211
Изучение задач типа NP с помощью классов эквивалентностей 213
Основная теорема (Cook, 1971) . . . « . . . 214
Класс ^P-пoлныx задач 218
Несколько доказательств эквивалентности задач219
Глава 5. Методы распространения ограничений и перебора. 227
Решение задач с помощью перебора •. . 227
Градиентные методы 228
Линейное программирование231
Градиентные методывтеории графов234
Эвристический поиск236
Ат^оритм А*
Неявный перебор с распространением ограничений
Динамическое программирование
Оптимальная раскраска вершйн на графе •
Алгоритм оптимальной раскраски графа -.
. Задача о коммивояжере
Универсальная программа решения задач
Глава 6. Игровые программы. Психологические аспекты ......
Дерево допустимых ходов
Оценивание позиций-- •
Метод минимакса и выбор очередного хода ........
Альфа — бета-процедура .
Основные недостатки игровых программ, основанных на анализе дерева ходов . ••--
Психологические аспекты принятия решений . . . . . . . •
Исследование психологии шахматистов -
ROBIN ——интеллектуальная программа для игры в шахматы ..
Глава 7. Экспертные системы..-
Примеры диалогов в экспертной системе
Функционирование системы MYCIN — TEIRESIAS * ....
Продукционные системы
Экспертные системы, основанные на логике предикатов первого порядка .
Сравнение декларативного и процедурного подходов .....
Различные типы знаний и их представления
Метазнание •
Заключение
Конкретный пример машины вывода экспертной системы •..
Глава 8. Информационная система ALICE .-
Общее описание системы .. . . • •・.•
Язык системы ALICE
Модуль решения задачи
Результаты
Работа системы ALICE
Подробные примеры решения
Задачи, решенные с помощью системы ALICE .......
Эффективность системы и общие замечания
Ввод условий задач на французском языке ,
Глава 9. Усвоение знаний -
Различные типы обучения
Обучение игре в шашки .. <
Обучение робота полезным действиям. Система STRIPS •..
Усвоение правил игры
Обучение планам
Учет характеристик
Усвоение понятий . . .\ .
Библиография . . . •・
8 5 17 9 8 9
3 4 6 6 6 7 8
2 2 2 2 2 2 2
о 18 0 6
11 и и-
3 3 3 3 3
0 4 8 6
3 3 3 4
3 3 3 3
3 4 5 9
6 6 6 7
3 3 3 3
001930374044
4 4 4 4 4 4
9 0187856804555668991
4 444444445
6
5
6735069 6
1122333 4
5555555 5
Предметный указатель565
ББК 5.05 Л78
УДК 007.001.33
Перетодчики: Евграфова наук Чигирь С. Д.Перетодчики: Евграфова наук Чигирь С. Д.С. М., Дюишев Р. И., Дихтяр В. И., канд. физ.-мат.
Перетодчики: Евграфова наук Чигирь С. Д.
Перетодчики: Евграфова наук Чигирь С. Д.
Лорьер Ж.-Л.
Л78 Системы искусственного интеллекта: IIq). с франц — М.: Мир, 1991.—568 с.» ил.
ISBN 5-03-001408-Х
Книга известного французского специалиста посвящена вопросам проектирования и применения систем искусственното интеллекта, при построении которых используются такие современные инструментальные средстеа, как языки Лисп, Пролог и оболочки эксп^тных систем. В качестве применения рассмотрена область принятия решений.
Для специалистов в области искусственного интеллекта и студентов старших курсов соответствующих специальноф'ей вузов.
1402070000-281
Л 041(01)-91ЬВК S.05
Редакция литературы по информатике и робототехнике
Научное изданиеЖАН-ЛУИ ЛОРЬЕРСИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Заведующий редакций д-р техн, наук А Л. Щё{№Зам. заведующего редакцией Э. Н. БадиковСг. научный редактор И. М. Андреем ,Мл. научный редактор В. Н. СоколоваХудожник А КоршуновХудожественные редакторы Н. М. Иванов, О. Н・ АдаскмнаТехнический редактор Л. П. БирюковаКсфрёкгор Н. А П(ря
ИБ № 7183
Сдано в набор 09.11Л9. Подписано к печагш 13.06.90. Формат 60算88 1/16. Бумага типографская кн.-л^рк. Печать офюегам. Гарнтура лэтераяурная. Объем 17.75 бум. л. Усл. печ. л. 3‘5. Усл. кр.-отг. 35,5・ УЧ.-ИЗД. л. 33,5. Изд. № 6/6674. Тираж 20 000 экз. Зак. 205. Цена 2 P・ 80 к ИЗДАТЕЛЬСТВО «МНР» 129820, ГСП, Москва, HTI0, 1-й Рижский пер” 2.
Ленинградская типография №2 головное предприятие ордена Тонового Красного Знамени Ленинградского объединения «Техническая книга» им. Евгений Соколовой Государственного KOMirrera СССР по печати. 1980S2, г. Ленинград, Л-52, 1|змайловский проспект, 29.
ISBN 5-03-001408-Х (русск.)ISBN 5-03-001408-Х (русск.)Отпеч*тано в Ленинградской типографии № 4 Государственн1ого комитета СССР по печати, 191126, Ленинград, Соцналистаческая ул., 14.
ISBN 5-03-001408-Х (русск.)
ISBN 5-03-001408-Х (русск.)
О Jean-Louis Lauriere, 1987
© перевод на русский язык, Евграфова С. М・,Девишш Р. И., Дихтяр В. И・,Чигирь С. Дм 1991.
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
В наше время интенсивной интернационализации науки, когда идентичные по уровню и подходам исследования проводятся и в США, и в СССР, и в Японии, тем не менее, может быть, стоит обратить внимание на то, что говорят о японском проекте компьютеров пятого поколения, об английской реакции на японский вызов, о европейской или американской школе искусственного интеллекта. Оказывается, кроме сил, объединяющих мировую науку (особенно такую, как искусственный интеллект) и обусловленных применением однотипной вычислительной техники, стандартных языков программирования, .а в последнее время и созданием международных научных проектов типа ЕСПРИТ, большую роль играют «национальные» научные традиции, придающие своеобразие исследованиям, проводимым в разных странах.
Известный французский ученый Жан-Клод Симон (кстати, в его лаборатории информатики в Университете Париж-VI начинал научную деятельность автор данной книги Жан-Луи Лорьер) объяснил однажды, почему он очень любит научные командировки в СССР: «В Америке, посетив одну из лабораторий, можно считать, что ты побывал везде, так как все американские лаборатории искусственного интеллекта делают одно и то же. Другое дело в Москве: здесь что ни человек, то своя проблема, свой подход...»
Здесь не место вникать в вопросы, что лучше — концентрация усилий или широта охвата проблемы и какова истинная причина такого положения вещей. Важно то, что можно твердо говорить о «европейском» искусственном интеллекте, в котором в свою очередь отчетливо выделяются итальянская, французская, английская и другие школы.
Одна из отличительных черт европейской научной школы состоит в потребности поставить любую дисциплину на прочную научную основу, что, несомненно, нашло отражение в предлагаемой советскому читателю книге. В США — родине искусственного интеллекта—многие считают, что искусственный интеллект ——это совершенно новое направление, и, чтобы им эффективно заниматься, нужно отказаться от таких наук, как кибернетика или распознавание образов, и начать все с самого начала. Известный математик и кибернетик Марвин Минский из лаборатории искусственного интеллекта Массачусетского технологического института считает, что даже математика как универсальный язык бесполезна в искусственном интеллекте. Языком искусственного интеллекта должен стать язык интеллектуальных программ.
Европейская школа не придерживается столь радикальных взглядов и предполагает, что научные достижения накапливаются постепенно и смена парадигм в науке отнюдь не перечеркивает прошлого, а дает лишь новый, свежий взгляд. Данная книга отличается от большинства (американских) работ по искусственному интеллекту европейской основательностью, сдержанностью и деловитостью. Возможно, одной из причин этого является то, что сам автор—увлеченный' программист, вдумчивый ученый, не склонный, как многие его заокеанские коллеги, к чрезмерному оптимизму. Он сторонник кропотливого накопления результатов с постоянной привязкой их к фундаментальным разделам науки. Эта книга будет импонировать советским чи^ тателям, обычно склонным к критическому осмыслению достижений и трудностей.
Заканчивая это небольшое введение к книге, хочется отметить следующее: статистика говорит о том, что интерес к искусственному интеллекту нисколько не ослабевает. На последней Международной объединенной конференции по искусственному интеллекту, состоявшейся в августе 1989 г. в Детройте (США), присутствовало 6500 участников (!). Хочется верить, что данная книга будет способствовать пополнению армии специалистов по искусственному интеллекту и нашими учеными, которые пока что не слишком активно участвуют и в международных, и в европейских объединенных конференциях по искусственному интеллекту (следующая конференция будет проходить в 1990 г. в Швеции).
Перевод книги выполнен Р. И. Девишевым (гл. 1—3), С. М. Евграфовой (гл. 4, 5), С. Д. Чигирем (предисловие автора, гл. 6—8) и В. И. Дихтяром (гл. 9).
А Л. Стефанюк
П1РЕДИСЛ0ВИЕ
Основания для появления этой книги возникли еще в то время, когда я учился в лицее. Как к все остальные ученики, я жадно впитывал знания по физике и математике, постоянно спрашивая себя: а для чего все это может пригодиться? Что касается физики, то ее отношение к реальной жизни представляется: очевидным, но мы тогда не могли в это поверить, настолько все было таинственным. К тому же каждый год новый преподаватель объяснял нам, что все, что мы изучали в прошлом году, было неверным... Физика представала перед нами как причудливая игра, в которую играют взрослые. С математикой же все было по-другому. В ней нас вдохновляла красота абстракции, мы получали удовольствие от поиска красивых доказательств. Однако ко всему этому часто примешивалось ощущение, что нас обманывают. Нам все время преподносили определения и доказательства как настоящую реальность, но причины явлений никогда не объяснялись. Казалось, что большую чость доказательств- преподаватели получают с помощью магических манипуляций с кусочком мела у доски. Как можно было связать воедино все эти линии и не выпустить из поля зрения ни одну из них от самого начала доказательства до его чудесного конца? И над всем этим: 《А для чего все это надо?» 、
Ответ на этот вопрос пришел позже, через несколько лет «активной» жизни. На самом деле все это ни для чего не было надо» потому что предметы, которые мы изучали, вносились в школьные программы произвольно. По правде говоря» они служили лишь поводом для перехода к более серьезным вещам, таким, как учиться понимать, учиться решать задачи, учиться познавать. Но любопытно, что эти «вещи» не признаются и почти не преподаются. Можно сказать, что существует определенный вид интеллектуального терроризма, когда некоторых учеников называют «нуль в математике», хотя их единственная вина состоит в том, что они не понимают то, о чем... никогда не говорится. Некоторым удается этого избежать, потому что они раньше сумели познакомиться с неявными правилами этой игры. Есть и такие, кто учит все наизусть...
Но в настоящее время существует область исследований, в которой первым желанием исследователей является стремление понять, как система обработки информации ——будь то человек или машина ——способна воспринимать, анализировать, передавать и обобщать то, чему ее обучают, и с помощью этих данных исследовать конкретные ситуации и находить решения задач. Данная область исследований ——искусственный интеллект, старший сын информатики. Его предметом изучения является любая интеллектуальная деятельность человека, подчиняющаяся заранее неизвестным законам. Его можно также определить как 《все то, что еще не сделано в информатике».
Если предметом информатики является обработка информации, то к области искусственного интеллекта относятся такие случаи этой обработки, ко^ торые не могут быть выполнены с помощью простых, точных алгоритмических методов и которых великое множество. К ним относятся даже такие банальные ситуации, как чтение текста с листа, находящегося перед вами. Один и тот же символ, например вертикальная черточка, может восприниматься визуальной системой в зависимости от контекста либо как 厶 либо как 厶 либо как знак абсолютной величины. В случае когда текст написан
от руки, ситуация еще хуже. Как может выйти из этого затруднения наша распознающая система? Вот одна из главных проблем, изучаемая в искусственном интеллекте. К области этой науки относятся также идентификация изображения человека (являющаяся более трудной задачей, чем просто идентификация букв), понимание текста (а не отдельных букв), распознавание речи, доказательство теорем, решения задач, поиск хода в шахматах, составление расписаний, подготовка ответов на ежедневный интеллектуальный тест, разработка планов в архитектуре, постановка медицинского диагноза, анализ журнальной статьи,. В последнее время во всех этих областях достигнуты впечатляющие успехи.
Ж^Л. Лорьер
Глава 1
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ
В области искусственного интеллекта основными проблемами являются поиск и представление знаний. Цель исследований при этом состоит не только в разработке новых теоретических построений, но и в создании для ЭВМ соответствующих программ наиболее общего характера.
В начале главы мы кратко опишем состояние области традиционной информатики, затем покажем, каким образом исследования в области искусственного интеллекта выделились в самостоятельное научное направление.
Информатика и искусственный интеллект
Термин «информатика» используется исследователями в двух различных значениях. Во-первых, информатика рассматривается в качестве основы для моделирования и, во-вторых, как инструмент для непосредственной проверки гипотез (ЭВМ — прекрасное средство тестирования идей).
Информатика и искусственный интеллект имеют тесные взаимосвязи с лингвистикой, психологией и логикой, которые изучают явления, относящиеся к познанию, пониманию и умозаключениям. Эти связи носят взаимный характер: с одной стороны, сегодня лингвисты, психологи, специалисты в области математической логики переводят в программы те новые модели, которые они разрабатывают (точно так же, впрочем, как математики, биологи, исследователи в области медицины), а с другой — исследователи в области искусственного интеллекта изучают эти модели и пытаются воссоздать на их основе логику эффективных методов решения задач.
Особенно тесные взаимосвязи имеются между нскусствен- >ным интеллектом и науками о познании. Это обусловлено тем, что единственным устройством для разумных рассуждений, которое нам доступно, является наш мозг, причем непосредственное исследование мыслительных процессов, протекающих в нем, практически невозможно. Использование ЭВМ в качестве материальной основы искусственного интеллекта позволяет как бы. изнутри взглянуть на подобные процессы.
Впервые после фундаментального пересмотра картины мира, связанного с именами Коперника и Дарвина, разработка
методов искусственного интеллекта возвращает нас к вопросу о месте человека в природе. По существу впервые оспаривается исключительность разума.
Искусственный интеллект как наука
Искусственный *интеллект как наука насчитывает уже около 30 лет. Задачей этой науки является воссоздание с помощью искусственных устройств (в основном с помощью ЭВМ) разумных рассуждений и действий. При этом возникают трудности двух типов::, ; . ::
В большинстве случаев, выполняя какие-то действия,- мы сами не осознаем, как мы это делаем. Нам неизвестен точный способ (или алгоритм, как говорят специалисты), как именно происходит понимание текста, узнавание лица, доказательство теоремы, выработка плана действий, решение задачи и т. п.
ЭВМ априори далеки 0T человеческого уровня компетентности: до начала любой их работы необходимо составить соответствующие программы. Однако в действительности , языки программирования дают возможность выражать только весьма элементарные понятия.
Следовательно, методы искусственного интеллекта представляют собой экспериментальную научную дисциплину. Под экспериментом в данном случае понимается проверка и уточнение моделей (представляющих собой программы для ЭВМ) на многочисленных. примерах ——наблюдениях над человеком (в том числе и над самим исследователем) с целью раскрыть эти модели и лучше понять функционирование человеческого разума.
.Ниже мы уточним определение области искусственного интеллекта. Затем мы поговорим об истории утой новой научной дисциплины и в заключение рассмотрим современные методы: и перспективные направления исследований в области искусственного интеллекта.
Области применения искусственного интеллекта
Всякая задача, для которой неизвестен алгоритм решения, априорно относится к искусственному интеллекту. Под алгоритмом понимается вся последовательность заданных действий, которые хорошо определены, выполнимы на современных ЭВМ, причем решение задачи должно получаться в приемлемое время (порядка ми«уты или часа),.Так, например, неизвестен алгоритм для игры в шахматы. И хотя эта игра имеет конечное число ситуаций, рассмотрение их всёх потребовало бы тысячелетий. Аналогичным образом не существует общего алгоритма медицинской диагностики, составления резюме текста и^и перевода его на иностранный язык. <
К сфере искусственного интеллекта относятся те весьма различные области, где мы действуем, не имея абсолютно точного метода решения проблемы, и которые обладают в общем двумя характерными особенностями: •
в них используется информация в символьной форме: буквы, слова, знаки, рисунки. Это отличает область искусственного интеллекта от областей, в которых традиционно компьютерам доверяется обработка данных в числовой форме;-
в них предполагается наличие выбора-, действительно, сказать, что не существует алгоритма, это значит сказать, по сути дела, только то, что нужно сделать выбор между многими вариантами в условиях неопределенности, и этот недетерми- низм, который носит фундаментальный характер, эта свобода действия являются существенной составляющей интеллекта.
Первой проблемой, с которой сталкиваются исследователи в области ■ искусственного интеллекта, является проблема восприятия информации. Возможности сенсорных и исполнительных механизмов, присущих человеку, в области зрения, манипулирования, восприятия вкуса и запаха, а также в понимании и воспроизведении речи еще не достигнуты в современных технических системах. Рассмотрим отдельные направления, где находят применение методы искусственного интеллекта.,
Восприятие и распознавание образов
Любая система обработки информации получает исходные данные от своих органов восприятия. Из наших пяти органов чувств несомненно самое важное место занимает зрение. Техническими аналогами глаза сегодня являются телекамеры и лазеры, работа которых непосредственно связана с программами распознавания изображений и анализа сцен. Микрофоны представляют собой воспринимающие органы технических слуховых систем. Область обработки поступающих сигналов известна под названием ^распознавание образов''. Распознающая система является необходимой частью любой автономной системы обработки информации. Однако этим еще не решаются задачи, возникающие в области искусственного интеллекта, поскольку совсем недостаточно того, чтобы исходная информация была закодирована и занесена в память. В первую очередь возникают проблемы понимания и логического рассуждения, которые являются специфическими для искусственного интеллекта.
Математика и автоматическое доказательство теорем '
В искусственном интеллекте особое значение придается символьной, а не числовой информации. Соответственно и первыми областями, в которых работали исследователи искусственного
интеллекта, стали математика и различные игры. Обе эти сферы оказались хорошими областями приложения методов искусственного интеллекта в силу того, что связанные с ними задачи и проблемы хорошо формализованы, а, кроме того, сами эти области являются примерами высших достижений человеческого разума.
Первые программы автоматического доказательства теорем появились в 1957 г.» т. е. 10 лет спустя после появления первых ЭВМ. Вначале эти программы были достаточно просты, но затем все более и более усложнялись. Уровень человека средних способностей был ими быстро превзойден, однако уровень хорошего математика не достигнут до сих пор. В процессе создания таких программ были изучены более глубоко и получили дальнейшее развитие теории доказательств и эффективных методов их построения. Более того, формальные разделы математики, например такие, как математическая логика, оказались необходимыми для таких важных приложений, как робототехника, решение задач, поиск информации в базах данных. Математика и автоматическое доказательство теорем остаются и сейчас одним из основных направлений приложения методов искусственного интеллекта.
Игры
Как и формальные системы в математике, игры, характеризующиеся конечным числом ситуаций и четко определенными правилами, являются хорошей сферой приложения дедуктивных методов. Вот почему они были и остаются до сих пор предпочтительными объектами исследований в искусственном интеллекте. В этой области уровень среднего игрока также был легко превзойден, но уровень чемпиона мира еще не достигнут. Неожиданно оказалось, что возникшие трудности были те же, что и в математике, и во многих других областях. Эти трудности связаны с тем, что, играя, человек использует весь объем знаний, который он накопил за свою жизнь. В азартных играх, подобных покеру или нардам, где большое значение имеет расчет вероятностей, программы работают великолепно.
Решение задач
Отметим, что понятие "решениеп в данном случае используется в самом широком смысле. Речь идет скорее о постановке, анализе и представлении конкретных ситуаций, чем о самом решении. На сегодняшний день достижения в этой области носят ограниченный характер. Это обусловлено тем, что, хотя многие хорошо решаемые задачи уже решены, остается широкое поле проблем, требующих специального изучения.
Речь идет о задачах, встречающихся в повседневной жизни, в исследовании операций или в математике, для решения которых требуется изобретательность и способность к обобщению. В частности, роботы должны быть способны решать такие задачи, решение которых мы получаем непроизвольно, например встать на что-нибудь, чтобы достать некоторый предмет, или зажечь свет, чтобы лучше видеть.
Понимание естественного языка
В области 1<понимания естественного языка" исследователи интересуются анализом и генерацией текстов, их внутренним представлением, выявлением знаний, необходимых для понимания текстов, т. е. синтаксических, семантических, прагматических знаний. Эти проблемы в данной книге не рассматриваются. (См. работу: Pitrat J. (1985): Textes, ordinateurs et comprehension. Eyrolles.)
Следует отметить, что результаты и социальные последствия исследований в области искусственного интеллекта скоро приобретут важное значение. Многие научные дисциплины окажутся непосредственно взаимосвязанными: психология (человеческий мозг остается обязательным объектом исследования в искусственном интеллекте), логика, лингвистика, биология (модели передачи информации с помощью генов), информатика (самоорганизующиеся системы, поиск в базах данных, автоматическое программирование), медицина (помощь в диагностике) и особенно, может быть, теория образования и обучения во всех научных дисциплинах (уровень детализации, достигаемый в программах искусственного интеллекта, выявляет недостатки традиционного образования и делает очевидными пробелы преподавания).
Историческая справка
Электронные вычислительные машины, даже если бы они не были необходимы для создания и испытания моделей искусственного интеллекта, являются замечательным средством исследования, и именно с ними связан взлет исследований по искусственному интеллекту. В 1954 г. А. Ньюэлл задумал создать программу для игры в шахматы. К. Шеннон, отец теории информации, уже предложил пригодный для этого метод. А. Тью- рннг» один из первых специалистов в области информатики, уточнил этот метод и промоделировал его вручную. В корпорации Рэнд Дж. Шоу и Г. Саймон объединились в работе по проекту Ньюэлла. Их поддержал коллектив психологов из Амстердама (руководитель А. де Гроот), который изучал стиль игры
крупных шахматистов. Язык программирования, специально созданный этой группой, предназначался для того, чтобы в машине было легко манипулировать информацией в символьной форме, работать с системой указателей и обрабатывать списки. Это был язык программирования ИПЛ1 (1956), явившийся предшественником языка Лисп (J. Mac Carthy, I960). Первой программой искусственного интеллекта стала программа uЛогик——Теоретик", предназначенная для доказательства теорем в исчислении высказываний. Ее работа была впервые продемонстрирована 9 августа 1956 г.
Программа для игры в шахматы NSS (Newell, Shaw, Simon) была создана в 1957 г. Ее структура и структура программы uЛогик ——Теоретик0, представление о ^желаемых ситуациях" и "эвристиках^ (правилах, которые позволяют сделать выбор при отсутствии точных теоретических оснований) привели позже к концепции Универсального Решателя Задач. Эта программа, анализируя различия между ситуациями и конструируя цели, хорошо решает головоломки типа "Ханойская башня” или вычисляет неопределенные интегралы.
Специалисты в области информатики начинают интересоваться непосредственно искусственным интеллектом, и некоторые уже пишут ставшие затем знаменитыми статьи, как, например, Дж. Маккарти, М. Минский, Г. Саймон. Создаются новые программы. Дж. Гелернтер (Gelernter, I960) показывает, что его программа доказательства теорем из школьной геометрии может работать лучше, чем ее создатель! Чтобы доказать, что треугольник АВС, у которого два угла у основания (углы при вершинах 5 и С) равны, является равнобедренным, программа вместо классического доказательства из учебников, заключающегося в построении высоты, опущенной из вершины А на основание, просто применяет теорему о равенстве треугольников АВС и АСВ\ Результат очевиден...
Программа ЕРАМ (Elementary Perceiving and Memorizing Program ——элементарная программа для ■ восприятия и запоминания) задумана Е. Фейгенбаумом для моделирования психологических ситуаций.
Программы, работающие с запросами на естественном языке, были созданы давно, найдя применение при поиске информации в базах данных. Например, программа БЕЙСБОЛ (Green et al. 1961) отвечала на вопросы о результатах прошедших бейсбольных матчей, а программе СТЬЮДЕНТ (Bobrow, 1964) было доступно решение алгебраических задач, сформулированных на английском языке.
Весьма большие надежды возлагались исследователями на работы в области машинного перевода. В этой сфере продол-
жают работать большие группы исследователей. Они ориентируются прежде всего на использование синтаксического анализа и информацию, получаемую из словарей (метод ключевых слад). И хотя этого недостаточно, как было доказано в сообщениях Дрейфуса (Dreyfus, 1972) и Лайтхилла (Lighthill, 1973), тем не менее исследователи потратили годы до того, как осознали, что автоматический перевод не является изолированной проблемой и требует для успешного осуществления наличия такого необходимого этапам как понимание.
Новый подход в формальной логике, основанный на приведении рассуждений к противоречию, появился в 1965 г. (Дж. Робинсон). Этот подход позволяет формализовать многие задачи и дать их машинную интерпретацию. Его успешно использовали для доказательства теорем (Слейгл, Грин, Ковальский) и верификации программ (Кинг, Уолдингер). Этот же подход послужил отправной точкой при создании оригинального языка программирования — языка Пролог, который обладает мощностью логики первого порядка и был создан А. Колмрауе- ром в 1971 г. (гл. 3).
Исследования в области искусственного интеллекта сопровождаются разработкой языков программирования новых поколений и созданием все более изощренных систем программирования. Это дает возможность при разработке программ для ЭВМ использовать наши обычные методы рассуждения и обычный словарный запас. Более того, языки программирования Лисп, Пролог, PLANNER, QA4 (называем здесь только наиболее важные из них) позволяют с помощью концепций цели и утверждения моделировать и формализовать логический вывод в решении задач; языки MACSYMA и REDUCE позволяют производить формальные манипуляции с математическими выражениями; язык TMS позволяет осуществлять управление при ненадежных сведениях и проверять соответствие последних друг другу.
Описанные выше результаты начинают использоваться в робототехнике при управлении работой неподвижных или мобильных роботов, действующих в реальном трехмерном пространстве. При этом возникает проблема создания искусственных органов восприятия. В системах технического зрения воспринимающим устройством служит телекамера, а при распознавании зрительных образов все большую роль играют методы анализа зрительных сцен, связанные с определением очертаний предметов (Гузман> Уолц, Уинстон), а также выявлением, предметов, т. е. частично скрытых другими предметами, находящимися на первом плане. Качество решения подобных задач с тех пор все время повышается.
До 1968 г. исследователи работали в основном с отдельными <смикропространствамим: они создавали системы, пригодные для таких специфических и ограниченных сфер приложения, как игры, евклидова геометрия, интегральное исчисление, имир кубиков”, обработка коротких фраз с небольшим словарным запасом. Почти во всех этих системах использовался один и тот же подход ——упрощение комбинаторики, базирующееся на уменьшении необходимого перебора альтернатив на основе здравого смысла,, применения числовых функций оценивания и различных эвристик. Обычно исследователь ограничивается только этими средствами, однако к настоящему времени уже реализованы десятки систем в различных областях применения, которые по уровню начинают соперничать с человеком. Примерами таких систем могут служить так называемые "игровые микрокомпьютеры,\ ориентированные на такие игры, как шахматы, игра го и некоторые азартные карточные игры. Однако экспертам предстоит судить, насколько велики достигнутые здесь успехи.
Заключение
В начале 70-х годов произошел качественный скачок в исследованиях по искусственному интеллекту. Это объясняется двумя причинами. .
Во-первых, все исследователи постепенно осознали, что всем ранее созданным программам не хватает самого важного — глубоких знаний в соответствующей области. Различие между экспертом и обыкновенным человеком состоит в том, что у эксперта имеется опыт в данной области, т. е. годами накопленные знания. Поэтому для существенного улучшения результатов работы какой-либо программы искусственного интеллекта требуется не просто усовершенствовать эвристики или какие-то числовые коэффициенты, с которыми работает программа, а напротив, необходимо использовать в ней метода логических рассуждений и накопленные в Ьпыте знания, представленные 8 символьной форме. '
Во-вторых, возникает конкретная проблема: как передать эти знания программе, если ее непосредственный создатель ими не обладает. Ответ ясен ——сама программа должна их выделять из данных, получаемых от эксперта. Исследователи столкнулись с необходимостью снабдить системы искусственного интеллекта возможностями, которых нет в обычных языках программирования, а именно: программы искусственного интеллекта должны уметь сами собирать информацию (например, информацию такого типа: “Париж, 10 февраля, погода хоро-
шая”),хранить эту информацию и использовать только при наличии достаточных оснований. В данном случае имеется разграничение между заключением о каком-то факте и использованием этого факта. В противоположность этому обычцый язык программирования позволяет выражать только . выполнимые задания или указания.
Отмеченная особенность является существенно важной, так как эксперт обеспечивает систему отдельными изолиройанными фактами, не зная заранее, в какой момент она решит принять их во внимание..
Исследования по решению задач и пониманию естественного языка объединяет одна основная проблема ——представление знаний.
К 1970 г. было создано множество программ, основанных на этих идеях. Первая из них — программа DENDRAL. Она предназначена для порождения структурных формул химических соединений на основе информации, поступающей от масс-спектрометра. Программа была разработана в Станфорде при участии нобелевского лауреата Д. Ледерберга. Эта программа набиралась опыта в процессе собственного функционирования. Экспертом в нее было заложено много тысяч элементарных фактов, представленных в виде отдельных правил. Рассматриваемая система явилась одной из первых экспертных систем, и результаты ее работы поразительны. В настоящее время система поставляется потребителям вместе со спектрометром.
Разумеется, представляется идеальным, когда программа сама выводит используемые правила логических заключений, основываясь на полученном опыте, т. е. обучается. Именно это было реализовано группой DENDRAL в Станфордском исследовательском институте. В программе METADENDRAL используется несколько общих правил, позволяющих отсекать неперспективные варианты при рассмотрении возможных фрагментов структур соединений. Кроме того, в процессе работы программа сама выводит и последовательно уточняет частные правила по- ■ строения структурных формул. Вначале это делается для отдельных связей химического соединения, а затем строится структура всего соединения. Это особенно удобно для малоизвестных групп химических соединений и позволяет использовать данную систему при редактировании соответствующих публикаций в международных периодических изданиях в области химии.
Терри Виноград разработал систему SHRDLU (1971)., которая моделирует робота, манипулирующего кубиками. С роботом можно говорить по-английски. Система интересуется не
синтаксисомсинтаксисомфраз, но и правильно понимает их смысл,
синтаксисом
синтаксисом
ческим 卫 прагматическим знаниям о своем
66 d
“мире кубнков”. Она умеет устранять двусмысленности, понимает метафоры, проверяет свои поступки и дает отчет о своих действиях. В конечном счете она показывает в реальных условиях, что все это стало возможным благодаря хорошей программе, которая управляет действиями такого робота.
Число исследователей, посвятивших себя целиком искусственному интеллекту, составляет во всем мире несколько сотен, но достигнутые ими результаты касаются каждого из нас. Об этих результатах много говорят средства массовой информации, и нередко можно услышать о "роботах” будущего; На самом деле необходимо хорошо представлять себе, что эти исследования являются долгими и трудными,, так как в отличие от искателя чудодейственных рецептов исследобатели в области искусственного интеллекта пытаются постепенно воссоздать и ввести в ЭВМ опыт и знания специалистов всех областей знания,
В общем случае эта информация отсутствует и нужна длительная работа с экспертом, чтобы выявить все, что было неосознанно отобрано и запомнено им за время своего совершенствования в какой-то конкретной области деятельности. Для решения этой проблемы разработаны специальные языки и системы представления информации. Но для ее решения необходимо также собрать больше информаций, чем ее содержимся в каком-либо словаре или энциклопедии. Эта задача не является невыполнимой, так как уже разработаны соответствующие методы и устройства. Кроме того, она увлекательна, так как позволяет узнать много нового о самом человеке и его разуме — ибо в действительности именно человек является основным объектом изучения, и можно быть уверенным, что когда эта задача будет решена, программы искусственного интеллекта будут иметь самостоятельную ценность независимо от современных компьютеров.
Глава 2
ПРЕДСТАВЛЕНИЕ ЗАДАЧИ
Введение
Смысл слова задача как синоним слову проблема происходит от значения греческого слова “баллейн” 一 бросать * (задача —^объект, брошенный вперед”). Это слово на французском языке (probleme) родственно таким словам, как бал (bal), парабола (parabole), гипербола (hyperbole), символ (symbole), шабли (chablis). Помимо обычных задач, с которыми мы сталкиваемся ежедневно, имеется другой тип задач, с которыми мы знакомимся еще в начальной школе. Их существенной характеристикой является то, что они "полностью определены'*, т. е. четко описаны на подходящем каждому случаю языке. Чаще всего это язык математики. Способность к более или менее глубокому пониманию этого слова, связанных с ним "правил игры”,его неявных указаний могут привести к разделению учеников на "физиков" и “лириков”. Цель второго раздела данной главы ——показать, что этот вопрос не так прост и человечество потратило тысячелетия на то, чтобы после множества попыток создать концепции, используемые сегодня, и этот процесс еще не закончен.
К сожалению, большинство задач, с которыми встречаемся мы в реальной жизни после завершения школьного образования, не являются полностью определенными. Чаще всего они описаны только частично и формулируются не нами, а кем-то другим, кто 'использует различные средства передачи информации, различные представления окружающей реальности: голос и интонацию, жесты, рисунки. Основным средством передачи информации при этом служит естественный язык. Однако с точки зрения решения задач он обладает четырьмя существенными недостатками: естественный язык неполон, избыточен, неоднозначен 〃 неточен.
Естественный язык
Очевидно, что большая часть информации, в обычном диалоге не выражается определенно и ясно. Обычно предполагается, что оба собеседника одинаково хорошо знают тему разговора. Однако, если эта гипотеза не подтверждается, становится возможной полностью ошибочная интерпретация его
содержания. Применение так называемых технических требований, в которых используются строгие спецификации; помогает устранить данный недостаток естественного языка.
В естественном языке избыточность часто используется для того, чтобы отметить важность определенных моментов задачи, но при этом ничего не говорится о том, что настоящие трудности при решении задачи связаны именно с этими моментами.
Язык существенно неоднозначен (без этого нам было бы просто невозможно общаться). Однако неполнота и неоднозначность могут привести к полностью ошибочной интерпретации. Наконец, обычный язык является грамматически некорректным, и парадокс состоит в том, что это самый несущественный недостаток естественного языка.
Постановка задачи
Поставить задачу означает прежде всего понять условия задачи (т. е. удалить неполноту, избыточность и неоднозначность) или, другими словами, найти соответствующее представление. На этой стадии часто используется другой тип представления, сильно отличающийся от языка, — графическое представление. Зрительная систра человека является великолепным средством сбора и обработки информации. На самом деле задача понята только тогда, когда найдено такое представление, в котором все элементы задачи представлены без избыточности и многозначности. В этом случае пространство поиска решений хорошо определено и чаще всего основная трудность решения уже выявлена. При этом прагматика и семантика задачи представлены в основном в формализованном виде. Задача становится одновременно и более абстрактной, и более строгой. В этом случае говорят о задаче в замкнутой форме или。замкнутой формулировке задачи.
Задачи в замкнутой форме
В наиболее общем виде условия задачи математически могут быть записаны следующим образом:
Найти в заданном, множестве X точки х, удовлетворяющие множеству заданных ограничений К(х).
Примером такой постановки может служить сформулированная в неявном виде задача Бине: "из множества целых натуральных чисел х выбрать такие числа, которые удовлетворяют уравнению %3 + 84 = 37N'.
Примечания. Г. Задание пространства X означает в общем случае одновременное (но неявное)*"задание структуры X и раз-
решенных операций над X. Знание X является определяющим в исходных данных.
Первоначально полученную замкнутую формулировку задачи можно в общем случае снова перевести в другую форму, чтобы с учетом ограничений К(%) уменьшить пространство X и улучшить таким образом представление задачи. Задача решается именно в процессе последовательных изменений представлений, причем последняя замкнутая формулировка дает непосредственно решение задачи.
Существуют два .основных варианта представления задачи в замкнутой форме.
Вариант /
Пространство содержит исходное состояние SO, заданы конечное состояние S1 и конечный перечень операторов ОаЬ, которые позволяют перейти от одного состояния Sa к другому состоянию Sb. Речь идет о том, чтобы найти путь от SO к S1.
В качестве примера рассмотрим “игру в пятнадцать”:
2
口
6
7 1
1
2
3
4
so =
12
9
10
'SI ==
5
о
7
8
15
8
9
10
12
4
13
14
13
14
15
□
Здесь операторы ОаЬ имеют следующий смысл: переход из одного состояния в другое производится последовательным перемещением занумерованных фишек на пустое место. Замкнутая формулировка задачи в рассматриваемом варианте имеет вид
X = (Последовательность операторов).
Решение % есть на самом деле определенная последовательность
х — (Оай, 06с,0/〃,0〃и),
где Sa = SO, Sv = SI.
Множество ограничений К(х) выражается в правиле следования операторов, причем конечное состояние для оператора является начальным состоянием для последующего.
Вариант 2
Здесь речь идет о классической формулировке задачи на доказательство в математике:
Получить С(х), исходя из Н(х).
Примером задачи в такой постановке является следующая задача:
Показать, что для всех п, n^N
Этот вариант сводится к предыдущему, если положить SO = = 〃(%) и S1 = С(х). Существенное отличие состоит, однако, в том, что оператора перехода от одного состояния к другому не заданы. Искусство математика как раз и заключается в том, чтобы отыскать те операторы, которые окажутся полезными для данного условия задачи. Часто конечное состояние С(х) вовсе не задано. Тогда наша задача формулируется следующим образом: "Рассчитать ^ Р" и становится совсем неопределенной, так как критерий остановки процесса решения оказывается субъективным. Обычно ожидается, что в процессе решения задачи результатом будет выражение "более простое”, чем начальное. Однако простота выражения также не является строго определенным понятием с математической точки зрения.
Общий подход к решению задачи
Подход человека к решению задачи включает семь основных этапов:
Выяснение смысла условий задачи.
Первые выводы из условий задачи.
Проигрывание ситуации.
Обдумывание.
Выбор наилучшего представления ——поиск замкнутой формулировки задачи.
Частичное (возврат к этапу 2) или общее решение задачи.
Проверка и обобщение решения.
Этап 1 существенно зависит от наших органов восприятия (слуха и зрения). Более того, поскольку человек обычно обладает ограниченными способностями к немедленному запоминанию, необходимо длительное осмысление условий задачи. На этапе 2 используются накопленные человеком знания, чтобы, во-первых, восполнить недостающую в условиях задачи информацию, и во-вторых, заменить длинные словесные фразы, содержащиеся в условиях задачи, на более подходящие и удобные для преобразований представления (такие, например, как рисунки, графы, алгебраические выражения).
Отметим, что уже начиная с 1962 г. простые программы, основанные на использовании ключевых слов, были способны ре-
шать несложные задачи из области физической кинетики (Bob- row, 1962) и теории вероятностей (Gelb, 1964).
Этап 3 является по крайней мере для человека основополагающим. Речь идет прежде всего о том, чтобы, возвращаясь к этапам 1 и 2. удостовериться, что ничто не пропущено и нет существенной ошибки в интерпретации условий задачи. Во вторую очередь речь идет о том, чтобы определить, в чем же состоит сложность задачи.
Этап 4 также является основным. На этом, этапе необходимо очистить нашу память от “фактов-паразитов", связанных с первоначальной формулировкой задачи, и цайти лучшие операторы для новой замкнутой формулировки задачи. Отметим, что на этом этапе нередко практикуется, следующий прием: на время отвлекаются от 'задачи и занимаются чем-нибудь другим. Мы по своей природе настолько программируемы, что забывание является часто единственным способом автоматически прогнать из памяти старые идеи и создать условия для возникновения но^'ых, ltОтвлечение" от задачи является прекрасным методом ее решения.
'На этапе 5 достигается формулировка задачи в замкнутой форме, т. е. ей придается полный, однозначный и безизбыточ- ный вид. Трудность решения задачи на этом этапе можно оценить более точно, исходя из размера -пространства поиска X, сложности ограничений К(%) и числа разрешенных операций. На этапе 6 почти всегда удается получить наилучшее представление благодаря малому пространству поиска. После того как новая замкнутая формулировка задачи получена, цикл решения можно повторить снова, начиная с этапа 2*
На -этапе 7 процесс решения задачи заканчивается. Затем полезно вернуться к первому этапу, чтобы обсудить решение с заказчиком, удостовериться в адекватности решения исходной формулировке, проверить, как ведет себя полученное решение в предельных точках, а также оценить степень влияния существенных входных параметров на результат. Интересно исследовать общность использованного подхода, рассмотрев такие вопросы:
Можно ли обобщить данную задачу, сохранив используемый метод решения?
: Существуют ли другие задачи, к которым мощет быть успешно применен тот 施е ^тод решения? ,
Существуют ли другие методы решения для той же задачи?
Проиллюстрируем проблемы, типичные для первого и второго этапов, решедйя задачи, рассмотрев ситуации, представленные на рисг2.1—24*
Рис. 2.1.
Пример с фигурой, изображенной на рис. 2.1, хорошо изве^ стен. Изображенная здесь фигура может рассматриваться как
Рис. 22
Рис. 2.3.
куб с передней гранью, расположенной внизу слева, или же, наоборот, как куб, в качестве передней грани которого рассматривается граиь, расположенная справа вверху (в предыдущем рассмотрении она была задней). Этот пример доказывает, что наша зрительная система постоянно осуществляет интерпретацию изображения. Это становится более очевидным при рассмотрении рис. 2.2. Поворачивая рисунок, можно попеременно видеть в нем то дом, то пляжную ка^нку, то брусок, срезанный "в угол” с одного конца. На рис. 2.3 требуется провести
через каждую из 9 точек ломаную линию, не отрывая карандаша от бумаги так, чтобы получилось не более 4 линейных фрагментов. Если при решении этой задачи пытаются провести ломаную прямую внутри квадрата, состоящего из девяти точек, то решения найти невозможно. Однако приведенная формулировка задачи на самом деле не накладывает такого ограничения. (Решение задачи показано на рис. 2.5.) Что касается задачи на рис. 2.4, где требуется построить 4 равновеликих треугольника, используя для этого 6 спичек, то 2 лишних ограничения, которые мы, как правило, подразумеваем, и которых йет в условиях задачи, должны быть сняты, чтобы отыскать решения. Другими словами, спички могут пересекаться и решение не обязательно должно быть плоским. Теперь легко находятся два
решения задачи: одно в плоскости (рис. 2.6), другое решение — об^емное( (рис. 2.7).
Следующий пример касается задачи, сформулированной на обычном разговорном языке.
」"Одмн жестокий король заточил в подземелье молодую девушку за то, что она не захотела выйти за него замуж. Истек
Рис. 2.7.Рис. 2.7.
Рис. 2.7.
Рис. 2.7.
год заключения, но девушка не отказалась от своего решения. Тогда король приказал вывести ее во двор замка и предложил е访 следующее. Король выберет среди камешков двора два (черный й белый) и спрячет один в правой руке, а другой в левой. Если девушка выберет руку, в ‘ которой окажется белый камешек, она будет освобождена, но если в руке окажется черный камешек, девушка выйдет замуж за короля.
Девушка приняла эти условия с большой тревогой, которая переросла в ужас, когда девушка заметила, что король поднял с земли только черные камешки! Как же ей поступить?"
.При формальном подходе задача, поставленная таким образом, не имеет решения. Однако на самом деле нарушение королем условия задачи о выборе из двух камешков разного цвета обернулось против него. Девушка выхватила один камешек из рук короля и как бы нечаянно уронила его на землю, где его нельзя было отличить от других таких же камней. "Ах, извините меня, — воскликнула девушка, — но теперь по цвету того камешка, который остался у Вас, Ваше Величество, мы определим цвет того камешка, что решит мою судьбу.” И так как это был черный камешек, то девушка стала свободной.
Эти простые примеры показывают, что первый и второй этапы решение задачи в общем случае частично перекрываются. Отсюда, в частности, вытекает, что задача в том виде, как она ^понята", не имеет решения, и только отыскивая решение, выделяют истинную задачу, устраняя лишние ограничения.
Другой; но относительно часто встречающийся случай, когда мы не можем в явном виде представить условия задачи, относится к решениям типа "все или ничегоп. В этом случае решение возникает мгновенно после внутренней подсознательной работы. В качестве примера приведем следующую задачу.
"Допустим Вы одни в пустой комнате, где имеются два идентичных железных бруска, один из которых намагничен, а другой—нет. Необходимо определить, какой из брусков намагничен. Бруски тяжелые, твердые, прочные. Ничего другого у Вас не имеется”.'
Такое условие является единственным в своем роде. Мы обезоружены. Число операторов, т. е. возможных действий,
Рис. 2.8. Два квадрата со сторонами стве теоремы Пифагора.Рис. 2.8. Два квадрата со сторонами стве теоремы Пифагора.(а + Ь), используемые;При доказатель-(а + Ь), используемые;При доказатель-
Рис. 2.8. Два квадрата со сторонами стве теоремы Пифагора.
Рис. 2.8. Два квадрата со сторонами стве теоремы Пифагора.
(а + Ь), используемые;При доказатель-
(а + Ь), используемые;При доказатель-
крайне невелико. Велико искушение опустить руки й признать, что задача не имеет решения. Поразмышляйте еще немного прежде, чем прочтете следующее: решение задачи существует, и оно очень простое.
Ситуация несколько похожа на предыдущую. Проблема в том, чтобы “разорвать'' симметрию. Но в данном случае решение должно ■ основываться на знании физики и на том, что единственными предметами, доступными для манипуляций, являются эти два бруска. Магнитное притяжение проявляется совершенно симметрично в отношении обоих брусков, за исключением единственного места, а именно середины намагниченного бруска. Этот участок не намагничен. Достаточно приставить конец одного из брусков, например бруска А; к середине другого бруска В, и если притяжения не происходит, намагничен бру* сок В, а если бруски притягиваются, намагничен брусок Л.
Третий этап, связанный с пройгрыванием ситуации, является наиболее важным в начале решения. Прежде всего покажем на
очень простом примере, как уже этот этап может помочь найти интересные решения.
Например, как доказать теорему Пифагора, используя линейку и экер (прямоугольный чертежный треугольник)? Естественной является мысль рассматривать экер в качестве прямоугольного треугольника из теоремы, где а и b — его катеты, а с — гипотенуза. Чтобы возникла величина (。+ 匕)на чертеже, надо расположить экер вдоль линейки двумя различными способами. Полученные в результате построения два квадрата равной площади со стороной (a + 匕) показаны на рис. 2.8. Площадь S большого квадрата по построению равна (а + Ь)2, и если Т есть площадь треугольника, то площадь S правого большого квадрата равна 4Г + с2, а площадь S равного ему левого квадрата равна 4T + а2 + Ь2, что доказывает теорему.
2.6, Пример полного решения задачи
Рассмотрим пример, в котором охватывается весь процесс решения от первых этапов до получения замкнутой формулировки задачи и ее последующего решения.
(<Пусть имеется шахматная доска, каждая сторона которой содержит 100 клеток. Все 10 000 полей доски заняты черными шашками. В нашем случае разрешенными ходами являются "модификации", т. е. операции замены в каком-то ряду (строке или столбце) всех шашек ряда черного цвета на белые и белых на черные. Спрашивается, можно ли за конечное число ходов получить 1990 белых шашек, начиная с позиции, когда все шашки были черными?'1
На обычном языке это условие задачи легко формулируется и понимается. Однако, во-первых, ответ на поставленный вопрос не возникает сам по себе, а во-вторых, "проигрывание ситуации" затруднительно, так как доска размером 100 X 100 не является обычной. Чтобы уловить смысл задачи и сделать некоторые первоначальные заключения, т. е. создать очевидные представления условий, естественно рассмотреть задачу с уменьшенными параметрами, например использовать доску размером 4X4 или в качестве доски использовать абстрактный квадрат со стороной неопределенной длины. _
Первый вывод заключается в том, что как только сделан первый ход, то тут же появляются и белые шашки. Этот общий вывод устраняет странность, бросающуюся в глаза при знакомстве с условиями задачи. Дело в том, что в них говорится о белых шашках, хотя речь вести о них имеет смысл, только начиная со второго ходгГ Другие заключения появляются после того, как будут проведены несколько партий на модели доски.
Порядок следования этих заключений-выводов определяется индивидуальными особенностями человека, решающего задачу.
Если дважды подряд модифицируют один и тот же ряд,
исходная позиция не изменяется.
Порядок ходов при модификациях безразличен. Это определяется тем, что разные строки, как и столбцы, не имеют между собой общих шашек. У пересекающихся строки Li и столбца Cj имеется только одна общая шашка на их пересечении, которая и не изменит цвета при ''одновременной'' модификации
Рис. 2.9. Зоны расположения белых и черных шашек на шахматной доске.Рис. 2.9. Зоны расположения белых и черных шашек на шахматной доске.строки и столбца, тогда как остальные шашки этих строки и столбца изменят цвет на противоположный.
Рис. 2.9. Зоны расположения белых и черных шашек на шахматной доске.
Рис. 2.9. Зоны расположения белых и черных шашек на шахматной доске.
Отметим, что данный вывод о независимости результата от порядка ходов-модификаций, являясь практически очевидным для взрослых, не является таковым для детей. Он соответствует четвертой стадии развития интеллекта (по Пиаже) и не формируется обычно ра
нее десятилетнего возраста.
После того как сделан ход, номер ряда не является существенным, так как в задаче важным является лишь число шашек того или иного цвета, а не место их расположения на доске.
На основании двух первых заключений можно сделать вывод, что порядок ходов в задаче не является существенным и результирующее состояние ряда то же при 2九 4- 1 ходах, что и при одном ходе-модификации. Аналогичным образом, состояние ряда одинаково как при 2м ходах, так и при 0 ходах.
На основании третьего вывода можно строки, которые были модифицированы один раз, перенести в верхнюю часть доски, а столбцы, которые также были модифицированы один раз, перенести в левую часть /доски. Таким образом, доска окажется разбита на четыре зоны, которые показаны на рис. 2.9. Прямоугольные зоны на доске слева вверху и справа внизу заполнены черными шашками, причем одни из них перевернуты дважды, а другие ни разу. Прямоугольные зоны слева внизу и справа вверху заполнены белыми шашками, причем они все перевернуты по одному разу.
Число строк L в верхних и число столбцов С в левых прямоугольниках соответствуют рядам шашек, модифицированных один раз. -
Представленная на доске позиция обладает симметрией относительно строк и столбцов. Если (L, С) ——решение задачи, то и (С, L), полученное вращением позиции на 90°, также будет решением.
Рассматриваемая позиция обладает еще и центральной симметрией. Если (L, С) — решение, то и (100 ——С, 100 ——L) также будет решением задачи. Это свойство уже менее очевидно, чем предыдущие.
Примечание. Ниже приведены некоторые рассуждения, которые не являются доказательством. В данном случае формализация условий задачи затруднена, так как описанные на обычном языке они носят неполный и неоднозначный характер. Именно поэтому необходим переход (и это общий необходимый этап для всех задач) к замкнутой форме условий задачи, где все четко определено и согласовано.
Теперь сформулировать эти условия уже легко. В задаче величины L и С являются целочисленными. С их помощью подсчитывается число модифицированных рядов. Так число белых шашек составит: вверху — L X (Ю0 — С) и внизу — С X X (100 — L). В результате замкнутую формулировку задачи можно записать в виде
100 (А + С) - 2LC = 1990. (2.1)
Очевидно, что никогда нельзя получить нечетное число белых шашек. На этом этапе для получения нового, более общего представления о задаче целесообразно ее несколько обобщить. Ее можно сформулировать так: путь р — середина доски и п — число, равное половине заданного числа белых шашек. Тогда, если разделить на 2 обе части равенства (2.1) и использовать для записи обозначения р н %, получим
p(L~\~C)- LC = n. (2.2)
Итак, во-первых, трудности решения задачи связаны с целочисленным характером уравнения (2.2); во-вторых, равенство (2.2) напоминает уравнение конуса: (ху — ах — by — с = 0); в-третьих, решение этого уравнения затрудняется тем, что в него входят как линейные члены p(L + С), так и квадратичные —LC.
Оба последних заключения по поводу уравнения (2.2) можно резюмировать следующим образом. Так как конус обладает двумя осями симметрии, используем этот факт и сделаем равенство (2.2) более компактным и удобным для последующего применения. В этом случае можно исключить линейный член из равенства (2.2). Сделаем замену переменных, положив
L — I -\- а, С = с 4- а. В результате получим р (/ + с + 2а) — (/ + а) (с + а) = п, 2ap +,р (/ + с) — а (/ + с) — 1с — а?=儿^ Положив а = р, добиваемся того, что в равенстве останутся только квадратичные члены. Такая замена, вообще говоря, не является произвольной, так как на самом деле она отражает тот факт, что распределение шашек по цвету на доске является симметричным по отношению к центру доски. Теперь замкнутая формулировка условий задачи приобретает новую форму
/с = р2 —п,(2.3)
где / = L — р, с = С — р.
Выражение (2.3) определяет представление условий задачи в трехмерном пространстве, причем слева и справа от знака равенства находятся целые числа. Целое число, стоящее в правой части, на самом деле известно:.
р2 _ п =: 50 X 50 - 1990/2 = 1505.
Для существования решения необходимо, чтобы число 1505 было разложимо на простые множители, сопоставимые с размерами доски. Итак, мы имеем 1505 = 5 X 7 X 43, а так как р = =50, то —50 W W +50, —50 W с W +50.
В данном случае существуют два решения, удовлетворяющих этим условиям. Первое решение
/ = 5义7, e = 43,
L = 85, С = 93 Qi наоборот).
Второе решение
/ = —35, с = —43,.
£ = 15, С = 7.
Таким образом, имеются два варианта получения на доске 1990 белых шашек.
С другой стороны, существуют такие числа для белых шашек, получение которых невозможно. Например, если и = 1984, имеем 綻—п = 2500 — 992 = 2 >< 2 X 13 文29, и тогда одна из двух величин — либо /, либо с — превышает число 50, что недопустимо ни для одного решения задачи.
Наконец, имеется особый случай, когда либо /, либо с равно нулю, т. е.厶 или С равно 50. Это вырожденный случай, и каково бы ни было здесь значение другой неизвестной, единственное число, которое удовлетворяет условиям задачи, будет п = =р2 = 2500.
Все задачи этого класса могут быть решены одний и тем же методом (включая сюда и задачи не только на квадратной, но и на прямоугольной доске). Что касается других методов решения задач с условиями типа (2.1), т. е. в целых числах, то мы найдем их в гл. 3 и 6.
Следующий раздел главы взят из книги Д. Пойа “Как решать задачу** (George Poiya, How to solve it, 1956).
Что нужно сделать, чтобы решить задачу?
Понять задачу.
Что является неизвестным? Каковы исходные данные? Каковы условия задачи?
Можно ли удовлетворить условиям задачи? Достаточно ли заданных условий для отыскания неизвестной? Являются ли условия задачи недостаточными, избыточными или противоречивыми?
Сделайте рисунок. Введите соответствующие обозначения.
Выделите отдельные части условия задачи. Можете ли вы их сформулировать?
Составить план решения.
Определите взаимосвязь между исходными данными и неизвестной.
Возможно, вам следует рассмотреть какие-то дополнительные задачи, если не удается непосредственно найти эту взаимосвязь.
В конце концов вы должны получить план решения.
Вы уже встречали эту задачу? Или, может быть, вы встречали похожую задачу?
Может быть, вы знаете задачу, связанную с этой? Известна ли вам какая-нибудь теорема, которая может быть полезной?
Рассмотрите искомое и попытайтесь вспомнить задачу, которая вам уже известна и в которой отыскивалось то же cd- мое или нечто подобное.
Перед вами задача, которая связана с рассматриваемой • и которую вы уже решали. Можете ли вы использовать резуль- таты, полученные при ее решении? Можете ли вы воспользоваться использованным методом решения? Может быть, следует ввести какой-то дополнительный элемент, чтобы воспользоваться этим методом?
Могли бы вы сформулировать задачу по-другому? Смогли бы вы дать еще одну формулировку задачи? Обратитесь мысленно к определениям.
Если вы не можете решить задачу, которая вам предложена, попытайтесь решить задачу, связанную с ней. Не можете ли вы припомнить задачу, которая была бы связана с вашей, но была бы разрешима? Более общая или более частная задача или аналогичная вашей? Смогли бы вы решить часть задачи? Оставьте только часть условий, необходимых для другой части задачи. В какой мере может быть теперь определена неизвестная, как можно ею варьировать? Можете ли вы извлечь из данных что-то полезное? Не приходят ли вам на ум другие данные, которые могли бы помочь определить неизвестную? Можете ли вы изменить неизвестную, или исходные данные, или и то и другое, если это необходимо, так, чтобы новая неизвестная и новые данные лучше соответствовали друг другу?
Вы использовали все исходные данные? Вы использовали условия задачи в полном объеме? Вы учли все существенные стороны задачи?
Выполнить план.
• Выполняя принятый план решения, проверяйте каждый его этап, каждый элемент последовательно один за другим. Очевидно ли вам, что этот элемент плана корректен? Можете ли вы доказать его корректность?
Проверить полученное решение.
Можете ли вы проверить полученный результат? Можете ли вы проверить проведенные рассуждения?
Можете ли вы получить результат, отличающийся от уже полученного? Можете ли вы это понять с первого взгляда?
Можете ли вы воспользоваться полученным результатом или методом решения для какой-нибудь другой задачи?
Из истории развития и преподавания математики
Собственно математике предшествует длительная предыстория порядка четырех тысяч лет. Высшие животные и совсем маленькие дети воспринимают в окружающем мире две основные абстрактные сущностк: число и форму. Таким образом, арифметика и геометрия длительное время были двумя отдельными фундаментальными науками. В древности различение чисел человеком не было вполне ясным и точным. В первобытных обществах человек не различал две совокупности, содержащие почти равные количества элементов. Он едва умел считать: один, два, много. В латыни понятие “много” обозначается словом tres, продолжающем и сейчас жить во французском языке в виде слова trois (три)!
Звездные миры были замечены наблюдателями, принадлежавшими к самым древним цивилизациям, которые постоянно наблюдали скопления звезд на небе. Мы знаем также, что шумеры Урука и. Ниппура еще три тысячи лет тому назад уже пользовались лунным календарем. Им пришла идея представлять числа с помощью символов. При этом Луна обозначала единицу, а другие небесные объекты — последующие числа. Необходимость делать расчеты и затем записывать их результаты привела к использованию более удобных обозначений. Вертикальной или наклонной чертой стали обозначать единицу в Финикии, Сирии, Древней Греции, Южной Аравии, Индии. Совокупности из пяти, десяти или двадцати единиц стали обозначать специальными символами, образованными от их названий. Все это были аддитивные системы счисления, т. е. закодированное ими число представляло собой сумму записанных символов.
В Вавилонии была изобретена своя 60-ричная система счисления. Ее основные символы имели значения 1, 10, 60, затем 600, 3600, 36 000 и т. д. Эта система используется и в наши дни, в частности в астрономии для определения мер времени и угловых мер. Многие народы использовали идею представления чисел при помощи букв своего алфавита. Стали придавать особый смысл определенным числам, что породило кабалистические вычисления. Число, соответствующее какой-либо букве, становится функцией положения буквы в слове. Стала ощущаться необходимость в обозначении понятия иничего,\ Происхождение нуля до сего времени остается неясным. Можно считать установленным, что в индийскиих текстах шестого века нуль обозначался точкой. В астрономических записях древних греков нуль обозначался буквой О, являвшейся начальной буквой греческого слова ov6ev, обозначавшего 1(ничего".
Современное написание цифр нашей десятичной системы счисления пришло к нам из Западной Индии через арабов. Только в 13 в. эти цифры проникли в Италию через флорентийских купцов. Их использование стало повсеместным в 15 в. Следы истории их появления остались в словах “цифра” и "зеро" (нуль), которые происходят от арабского слова sifr (zero).
С изобретением книгопечатания (1440 г.) цифры принимают окончательную форму. Использование запятой в вещественных числах распространяется только в XVIII в. Четыре арифметических действия знали еще египтяне, но их представление часто было очень неудобным. Так, смежное расположение чисел обозначает сложение, а греческая буква 屮 ——вычитание. Переписчики в средние века выработали окончательную форму
2 Ж.-Л. Лорьер. ;
знака + из слова et (и). Знак ——появился из обычая отделять в счетах чистый вес от веса тары с помощью горизонтальной черты. Отметим, однако, что Марсель Коэн в своей интересной книге ,4Великое изобретение — письменность и ее эволюция" пишет, что знаки + и — появились как сокращения слов plus (плюс) и minus (минус). Современные знаки умножения и деления были введены в 17 в. Равенство обозначалось в Европе 17 в. знаком оо, который использовался астрономами для обозначения созвездия Тельца. Одновременно для той же цели использовалось латинское слово aequalis. Оно сначала было укорочено до ае, а затем превратилось в знак =. Тогда символом оо стали обозначать число 1000. Около 1660 г. Дж. Уоллес стал обозначать этим знаком бесконечность.
Мы рассказываем обо всем этом по двум причинам. Во-первых, чтобы показать, что человечество потратило многие тысячи лет для “приручения" числа, а наука и вовсе развивается только несколько веков. Математика возникла не в один день, и ее детство еще недалеко от нас. Что же удивительного в том, если у какого-то школьника встречаются трудности в овладении предметом, когда человечество затратило так много времени, чтобы выработать представление чисел и операций.
Во-вторых, вопрос о представлении конкретных или абстрактных объектов является центральным для искусственного интеллекта. Дать представление чего-то означает прежде всего умение выделить из общей массы объект, выявить его важность и практическую ценность. Отсюда следует, что его свойства должны быть определены и переведены в форму, удобную для манипулирования с ним. Таким образом, дать представление означает понять. Если сегодня биология начинает объяснять представление наследственной информации в генах живых существ, то нейрологи и психологи еще далеки от того, чтобы дать объяснение тому, каким образом в нашем мозге закодированы и организованы наши знания. Не исключено, что исследования в области искусственного интеллекта дадут какие-то ответы на этот вопрос. i
Уже во времена Евклида (третий век до нашей эры) геометры умели обозначать абстрактные объекты с помощью букв. Папус Александрийский (третий век), а затем Диофант (четвертый век) постепенно вводят подобные обозначения для неизвестных чисел. Франсуа Виет, докладчик в Государственном совете при Генрихе IV, в своем трактате иИскусство анализа'1 первым ввел систематическое испЪльзование такого буквенного представления и таким образом является праотцом современной алгебры. В сочинениях Виета встречаются, например, такие вы-
ражения:
,77 in D、
« —尸 in D aequebitur Л
、f十。
Первые буквы алфавита (Д и D) заменяют неизвестные величины, слово in стоит вместо знака умножения, линейная форма записи выражений еще неизвестна. В современных обозначениях это выражение выглядит так
Виет уже умеет оперировать с такими выражениями. Например, он выводит из предыдущего выражения следующее: u (F + D) так относится к (" F), как D к А'\ Это дает ему возможность решать уравнения.
Декарт в XVII в. нормализует и расширяет этот формализм. Он ввел в обращение наши знаки операций +, •—,*,/ и предложил употреблять последние буквы алфавита для обозначения неизвестных. Символ х пришел к нам от арабов (от слова says, обозначающего какой-то предмет, нечто). Именно Декарт отказался от использования классических обозначений, пришедших из греческого и древнееврейского письма, в пользу современных обозначений. Наконец, Декарт объединил науки о числах и фигурах, заложив основы аналитической геометрии, и тем самым установил глубокое единство математики, которое было еще углублено в последующие века.
Индексы и показатели - появляются довольно поздно. Так Эйлер (1707—1783) использует выражение х*х*х для х3, и только Эварист Галуа (1811—1832) первым начинает пользоваться индексами. Но еще Жордан и затем сам Гильберт в начале нашего века не приняли этого новшества и продолжали писать в тяжелой и неудобочитаемой манере, когда порядок букв в алфавите играл роль неявной индексации. Функциональные символы были введены Лейбницем и Иоганном Бернулли. Знак суммирования X был введен Эйлером.
Введение обозначений для функций проходило не без трудностей, причем единогласия в этой области не имеется еще и до сих пор. Постоянно смешиваются сама функция / и ее значение в точке f(x). Часто пишут Т + a(f(x)) вместо T + o(f). Производная почти всегда смешивается с ее значением. Эта ошибка вызывается принятыми обозначениями. Еще более вопиющими являются такие ошибки в случае частных производных. Проблема обозначений усложняется, когда требуется
рассматривать выражение как функцию от одной из его составляющих. Так, в физике или механике пишут p(f), рассматривая у как функцию времени, а затем записывают t/(x); рассматривая ее как функцию положения, и наконец, просто у как функцию вообще.
Такие обозначения являются неприемлемыми из-за их непоследовательности и сложности для начинающего. Но, с другой стороны, проблема усложняется тем, что невозможно ввести свой символ для каждой функциональной зависимости.
Черч и Карри в 1950 г. предложили Х-запись: символы Хх перед каким-либо выражением трансформируют его в функцию от х. Таким образом: линейная функция от х записывается в виде кх(ах + 6). Это представляет собой весьма элегантное решение проблемы. Здесь лежит начало языка программирования Лисп, созданного Маккарти в 1960 г. Символическая логика и язык теории множеств возникают очень поздно. В 1891 г. Пеано ввел знак принадлежности ^. Включение обозначается как ос или <, и затем позже Хаусдорф вводит в 1920 г. обозначение и. Именно это обозначение сегодня является предпочтительным. После различных попыток ввести собственные обозначения сегодня снова наиболее распространенными для обозначения пересечения, объединения и импликации являются обозначения Пеано П, U, п. Последний символ является обратным к символу включения. Так, если Е и 尸,то (无三 Е) п п (尤三尸).Гильберт пользуется стрелкой -> для обозначения импликации. Такое обозначение совпадает с обозначением отображения в теории множеств и со знаком переписывания. Школа Бурбаки предпочитает для импликации знак =>, который широко используется сегодня. Что касается нас, то мы предпочитаем, как и логики, пользоваться обозначениями Пеано.
Чтобы сделать наглядными логические рассуждения, Эйлер использовал идею диаграмм типа кругов, отражающих множества и получивших название диаграмм Венна (1834—1923). Льюис Кэрролл (1882—1898) предложил другой тип диаграмм, которые сохраняли свойства сопряженности между множеством и его дополнением. Это нашло применение в булевой алгебре.
Под влиянием символов U к С логические ИЛИ и И стали обозначаться соответственно V и А.
Отрицание иногда обозначается знаком —, иногда чертой сверху или знаком 〜 (тильда), Так как все эти знаки имеют и другое значение, то Хейтинж предложил в 1937 г. использовать для обозначения отрицанияф<нак ~1, который принят в этой книге.
Квантор существования 3 был также введен Пеано. Рассел и Уайтхед (1903) дополнительно ввели еще квантор всеобщно-
сти, для обозначения которого они просто заключали переменную в скобки. Только гораздо позже (в 1920 г.) был введен для него знак V. Г. Фреге (1848—1925) ввел знак утверждения, для которого он использовал обозначение Н. Так, выражение “—4” означает “ио
Группа французских математиков, публикующая свои труды в виде монографий ^Элементы математики" под псевдонимом Никола Вурбакн, как бы “узаконила” использование значитель- ного числа таких символов и ввела в свою очередь еще ряд новых символов (среди них уже упоминавшийся знак 今,обозначение С для дополнения множества: и многочисленные обозначения в теории групп). Эти монографии, переведенные на многие языки мира, сделали многое для стабилизации обозначений, манеры и стиля современной математики. Однако постепенно формальный язык стал сильно отличаться от обычного языка. Там, где в обычном языке встречаются "разделители'1* (союзы) “и”, иили,5, “так как”, математик предпочитает использовать такие группирующие символы, как круглые, квадратные или фигурные скобки и горизонтальные черточки. Символ равенства, обозначающий идентичность двух объектов, предпочитают использовать в качестве разделителя. В результате между обычным языком и языком математики образовалось определенное смешение способов выражения. Поэтому очень наивно выглядят некоторые математические выражения, например “для всякого у = ах + Ь", в котором символ у может иметь двоякий смысл. На самом деле это выражение следовало бы записать так: Vy, y — ax-^b, тогда как предыдущую запись, строго говоря, надо прочитать так: каково бы ни было равенство типа у = ах -}- Ь,
На практике часто путают обычное значение знака =, описанное выше, и его роль в качестве оператора присваивания. Таким образом, идентичность, выражаемая с помощью знака равенства, например такая, как (а — b)2 = а2 — 2аЬ + 匕2, является таким же правилом переписывания, как х + 0 -> 0 или ?儿・1 +%. Знак = служит также для задания определений, на- пример в выражении igx = sin x/cosx, и, кроме того, еще и одля ввода сокращенных обозначений. Например, положим 〃 = м— (а% + Ь)/(х2 + 1) или 弘 尤" = (—b 士 “А)/2, где правая • 牝асть используется в виде самостоятельного блока.
т‘ Другой тип неопределенности, присущей обычному языку, встречается и в математическом языке. Например, когда опре- " деляют какую-то группу G, вначале постулируют, что для всех g из G существует е, такое, что ge = g н ug = g・ И затем про должают: Vg, g^G, mg~* gT^G, gfg = e, gg'1 = e. Тут, Однако, имеется некоторая йеоднозначность математического
языка, связанная с тем, что переменная е, существование которой определяется вначале, не имеет никакого отношения к переменной е из второй половины определения, хотя для их обозначения использована одна и та же буква е. Такого рода неоднозначности не могут не вызывать определенных затруднений у тех, кто разрабатывает системы автоматического доказательства теорем.
В связи со сказанным выше любой перевод с обычного языка на язык математики должен производиться с осторожностью. Например, во фразе на французском языке uUn triangle rectangle est un triangle qui a an angle droif' (Прямоугольный треугольник — это треугольник, в котором один угол прямой), трижды встречается неопределенный артикль un (всочетаниях со словами "прямоугольный треугольник", итреуголь- никэ, и “прямой угол"). Однако если в первом случае артикль имеет смысл универсальности (любой прямоугольный треугольник), то в третьем случае он употреблен в смысле существования (т. е. ''имеется, существует именно прямой угол”). Глаголы “быть, есть, является” служат иногда признаком того, что вводится какое-то определение, иногда признаком какого-то свойства, а иногда признаком принадлежности. 一
Союз “нлн” используется иногда в качестве иили исключи- тельноп (например, белое или черное), а иногда как “или включительно" (например, много или мало), что соответствует двум различным понятиям в математике.
Уже на ранних этапах обучения детям говорят о таких псев- доматсматических выражениях, как: “два на два дает четыре'* и uбольше на меньше дает меньше". Этот тип необъясняемого рискованного приравнивания часто вызывает у детей непонимание, из которого потом возникают неожиданные следствия. Например, учитель спрашивает: “Какое целое следует после 九?" И ученик отвечает: “О”. “Пусть целое q". “Но”,一 прерывает себя ученик, — “q не есть целое число, это буква"... Или, например, такое упражнение: «Укажите множество значений х алфавита, таких, что х есть гласная". Но каков же должен быть ответ? Что это множество пустое, так как % есть согласная?.. )
Таким образом, перевод условий задачи с естественного) языка на формализованный является непростой задачей. Этот первый этап решения присутствует в каждой научной дисциплине: алгебре, геометрии, математическом анализе, химии, физике. Специалисты по исследованию операций, которым постоянно приходится описывать на формализованном языке сложные ситуации, назвали этот процесс моделированием.
Однако и язык математики не лишен условностей, связанных с тем, что часть информации не задается в явном виде, а
подразумевается. Значение символов часто неявно содержится в самих символах. Например, “неизвестные” обозначаются буквами %, у} z; целые величины обозначаются обычно буквами I, /, А, /, т, п, р, % для вещественных величин используются буквы г, s, /; угловые величины обозначаются буквами греческого алфавита а, р, 0, Ф; для функций используются символы 力 g, h; множества обозначаются прописными буквами. Некоторые буквы, такие, как е, g, t, л, зарезервированы для обозначения специальных величин. Кроме того, язык математики воспринял и некоторые недостатки естественного языка. Так, например, “группа Лн" не имеет отношения к группам. Поэтому учащийся должен уметь читать между строк и понимать с полуслова.
Теперь посмотрим, что требуется от учащегося, и какова история преподавания математики.
Греческие ишколы,5 времен Сократа (пятый век до нашей эры), Платона и Аристотеля (четвертый век до нашей эры), Евклида (третий век до нашей эры) справедливо знамениты. иЭлементы геометриим Евклида долго оставались образцом строгости и ясности изложения. Около 290 г. Папус Александрийский опубликовал свою ^Математическую коллекцию", а около 370 г. Диофант опубликовал свою “Арифметику”. После оригинальных и важных достижений древних греков Европа пережила долгий период застоя точных наук. И только итальянское Возрождение дало новый толчок как исследованиям, так й преподаванию наук.
До этой эпохи занятия математикой были прерогативой элиты. Ею занимались в философских кружках и светских салонах. Впрочем именно учитель философии преподавал математику в колледжах. Кроме того, техникой счета занимались также в некоторых специальных учебных заведениях ——школах архитектуры, астрономии, навигации, военного искусства.
Великая французская революция, осуществив реформу школы, поставила преподавание точных наук на тот уровень, который в основном сохранился до наших дней. Тогда же была введена и метрическая система. В 1794 г. Лаканаль и Монж основали Политехническую школу. В 1808 г. в Сорбонне была организована кафедра трансцендентальной математики. (Сор^ тбонна с момента своего основания в 1227 г. Робером де Сорбо- ном была теологическим колледжем.) С тех пор учебные программы лицеев и колледжей рассчитаны на тех, кто претендует на поступление в Политехническую школу и Парижский университет.
Итак, учащимся преподают математику по программе, а не учат математическим навыкам и умениям. Очень малое число авторов интересуется феноменом открытия, методами
^активного41 обучения, индуктивными рассуждениями, изучением способов мышления, эвристикой в педагогике (здесь речь идет о том, чтобы заставить ученика самого открыть то, чему его хотят научить), дидактикой научных дисциплин (от греческого “преподавать”, здесь речь идет об изучении самого преподавания как явления в его познавательных аспектах и с точки зрения техники преподавания, а также об оценке этого явления во всех его сложностях).
Селестен Френе создал в 1940 г. школу нового типа, в которой основное внимание уделялось педагогике сотрудничества и группового обучения.
Имеется очень мало публикаций, в которых математики объясняли бы, как именно они пришли к какому-то важному результату. Можно даже сказать, что традиционное редактирование математических текстов все сделало для того, чтобы скрыть самые первые индуктивные шаги к будущему результату. Рассуждение по большей части представляет собой обратное тому, что первоначально подразумевалось. Доказательство представляет собой очищенную аргументами эвристику. Первоначальные представления изменены и закодированы путем использования математических обозначений, и наконец, введенные объекты получают окончательный вид. Педагоги сегодня великолепно осознают эти проблемы, но решить их не просто. Создание "современной" математики было попыткой, хотя и не вполне успешной, решить некоторые из этих проблем. В искусственном интеллекте исследователи из разных сфер деятельности интересуются как раз этим эвристическим этапом.
Представления
Наш мозг воспринимает не окружающую реальность, а модель этой реальности, которая формируется с помощью наших органов восприятия: зрительной, слуховой, обонятельной, вкусовой и тактильной системами. Затем эта модель получает представление в нервной системе с помощью нейронов и их синапсов. Нам почти неизвестен физиологический механизм, с помощью которого информация кодируется и запоминается и как осуществляется доступ к ней. Согласно К. Лоренцу это представление является визуальным отображением реальности. У приматов необходимость в интеллекте возникла потому, что они были принуждены, чтобы выжить во враждебном мире, ^планировать" свои действия и поступки, ^размышлять1'. Многочисленные следы этого преобладающего влияния отношений с окружающим миром на нашу систему мышления сохранились в лексике современного языка, например: видеть, схватить, по-
пять; уровень, план, глубина; очевидныйг скрытый, темный. Это тот вид лексики, который связан с абстрактными понятиями и служит для их выражения. Несмотря на то что способность к абстрактному восприятию является свойством именно человека, тем не менее это свойство не является врожденным. Ребенок вырабатывает в себе эти абстрактные понятия постепенно, шаг за шагом, постигая физические инварианты только после долгого ученичества. Согласно Пиаже, способность к внутреннему представлению о весе или объеме объектов формируется у человека к 13—.14 годам. Недостатком при этом является только то, что мало-помалу это абстрактное представление о мире ведет индивидуума к чистому абстрактному мышлению, уже независимому от всякой опоры на окружающее и отделенное от любого немедленного действия.
В заключение отметим, что представления, которые мы используем, когда речь идет о печатных и рукописных текстах, гравюрах, нотных записях, математических формулах, рисунках, фотографиях, являются существенно графическими. Особую роль среди них в этой книге играют те, что связаны с математическими формами записи и обозначениями.
Математическая форма записи
Все обычные системы записи содержат, с одной стороны, символы, представляющие объекты, и, с другой стороны, символы, представляющие операторы, позволяющие связывать объекты между собой. Так, в выражении 尤 + y—1 х, у являются объектами, а знаки + н — операторами. Операторы могут связывать некоторое множество объектов (например, операторы + и —), два объекта (бинарные операторы *, /, 口, П, V, А), а также относиться к одному объекту (унарные операторы V , log, sin). Операторы типа кесли ... то, ... иначе …” (“если да ... то, .... если нет ...") встречаются в языках програм- ~ мирования. В общем случае правильно построенное выражение 'или терм представляет собой n-арный оператор вместе с % объектами. По отношению к n-арному оператору говорят также, 'что его вес равен п.
Правильно построенное выражение само может рассматри- ■ ваться как новый объект, который в свою очередь может быть 'связан с другими объектами с помощью какого-то оператора, следуя тому же закону образования выражений, что и ранее. В результате мы получаем терм ——n-арный оператор вместе с п термами. Такое определение терма через*другие термы называется рекурсивным. Оно имеет смысл только тогда, когда априорно существуют исходные термы, являющиеся объектами.
Среди этих исходных объектов в общем случае некоторые могут быть заменены другими объектами или даже термами (переменные), а другие — не могут быть заменены (константы); Так, в тригонометрическом выражении sin2 х + cos2 х = 1 х мо жет быть заменен любым термом, чего нельзя сказать ни о символах 1 и 2, ни о символах sin и cos. Эти понятия будут уточнены в гл. 3 при рассмотрении формальных систем.
Линейные формы записи
Книгопечатание привело математиков к тому, что они стали записывать свои формулы в виде линейной строки, читаемой слева направо в европейском мире. В этой форме записи, называемой линейной, существуют три возможности расположения оператора: впереди или позади термов, которыми они управляют, или же между ними. Находят применение все эти три формы записи, но они не являются равнозначными.
В наиболее общей форме записи, называемой инфиксной (или нефиксированной формой), операторы расположены среди термов и, чтобы облегчить чтение, приходится добавлять новые символы — скобки: (),[],{}, которые не входят в основной набор символов. Они не очень удобны при письме, и ими пользуются, только чтобы устранить неоднозначность или разделить на части слишком длинное выражение. Кроме того, для устранения неоднозначности условились об определенной иерархии применения операторов. Например, в алгебре выражение а — b + c будет интерпретироваться как (а — b) + с, а не как 〃一(匕 + c). Свойства ассоциативности и коммутативности некоторых операторов (и особенно операторов + н *) неявно подразумеваются в обычном математическом анализе. Например, пишут 2 * 尤 * у, или 尤*2 縛协 или 乡答尤 *2, причем чаще всего оператор умножения 帝 при записи формул опускается. Однако фантазия математиков идет дальше, и, например, унарные операторы записываются на трех уровнях. Основные варианты записи таковы: sin А, В, С^ dD/dt, £*,戶,G‘,|G|. Знак — является одновременно унарным и бинарным оператором. Следовательно, обычная нефиксированная форма записи выражений далека от определенности и строгости.
В математической логике предпочтительной является префиксная форма записи. Каждый оператор в этом случае записывается перед термами, которыми он управляет. Таким образом, обычная запись “尤 оператор р” приобретает вид “оператор причем запись “оператор 2” не изменяется.
В этой форме записи любые скобочные системы становятся ненужными, а лаконичность и определенность формы записи с
расположением оператора в начале каждого терма делает ее (после некоторой тренировки) весьма удобной для использования.
Выражение (р п q) п р, записанное в инфиксной форме, получает в префиксной форме вид 仍
Выражение (Т)
log(Z/ + Vy2 — b/sin х)
будет выглядеть так
lbg +i/V — t y^/b sin x.
Основная теорема префиксной формы записи. Последовательность S символов является правильно построенной в форме польской префиксной записи, если и только если:
ранг (S) = — 1;
ранг (подпоследовательности слева от S)》0, причем ранг (оператора) = вес (оператора) — 1, ранг (пустой последовательности) = О, ранг (n-го символа)三孔——1,
ранг (переменной) = ранг (константы) = — 1, ранг (S1 соединенной с S2) = ранг (61) + ранг (S2).
Доказательство этой теоремы проводится по индукции на множестве символов S. Важным следствием этого результата является возможность построения алгоритма для отыскания в заданном выражении места, где заканчивается терм, который начинается в заданной позиции.
Так, например, для идущей ниже последовательности символов ⑺ (с соответствующими им рангами) имеем для терма, который начинается стрелкой, его окончание на знаке 2:
log+4“一个乡2/bsinX
01001 2 20100—I
个1 0—1
Заметим, что запись в инфиксной форме, если она дополнена скобками, может рассматриваться как префиксная запись и поддается верификации с помощью описанной выше процедуры. При этом открывающая скобка рассматривается как бинарный оператор, а закрывающая скобка — как константа. Другие ранги остаются при этом неизменными. Тогда, например, выражение с бинарным оператором будет выглядеть так:
( о бинарный-оператор b )
1 010-1
В суффиксной (или постфиксной) форме записи оператор помещается сразу после соответствующих термов и выражение “尤 оператор £' будет записано как “%р оператор", а выражение “оператор 2” запишется как “2 оператор5'.
Выражение (Т) в суффиксной форме записи выглядит так:
уу2\Ьхз\п1 — ^+ log
Эта форма записи удобна, в частности, когда хотят оценить, т. е. вычислить, представленное выражение; например, при машинных вычислениях или при компиляции языков программирования формулы, введенные в инфиксной форме, переводят в постфиксную форму. В такой форме записи при прочтении выражения слева направо удается вычислить его значение за один проход (рис. 2.10а).
д д 2 .个 b 尤 sin /——+ kg
12
180f/2
—>—1-
->—80
->81
f 9
->10
Рис. 2.10а.
Нелинейные формы записи
При типографском способе печати линейная форма записи в виде строк не дает наглядного представления о структуре вьь ражений. Все символы выглядят равнозначными, хотя известно, что некоторые из них являются терминальными (переменные и константы), а другие .нет. Если быть точным, то следует отметить, что каждый оператор управляет заданным числом известных термов. Чтобы отразить этот факт, используются представления выражений в форме чертежей или диаграмм. Примеры таких графических схем (графов) представлены ниже:
с.п-арный оператор
Бинарньти оператор/7 /\
Графы такого типа получили название деревьев. Они хорошо соответствуют нашим зрительным представлениям, напри-
мер, о таких выражениях, как выражение (Т), граф которого представлен на рис. 2.106.
Следует отметить тот факт, что такая форма записи содержит и три другие формы записи:
префиксная форма выявляется при просмотре дерева сверху вниз и слева направо 】 рядке, в котором они при этом встречаются;
постфиксная форма образуется при просмотре дерева в последовательности, обратной предыдущей;
инфиксная скобочная форма записи образуется при проекции дерева на горизонтальную ось, причем символы каждого последующего уровня заключаются в скобки.
Как уже отмечалось выше, ляется тем, насколько удобно его обрабатывать. В математике основными процедурами обработки являются следующие: подстановка одного терма вместо другого, группировка (объединение) двух термов, удаление терма. Все эти операции соответствуют очень простым операциям с соответствующим деревом, построенным для данного выражения, перемещению (перестановке) какой-либо ветви, локальной модификации терминальных символов — листьев, удалению какой-то ветви. Вместо этого при обычной инфиксной записи мы переписываем вручную построчно все выражение целиком.
записи символов в том по-
Рис.
卡
к配
2.106. Представление выраже-
ния (Т) в виде дерева.
2.9.4. Машинное представление выражений
Память ЭВМ характеризуется большим объемом и высокой скоростью обращения к ней, что позволяет избежать ограничений, присущих возможностям человека, передав ЭВМ обработку структур типа дерева. При этом каждому символу какого- либо выражения соответствуют три определяющие его характеристики: собственно имя символа, имя символа-исына,\ расположенного слева от основного символа, и имя символа-ибрата,т, расположенного справа. "Сыновьями" являются первые символы соответствующих термов. Множество имен символов выражения последовательно образует столбец таблицы S, множество имен ^сыновей** дает столбец G таблицы, а множество имен "братьев" — столбец D. Все три столбца, объединенные
в таблицу, охватывают все множество выражений, предназначенных для обработки заданной программой, причем их количество может быть весьма значительным. Идея машинного представления выражений иллюстрируется рис. 2.10в. Надо отметить, что представленные на рис. 2.10в элементы а и b сами могут быть деревьями. Поэтому соответствующие им элементы столбцов G и D не есть сами а и &, а являются лишь ссылками (их называют указателями или индексами) на места, где находятся а и Ь.
ааОператорОператорS刀ОператораbS刀Оператораb
а
а
Оператор
Оператор
S
刀
Оператор
а
b
S
刀
Оператор
а
b
Рис. 2.10в. Машинное .представление выражения (Т).
Если соответствующие элементы столбцов G и D на уровнях а и fe не пусты, они позволяют продолжить просмотр дерева.
Терминальные вершины дерева или листья, являющиеся переменными или константами, не имеют “снновей”. В этом случае соответствующее значение G равно пустому символу 0.
Таким образом, для данного индекса i имеем
S (г) = имя символа;'
G(i) = индекс “сына" слева от s(i) в столбце S;
D^i) = индекс “брата” справа от s(i) в столбце S.
При такой форме записи ничто не обязывает к тому, чтобы символы, следующие друг за другом, в каком-то выражении вновь встречались в порядке возрастания индексов, так как на самом деле единственно важным является просмотр выражения, задаваемый столбцами G и D.
Множество столбцов таблиц S, G, D образует списковую структуру, которая удобна для обработки символов на ЭВМ. Уже встречавшееся нам выражение (Т)
\og[y + -у/У2 — b/sm х ).',
представлено на рис. 2.11 в виде списка. .
Замечания
Само выражение маркируется заголовком списка, т. е. индексом его первого символа в системе S, G, D. Следовательно, в нашем примере выражение (Т) будет обозначено числом 112.
Чаще всего в столбце S содержится на самом деле не имя символа, а индекс, который отсылает к специальному машинному словарю、используемому программой.
Такое представление удобно, если приходится работать с операторами, степень которых (порядок оператора) выше двух, и с операторами переменной степени. Например, оператор + может быть записан как +%yzf вместо х + г/ + г + /.
112
log
ИЗ
0
113
+
119
0
119
У
0
121
120
*
140
218
121
135
0
135
—
136
0
136
个
255
137
137
/
138
0
138
b
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. Списковое представление выражения (Т).
При использовании рассматриваемого представления выполнение фундаментальной операции замещения переменной термом (операции подстановки) существенно облегчается. Например, допустим, что в выражении (Т) нужно заменить х на «—冗/4). Последний терм уже присутствует в списке, представленном на рис. 2.11, например, с индексом 432. В этом случае для выполнения подстановки достаточно изменить номер слева от %, т. е. G (139), и положить G (139) = 432. В этом случае указатель 140 становится ненужным, так как он не соответствует никакому элементу в G или D.
Не запрещается нескольким различным указателям номеров соответствовать одному и тому же элементу списка, но это тем не менее не рекомендуется. Например, если у должно быть в свою очередь заменено на (% ——л/4), желательно повторно записать этот терм, чтобы отдельно выполнить, две подстановки у в (Т), так как необязательно, чтобы последующая обработка замещаемых хну была бы идентичной.
Иногда списки забиваются узлами, ставшими ненужными, поэтому для помещения в них новых триплетов предварительно запускают программу-чистильщика ——“сборщик мусора".
Использование графических моделей в области искусственного интеллекта
В искусственном интеллекте интересуются автоматической обработкой информации, связанной с такими ситуациями, для которых неизвестен заранее алгоритм решения. В данной книге особое внимание уделено трем областям приложения методов искусственного интеллекта: автоматическому доказательству теорем; машинному решению задач; пониманию машиной фраз естественного языка. Особый интерес при этом вызывают способы представления и использования знаний. Ведь если какое- то поведение и заслуживает наименования “разумного", то лишь потому, что при этом используются гибкие представления^ обобщенные схемы, разумные абстракции, точно отражающие окружающий нас мир.
Представление знаний при автоматическом доказательстве теорем
В математике, как и в других областях, мы встречаемся с двумя уровнями представлений. К первому уровню относится представление объектов, с которыми производятся те или иные манипуляции (математические понятия, формулы, выражения). Ко второму уровню относится представление знаний об этих объектах (отношения, теоремы, методы доказательства).
Рассмотрим представление объектов, например, в геометрии. В ней фундаментальную роль играют представления объектов в виде геометрических фигур. Программы, доказывающие теоремы в планиметрии, реализуют в машине с помощью графов наши обычные построения, проводимые с помощью циркуля и линейки.
В представлении знаний существенным является то, о чем не говорится в учебниках по математике и на лекциях, а именно
Рис. 2.12. Роль представления в математике.
каким образом и как находят доказательство. На самом деле способ действий математика включает три различные фазы (Пастр, Пойа, Мериалдо): 1) понять теорему, заданную на формальном языке, т. е. перевести ее в некоторое внутреннее представление; 2) доказать теорему в этом внутреннем представлении, используя для этого все накопленные и адаптированные к этому внутреннему представлению знания; 3) перевести найденное еще неполное доказательство в строгое математическое доказательство, вновь введя символическую формализацию обычного математического языка. Роль представления в математике графически иллюстрируется рис. 2.12. Прежде чем переходить к примерам доказательств, отметим роль, которую играет в доказательстве теорем "хороший рисунок".
Роль рисунка, чертежа, правильно отражающего условия теоремы, определяется тем, что. он представляет собой прежде всего квинтэссенцию используемой, информации, отражает наиболее существенные ее аспекты, связанные с доказательством. Так, например, два элемента х и у могут быть связаны в условии теоремы многочисленными бинарными отношениями Ri, R2, ..., Rk. На схеме, приведенной ниже,
дается графическое представление записи: “%Riy А 尤R2y A... …/\ xR*g” (Бандиэ Пастр). При представлении простых алгоритмов обработки графические схемы могут быть использованы для эффективного отображения последовательности выводов (дедукций). Для транзитивного бинарного отношения R, например =или и или w, использование графического представления позволяет перевести выражение xRy /\ yRz в форму х —^- у -^- г, из которой непосредственно получается х -^-2. При этом для получения доказательства в более компактной форме зрительно “очевидные'' этапы могут быть опущены. Использование при доказательстве чертежа или рисунка часто позволяет отсекать ложные подцели. Если какое-либо свойство не находит подтверждения на чертеже, оно наверняка является ложным, и бесполезно терять время на попытку установить его. Более того, графическое представление помогает открытию. Если какое-то свойство проверено на. чертеже, можно предугадать доказательство соответствующей теоремы. Мы все используем этот способ при геометрических доказательствах. Чертеж полезен при определении симметрии переменных и является помощником в непосредственном выявлении эквивалентных ситуаций. Кроме того, наличие чертежа позволяет легко вводить в случае необходимости новые удобные элементы доказательства что широко используется в геометрии.
Отметим в заключение, что графические представления в виде чертежей, рисунков, схем и связанные с ними алгоритмы обработки информации позволяют в удобной форме получить представление о структурах связанных с ними концепций, т. е. об их семантике, тогда как перечисление их формальных свойств, что обычно характерно для учебников и монографий, описывает только- их синтаксис.
Рассмотрим несколько примеров графических представлений. На рис. 2.13, а и 6 приведено представление множеств в топологии (Мериалдо). Точки, обозначенные на рисунках цифрами, называются атомами. Каждый атом является представителем, подмножества, которому он принадлежит. Если атом соответствует пустому подмножеству, он удаляется. Таким образом, отношения принадлежности, включения, равенства представляются и запоминаются в сжатом виде. Кроме того, по диаграммам Венна легко составить простые алгоритмы, которые, основываясь на этом представлении, позволяют добавлять множество, получать пересечение множеств, приравнивать их, проверять правильность включения, определять дополнение множества.
Так, утверждение, что множество В включено в множество А тогда и только тогда, когда для каждого ребра, связываю-
щего вершину В с атомом i, существует ребро, связывающее также и вершину Л с атомом i, представлено на рис. 2.13, б.
Теперь рассмотрим теорему Т1, но прежде сделаем некоторые определения: запись А обозначает замыкание множества А
б
Рис. 2.13. Графические представления множества в топологии (а) и машинное представление диаграмм Венна (6). •
(наименьшее замкнутое множество, содержащее множество А), а запись Л* обозначает границу множества А (Л* = Ап [Л).
Теорема Т1: Л * = (А — Д) U ([А П Л).'
Программа при доказательстве теоремы использует граф, оперируя, таким образом, только множествами. Все множества, используемые при этом, построены в соответствии с заданными
Рис. 2.14. Построение множеств {4 и [4,
определениями. Например, построение множеств [Л и [А показано на рис. 2.14. Затем программа конструирует множество Д* == Ап [Л, пусть на рис. 2.14 это атомы 2 и 4. Аналогичным образом д — Л = {2} и [Д рЛ = {4}, что и доказывает теорему.
Конечно, программа не испытывает затруднений с доказательством, что может случиться с человеком при увеличении числа имеющихся множеств. Это связано с тем, что все отношения между множествами отражены в графе и это значительно упрощает доказательство. Более сотни теорем из области
рическим построением.рическим построением.
рическим построением.
рическим построением.
теории множеств и топологии были доказаны этой программой за время 〜1 с на ЭВМ типа ИБМ 4331.
Теперь рассмотрим пример из области геометрии (Buthion, 1979). "Задана окружность (С) и две точки Л и В вне окружности. Построить прямую (D), проходящую через точку А, которая пересечет окружность (С) в точках С и D, находящихся
на равных расстояниях от заданной точки В”. Для нас практически невозможно решить эту задачу, не построив чертеж. Мы предполагаем, что задача решена и строим соответствующий чертеж, как показано на рис. 2.15. Программа будет делать то же самое.
^2 Она называет и строит необхо- х / димые элементы: прямую (D),
/находит точку / — середину от-
Рис. 2.15. Пример задачи с геомет- резка CD. На самом деле в
программе чертеж представляется в виде таблицы, где на
ходятся имена элементов, отражена их сущность, их "степень свободы”,их возможные "представления''. Степень свободы элемента есть скаляр, который показывает, является ли элемент полностью известным, частично известным (здесь это прямая (О), которая должна пройти через точку Л) или совсем неизвестным. Представителями прямой являются все точки, принадлежащие ей. В начале решения строка таблицы будет выглядеть так
(А) Прямая1В, /
(Имя) (Сущность) (Степень свободы) (Представители)
Теперь задача заключается в том, чтобы полностью определить (О). Программа рассматривает равнобедренные треугольники COD и BCD. В этих равнобедренных (по построению) треугольниках, имеющих общее основание — хорду CD, отрезки 01 и BI являются медианами и высотами, пересекающими хорду CD в одной и той же точке / под прямым углом, принадлежащей отрезку ВО, являющемуся частью прямой (АА')・ Таким образом, задача решена. В таблице программа отражает этот факт с помощью следующей строки:
(Д) ПрямаяО(А,),В, I, О
(Имя) (Сущность) (Степень свободы) (Представители)
Теперь рассмотрим пример на свойства функций (D. Pastre, 1978). Около 150 теорем элементарной теории множеств об образах и прообразах, функциях, конгруэнтностях, отношениях порядка, порядковых числах были доказаны программой DATE, которая работала почти как математик, и, в частности, ею была доказана приводимая ниже теорема Т2.
Теорема Т2. Пусть имеются три отображения /: Л ->- В, g:8f С, h:C-^ А. Если из трех функций 也=九。g。f,局 q
Рис. 2.16. Пример графического построения, используемого программой DATE для доказательства теоремы Т2.
=f。九。g,々3 = g。/。" две какие-либо функции являются сюръективными, а третья ——инъективной, то f, g и й являются биективными.
Программа в процессе этого доказательства должна, в частности, показать, что если 力i есть инъекция и если 用2 H 左з —— сюръекции, то функция h является сюръекцией. Чтобы выполнить это доказательство (оно самое трудное среди шести отдельных доказательств, составляющих доказательство теоремы Т2 в целом), программа использует чертеж, приведенный на рис, 2.16.
Отправляясь от какого-то элемента 尤i, принадлежащего множеству А, нужно отыскать элемент 力,принадлежащий множеству С, такой, что /i(x)=%i. Программа, используя чертеж, проводит построение точек х2, %з, %4, таких, что х2 = /(%1)「%з = = g(%2), %4 =九;%з). Известно, что 左з = g。,。瓦 является сюръекцией и, следовательно, существует элемент %з из множества С такой, что 归3(%5)=%з・ Затем программа DATE строит точки %б и %7, связанные с точкой х5 соотношениями х6 = /1(x5) и %7="%6)・
Теперь из построения следует, что, с одной стороны, g(%7)=%з, а с другой стороны, 拓(%6)=也(打)=%4. Однако так как ^i по предположению является инъекцией, следовательно, обе точки с необходимостью совпадают (точки 修 и %б). Наконец, строится точка %5, удовлетворяющая соотношению /1(x5) = %i, что и требовалось доказать.
Описанные выше три примера показывают различные роли, которые играют графические представления при разумных рассуждениях, и особенно то,,как их использование дает возможность ввести естественным образом новые объекты.
Графические представления в решении задач
Общим методом решения задач является разбиение задачи на подзадачи (метод сведения к подзадачам), которые совместно удовлетворяют требуемым условиям. Задача считается решенной, когда каждая из подзадач в отдельности решена. Однако для решения отдельной подзадачи, может быть использовано множество методов, причем каждый из них порождает
SBnSBnSB1pSB1pSB11 SB12SB11 SB12Рис. 2.17а. Схема сведения задачи к подзадачам.Рис. 2.17а. Схема сведения задачи к подзадачам.
SBn
SBn
SB1p
SB1p
SB11 SB12
SB11 SB12
Рис. 2.17а. Схема сведения задачи к подзадачам.
Рис. 2.17а. Схема сведения задачи к подзадачам.
новую подзадачу. Поэтому достаточно решить какую-нибудь одну из этих новых подзадач, чтобы решить и ту подзадачу, которая их породила. Этот процесс имеет типичную древовидную структуру, и в этом случае принято говорить о дереве И—ИЛИ (оно показано на рис. 2.17а). Эта схема позволяет наглядно представить процесс эффективного поиска решения человеком или машиной. В предельном случае (идеальном, но редко встречающемся) дерево вырождается в единственную ветвь, и в этом случае поиск становится линейным, без проверок других ветвей. В этом случае говорят об алгоритме.
Представления объектов в виде графов используются, например, в исследовании операций, где рассматриваемые объекты по своей природе являются графами, например в задаче
отыскания оптимального способа доставки почты во Франции, которая связана с наличием реальной почтовой сети. При этом исходными данными задачи являются графы железнодорожной,
Рис. 2.176. Граф последовательности работ.Рис. 2.176. Граф последовательности работ.(S1)(S1)Рис. 2.17в. Граф работ, которые не могут быть выполнены одновременно.Рис. 2.17в. Граф работ, которые не могут быть выполнены одновременно.(S2)(S2)
Рис. 2.176. Граф последовательности работ.
Рис. 2.176. Граф последовательности работ.
(S1)
(S1)
Рис. 2.17в. Граф работ, которые не могут быть выполнены одновременно.
Рис. 2.17в. Граф работ, которые не могут быть выполнены одновременно.
(S2)
(S2)
автомобильной или авиационной связи между селениями. Другим примером может служить задача минимизации общего времени выполнения какого-то множества работ при условии, что наложены ограничения относительно последовательности их выполнения во времени. В этом случае удобно использовать ориентированные графы (например, в методе ПЕРТ), которые отражают эти ограничения. На рис. 2.176 представлен граф (S1), показывающий, что работа 7\ продолжительностью 由 должна быть завершена до того, как начнет выполняться работа Г2- На рис. 2.17в показан граф (S2), означающий, что работы Т.н Г2 являются взаимно исключающими и вместе не могут быть выполнены. Тут проявляется существенное свойство любого математического моделирования: одна и та же модель может представлять различные задачи. Задачи, где присутствуют только ограничения типа (S2), эквивалентны задаче о раскраске графа. Задачи, где имеются только ограничения типа (S1), эквивалентны отысканию пути максимальной длины на графе.
Графические представления в задачах на понимание естественного языка
Первые исследования проблемы понимания естественного языка основывались на синтаксическом анализе предложений и последовательном изучении слов. В качестве основной цели при этом выдвигались автоматический перевод и автоматическая обработка документов. Сегодня исследователи убеждены, что , этого недостаточно и для понимания текста программы необходимо обеспечивать семантической информацией типа той, что находится в словарях, а также значительным объемом
информации прагматического типа, описывающей мир, в котором мы живем, наше поведение в нем и наши поступки.
Первые контекстно-свободные грамматики Хомского были легко представимы с помощью правил переписывания. Вскоре появилась необходимость в разрешении относительных двусмысленностей, например в местоимениях, и во временной приостановке процесса анализа фразы на данном уровне, чтобы
G12 —»| Величина АПК: JТ 灰а“е%“е \^^0KNuqa 卜 * х
Рис. 2.18а. Граф считывания данных.
перейти на низший уровень анализа и затем снова вернуться к прерванному анализу.
Графы переходов или ATN (Augmented Transition Networks —расширенные сети переходов) в настоящее время обычно используются для одновременного синтаксического и семантического анализа предложений. Вершины этих графов представляют собой слова из одного и того же^семантического семейства, либо графы, из чего и вытекает существенно рекурсивный характер такого представления. Так, программа Б. Ши- шечи (В. Chichetchi, These Zeme cycle, Paris, 1979) понимает задачи по электричеству, используя транзитивные графы при считывании исходных данных (рис. 2.18а). Например, программа распознает такую фразу: «Частота напряжения V составляет 50 Гн». Очевидно, что определенные слова важны для понимания, а другие могут быть опущены в тексте (например, герц),, без изменения при этом результата анализа фразы.. Любая фраза, соответствующая определенному -пути на этом графе, заранее пригодна. При этом элемент dll сам является графом различных возможных описаний характеристик электрического тока и представлен на рис. 2.186. Такой граф позволяет автоматически распознавать, например, не только предложение ^напряжение V равно 10 В", но и фразу: ^Эффективное значение переменной разности потенциалов составляет 80 В и сила тока — 5 А”. По мере распознавания текста такой системой он переводится во внутреннее представление, которое обобщает все специфические сведения, содержащиеся в обрабатываемом тексте. Это внутреннее представление часто называют «семантической сетью» (Симмонс, Кордье, Лопес). Сеть, которая вначале пуста, непрерывно увеличивается, модифицируется, корректируется в процессе анализа. Она может содержать как точные сведения, так и сведения просто вероятные или у слов-
Рис. 2.186. Граф описаний характеристик электрического тока.
Рис. 2,18в. Семантическая сеть с разбиениями..;
ные. На рис. 2.18в дан пример машинного представления трансформатора в программе (М. Lopez, 1979).
Определенные вершины графа сгруппированы в блоки, которые выделены рамками, объединяющими концептуальные совокупности или связанные подмножества сведений.
Изменение представлений
Поиск хорошего представления в ходе решения задачи является почти всегда необходимым этапом на пути к решению. j-Существует множество задач, когда мы пользуемся прежде iBcero зрением и руками для выработки единственного "снюми- тутного” (непосредственного) представления об окружающем мире, таком, каким мы его воспринимаем непосредственно в данный момент. В этом случае нет необходимости ни в какой абстрактной модели задачи, но в свою очередь это ведет к бесполезным попыткам и поискам "на ощупь” обобщения идеи, решения, которое могло бы быть использовано при решении других задач.
Задача о четырех шахматных конях
Шахматная доска и передвижение фигур на ней зачаровывало многих авторов. На основе шахмат созданы многочисленные головоломки. В данном случае речь идет о том, чтобы за минимальное число ходов изменить на противоположное положение двух черных и двух белых коней. В задаче используется шахматная доска размером 3X3. Исходная позиция задачи о четырех конях представлена на рис. 2.19а. Кони "ходят'' (перемещаются по доске) привычным образом: на одно поле горизонтально и на два ——вертикально за ход либо, наоборот, на два поля горизонтально и на одно — вертикально.
При знакомстве с задачей
Рис. 2.19а. Исходная позиция в за- нашим первым побуждением даче о четырех конях.является сделать несколько
попыток по перемещению ко- ней на настоящей шахматной доске, но интуитивно мы понимаем, что имеется слишком много вариантов получения конечной позиции, причем при таком подходе плохо используется симметрия, присущая этой задаче. Пытаясь промоделировать.
А
В
С
D
Е
Г
G
Н
I
Рис. 2.196. Обозначение позиций и ходов коня, начиная с поля А.
условия задачи на уровне какого-то более общего представления, первое о чем мы вспоминаем, это декартова система координат. Однако такое представление имеет существенный недостаток, связанный с трудностью записи перемещения фигур на величины, равные, большие или меньшие единицы или большие или меньшие двух. Однако такие перемещения очень важны в нашем случае и именно они-то и должны быть представлены в удобной форме. Сама по себе шахматная доска почти не играет в задаче существенной роли, и ее физическое представление является только внешней поддержкой решения задачи, так как на самом деле единственно существенным является учет, связей между ходами, сделанными при переходе от позиции к позиции (вспомним, например, кубик Рубика). Отсюда вытекает, что следует дать имена, т. е. свои обозначения различным
позициям, как, например, на рис. 2.196. Теперь мы знаем:, что черный конь может переместиться на поле Л за один ход с поля Н или поля F. В свою очередь на поле Н конь сможет попасть либо с того же поля Я, либо с поля С, на поле С ——с поля D, на него —— с поля /, на поле / ——с поля В, на него ——с поля G и, наконец, на G ——с поля 尸,начиная с которого конь сможет вновь попасть на поле А. Этот маршрут в виде окружности, проходящей в
Рис. 2.20. Путь коня с поля Л. Рис. 2.21. Решение задачи о четырех конях.
указанном порядке через все позиции, изображен на рис. 2.20. Представление, получаемое с помощью этой диаграммы, наглядно и удобно для использования. На рисунке не представлено поле £, но это соответствует реальной ситуации, так как данное поле не участвует в задаче ни при каком ходе коня ни в одной позиции оно недостижимо. Все другие ситуации отражены, и это позволяет использовать ту же кольцевую диаграмму и для других коней.
Новая формулировка задачи теперь состоит в том, что нужно так переместить по этой окружности черных коней на Л и С, а белых коней на G и /, чтобы за один ход конь перемещался на одну позицию справа или слева по окружности. Решение задачи теперь практически очевидно: достаточно лишь повернуть на полоборота по окружности весь ансамбль фигур так, чтобы С попало на G, А — на /, G ——на С и С — на А. Это вращение, которое соответствует четырем ходам каждого коня, или шестнадцати ходам всех фигур, дает решение задачи ——минимальное число ходов для изменения исходной позиции на противоположную (рис. 2.21).
Язык Лисп
В задачах искусственного интеллекта возможность машинной манипуляции с символами настолько важна, что уже в 1956 г, Ньюэлл, Шоу и Саймон разработали язык программиро-
вания ИПЛ, с помощью которого можно было обрабатывать списки. ИПЛ является одним из предшественников языка программирования Лисп (LISP — List Programming), разработанного Дж. Маккарти в 1960 г.
Среди языков программирования Лисп занимает особое место. Наиболее популярным он стал в среде специалистов по искусственному интеллекту в США, где в качестве стандартного получил распространение его диалект COMMONLISP [G. L. Steel, 1984].
К сожалению, этот язык пока не получил широкого распространения в информатике в целом '). К его достоинствам специалисты относят точность, определенность, лаконичность и удобство в работе. Лисп — хорошее средство для представления древовидных структур (о которых уже говорилось выше), которые в свою очередь служат основой символьной обработки, составляющей базу большинства программ в области искусственного интеллекта. Именно поэтому подавляющее большинство программ искусственного интеллекта составлено на языке Лисп..
Следует однако отметить, что в настоящее время инструментарием для обработки списков обладают и такие развитые языки программирования, как Фортран, ПЛ/1, Паскаль, Ада и др.
Основные элементы языка Лисп
Синтаксис
Выражения языка Лисп называются также S-выражениями. Такое S-выражение представляет собой либо атом, лйбо список.
Атом представляется каким-либо алфавитно-цифровым именем (т. е. в сущности числом). Список представляет собой некоторую внутреннюю часть, заключенную в скобки.
Синтаксис языка Лисп в форме Бэкуса — Наура определяется следующим образом:'
(S-выражение):=〈атом〉
:==(список)
• (список):= ((внутренняя часть))
打 В нашей стране с Лиспом знаком лишь довольно узкий круг специалистов, работающих в области искусственного интеллекта. Это отчасти объясняется отсутствием хороших современных учебников. Издательство 《Мнр》 готовит перевод учебного руководства по одному из наиболее распространенных в настоящее время диалектов языка Лисп — COMM.ONLISP, используемому как на микроЭВМ, так и на больших ЭВМ и рабочих станциях.— Прим. ред.
(внутренняя часть) := (пусто)
:—(S-выражение)
:=(S-выражение)(внутренняя часть)
(пусто):=
(атом):— цепочка алфавитно-цифровых
символов без пробелов илиспециальных символов (,),;,
Таким образом, всякое S-выражение представляет собой на- бор атомов и списков, например:、
((КОРОЛЬ ФЕРЗЬ) ((ЛАДЬЯ) (СЛОН)) ПЕШКА).
Элементарные функции
Как и во всех языках программирования, некоторые предварительно определенные атомы являются функциями, аргументы которых представляют собой следующие за ними S-выражения. В свою очередь аргумент сам может быть функцией, которую нужно вычислить. При этом надо иметь возможность определить, что представляет собой данный элемент ——значение выражения 厶 или же символьное имя L какого-то S-выражения. В первом случае перед выражением ставится апостроф, например 'L, или же пишут в развернутой форме: (QUOTE L). Апостроф запрещает вычисление следующего за ним S-выражения, которое воспринимается программой в этом случае без изменений.
Для задания выражения используется функция SETQ:
(SETQ (атом) ^З-выражение)) ->(S-выражение),
где значение S-выражения не вычисляется. Стрелка в данном случае означает uвыдать в качестве величины". В общем случае всякое S-выражение, поступающее в машину, тут же вычисляется. Так, например, при использовании апострофа имеем
(SETQ G ‘尸)—尸.
Кроме этого, функция SETQ связывает полученный при ее применении результат с атомом: G F.
Две фундаментальные функции CAR и CDR позволяют осуществлять обработку списков, если последние не пусты. Функция CAR определяется следующим образом: (CAR '〈непустой список>) -> первое подвыражение списка. Ниже приводятся примеры использования функции CAR:
(CARM В C))f 4
(CARZ((X)吁(4)
(CAR М) -^ ошибка; А не есть список.
(CAR z( )) ошибка или NIL (в зависимости от используемого диалекта Лиспа).
Функция CDR определяется следующим образом:
(CDR '〈непустой список>) -> список, составленный из того дополнения из внутренней части, которое осталось бы при применении к исходному списку функции CAR.
Примеры использования функции CDR:
(CDR\А В С)) — (В С)
(CDR<(4)8)->(5)
(CDR,/)-》( );по соглашению
(CAR (CQR (/ В С))
—(В С)
—>b
Не совсем обычные обозначения функций CAR и CDR сложились исторически в процессе первой реализации языка Лисп на ЭВМ типа ИБМ 7094, они являлись относительными адресами регистра и декремента регистра. Наличие в языке этих двух функций и разнообразных их сочетаний является очень удобным при программировании задач искусственного интеллекта. Для этого, в частности, используются следующие сокращенные формы записи:.
(CADR S)三(CAR (CDR S))
(CADR<4 6 C))f 3
(CADDAR S)三(CAR (CDR (CDR (CAR S)))).
В Лиспе имеется функция CONS, действие которой противоположно действию функций CAR и CDR. Она определяется следующим образом:
(CONS (s-выражение) (список)) -> список
Пример действия функции CONS:
(CONS^ 7(ВС))^(Л В С).I
Второй аргумент функции CONS может быть пустым списком (),который может также обозначаться как NIL. Например: (CONS S NIL) т (А)..
В общем случае, каково бы ни было выражение S, имеем (CONS (CAR S) (CDR S)) = S.
Ниже рассмотрено обычное машинное представление объектов и алгоритм вычисления (оценивания) значений выражений в Лиспе.
Машинное представление и оценивание выражений 1 ■
Для интерпретатора программ на языке Лисп ячейки памяти ЭВМ сгруппированы попарно, и каждая из них содержит указатель, который на рисунках изображается стрелкой.
Рис. 2.23. Пример графа.
Рис. 2.24.
На рис. 2.22, а показана некоторая ситуация, а на рис. 2.22, б соответствующая ей физическая реализация. Два указателя на схеме играют роль первого указателя-исынап и первого указа- те刀я「'6рата''. Например, команда (SETQ L\ г{АВ)) создает структуру, показанную на рис. 2.23. При этом используются следующие соглашения: отсутствие указателя обозначается символом 力;атомы обрабатываются отдельно (для указания на них используется специальный маркер). '
Рис.Рис.Рис. 2.26.Рис. 2.26.1( 1 L3L21( 1 L3L2
Рис.
Рис.
Рис. 2.26.
Рис. 2.26.
1( 1 L3L2
1( 1 L3L2
АВ
Рис. 2.27.
L7 L8L9
L4 = ((TOUT (EST DANS) (TOUT) (ET RECIPROQUEMENT))
((TOUT (EST CWNS) CTOUT) ) (FT RECIPROQUEMEhTT))
1 233 44 2 55 1
Рис. 2.28.
CAR некоторого 5-выражения есть то, на что указывает первый "сын”.
CDR некоторого S-выражения есть то, на что указывает первый "брат”, взятый из внутренней части выражения и заключенный в скобки.
Чтобы определить выражение по его схематическому представлению, нужно просмотреть представление, следуя указателям, расположенным слева, на наибольшую глубину и затем по правым указателям (внешний просмотр). При записи выражения каждой стрелке, не заканчивающейся на атоме, соответствует открывающая скобка, а каждому символу « — закрывающая скобка и каждому атому — сам атом. Таким образом, приведенная на рис. 2.24 схема соответствует списку L2: ((А) (В)). Кроме того, интерпретатор постоянно ведет список свободных ячеек, предназначенных для заполнения. На рис; 2.25 это представлено схематически, где головная ячейка обозначена символом d.
Так, например, задание списка (SETQ L3 (CONS fC L2)) соответствует перемещению указателя d от предыдущей заданной отметки, если атом С не существует, и его образованию либо помещению указателя “брата” С в голову списка 2 (рис. 2.26).
Схема образования списка L3 представлена на рис. 2.27, где ЛЗ — это (С ⑷(В)).
Другой пример представления списка показан на схеме, со- ■ ответствующей списку L4, включающему списки L5,厶6,厶7, L8, L9 (рис. 2.28).■
Вычисление значения списка
Ниже приведен пример вычисления значения в языке Лисп с помощью функции EVAL, когда используется внутреннее представление в Лиспе, в котором скобкй не применяются. В языке Лисп выполнение какой-либо команды (которая сама является выражением) означает просто вычисление значения соответствующего входного выражения. Оно просматривается программой в ・ последовательности, задаваемой указателями- :“сыновьями”,а затем учитывается последний из встреченных указателей-ибратьевп. После этого учитываются указатели- “снновья”, связанные с этим последним, и так далее, пока не получается окончательное значение выражения. Затем вычисление повторяется снова, охватывая выражения более высокого уровня, и так до тех пор, пока не будет определено значение всего исходного выражения. Те части всего выражения, которые ожидают (в процессе всего оценивания) вычисления значений их аргументов, называются иногда "квазарами".
Процедура EVAL(S), где S-выражение языка Лисп во внутреннем представлении.
EVAL (S)
Если S есть атом
ТОГДА возврат значение S
警 Ж.-Л. Лорьер
ИНАЧЕ ЕСЛИ Sl= QUOTE
ТОГДА возврат <~S2
ИНАЧЕ S1 с необходимостью есть функция иначе ошибка
ЕСЛИ S1 указывает на специальную обработку:
;не оценивать определенные аргументы
;и/или принять определенное число
;аргументов
;принять определенное число переменных, например, для AND, ;RPLACA...
ТОГДА выполнить эту обработку
ИНАЧЕ применить EVAL ко всем элементам
S2 последовательно и затем рекурсивно использовать их найденные значения.
Окончательно:
возврат ч-Sl (EVAL (S2))
КОНЕЦ
КОНЕЦ
КОНЕЦ
КОНЕЦ
Здесь учитывается, что ?L эквивалентно выражению (QUOTE L), S1 означает первого “сына” для выражения S, а 52 ——элементы выражения 3, представляющие собой множество “братьев” выражения SL
Необходимо отметить, что в языке Лисп любая программа сама по себе является S-выражением. В частности, в Лиспе данные имеют ту же структуру, что и программы, и также являются выражениями. Результат выполнения программы в Лиспе также является программой. Соответственно этому S-выражение в Лиспе является программой. Это свойство языка Лисп позволяет создавать программы, которые могут перестраивать сами себя.
Так как для функции EVAL целые (например, —4) и вещественные (например, 3.1416) числа, а также пустой список NIL и символ Т (истина) являются одновременно их собственными значениями, то перед ними апостроф не ставится.
• Примеры вычисления значений выражений:
(CAR Z(X)) -> Л (CDR /({)) —NIL (CAR M)-> ошибка
(CDR S)f NIL; по соглашению.
(CAR《A)))f (用
(CDR '(4 (ВС)))-> ((8C)); внимание!
(CAR '(CDR (力 ВС)))-> CDR ; апостроф запрещает
;вычисление.
(CAR (CDR (А ВС))) f ошибка ; Л должно быть
;функцией.
Функция EVAL может быть применена дважды:
(SETQ a ZB)->B
(SETQ В 心— С
AfB
В—С
(EVAL /) f С
;далее более сложные ;случаи.
))))
4 3 2 1
;удаляются скодки9 уЗа几явес只 $2
;удаляются скобки、возврат 31
;аналогично
'(CDR ((А В) С ( D Е )))))) ;mof ^x canoe вырааюенив, но с изггенемнб/м полоо/се~
;кием апостродза? так что гюследнее CDR 貌% 仲
(((А В) C (DE) I)
((А В) C (D E) » (A B)-
(CAR (CAR 4CDR (CDR ((А В) C (D E)))JU
;теперь выражение после anoemp呻。имеет
? I; дюрму《CDR х) ик нему применяют
» ошибка, так как функция CAR определена только для списка
Сдвигая апостроф еще на позицию, имеем (CAR "AR (CDR (CDR (A 5) C(D £)))))— CAR.
Другие функции Лиспа
Предикаты (принимают значения Т или NIL)
(АТОМ (S-выражение)) -> Г, если и только если значение S- выражения есть атом или имя функции, иначе NIL.
Например:
(АТОМ 2)— Т
(ATOM NIL) Т
(ATOM ’CAR) — Т
(АТОМ 储 В)) — NIL
(NULL (S-выражение)) 7\ если и только если значение выражения есть NIL, иначе NIL.
Например:,
(NULL (CDR〈ATOM)) f Г
(EQUAL (S-выражение 1) (S-выражение 2〉)-> Т, если и только если значения обоих выражений равны.
(EQ (S-выражение 1) (S-выражение 2〉)一》Т, если и только если значения обоих выражений равны.
(EQ (S-выражение 1) (выражение 2)) ->Г, если и только если значения обоих выражений одинаковы и представляют один и тот же физический список (т. е. размещены в одном и том же месте памяти).
Например:
(EQUAL '(4 В),(才 8))f Г; тогда как
(EQ '(4 В) '(,В)) -> NIL; так как список (4 8) создан дважды, в двух различных местах.
(AND (S-выражение)*);указано некоторое число
аргументов, которые вычислены слева направо; если при этом встречено NIL, возвращается значение NIL, иначе значение последнего выражения.
(OR (S-выражение/);в отличие от предыдущего, если
при просмотре встречается значение, отличающееся от NIL, оно возвращается, иначе NIL.
(NOT (S-выражение)) —> Г, если и только если значение выражения есть NIL.
Функции
Выбор между несколькими возможностями осуществляется в Лиспе с помощью функции COND, которая записывается в виде
(COND (〈〃〉〈R)
(〈/2〉〈⑵ (〈也〉〈⑺)
Символы t указывают на выражения, относящиеся к проверяемым условиям, а символы 厂 указывают на выражения, относящиеся к результатам. Значения выражений 九 вычисляются в порядке возрастания индексов. При этом, как только встречается какое-то выражение /£ со значением, отличающимся от NIL, функция COND вычисляет соответствующее значение ri и возвращает значение последнего выражения из ri, Если все И имеют значение NIL, оно является окончательным значением COND. Некоторые ri могут отсутствовать. В этом случае, если 九 является первым /, значение которого отличается от NIL, возвращается значение И.
Функции построения списков
Две функции APPEND и LIST так же, как и функция CONS, формируют списки. Функция APPEND определяется следующим образом: (APPEND <список 1> <список 2> ...<список п>)——список, образованный из списков 1, 2, ..., м, из которых удалены скобки первого уровня. Например:
(APPEND 隱)NIL,((B)(C)))f (4 (В) (С)).
Функция LIST определяется следующим образом:
(LIST <5-выражение 1 > <5-выражение 2> ...<5-выраже- ние л>)->(5-выражение 1 S-выражение 2 ... 5-выражение п).
м; В данном случае скобки остаются. Кроме того, в отличие от ' функции APPEND эта функция позволяет использовать в каче- "стве аргументов также и атомы, например:
(LIST X) NIL〈⑻(C)))f ((A) NIL ((В) (С)))
(LIST rA NIL)f (A NIL).
В следующих разделах будут приведены синтаксические определения еще нескольких функций, позволяющих строить списки в языке Лисп.
Функция LENGTH:
(LENGTH <5-выражение>) -> число ибратьев" первого уровня в S-выражении. Например:
(LENGTH Х((Л В) С (Q)))f 3.
Функция REVERSE:
(REVERSE <5-выражение>) —^строит S-выражение из “братьев” первого уровня исходного выражения в обратном порядке. Например:
(REVERSE \А (8 С) 0)) — (。(В С) А).
Функция SUBST (функция подстановки):
(SUBST <5-выражение 1> <5-выражение 2> <5-выраже- ние 3〉)寸 результат замещения выражением 1 всех вхождений выражения 2 в выражение 3. При этом выражение 2 должно быть атомом. Например:
(SUBST 2 ?隱 В С)) —(/ Л С).
Функция MEMBER:
(MEMBER (атом) (список)) -> NIL, если й только если исходный атрм не появляется в качестве “брата” первого уровня в исходном списке. Например:
(SETQ М \А В (С О) Е))
(MEMBER 'F M) f NIL
(MEMBER ZC M)-> NIL
(MEMBER ZB M)^(B (С О) E)
Функция RPLACA:
(RPLACA (список) (S-выражение)) f замещает CAR списка на указанное выражение. Например:
(SETQ G 隱 В С)) (А В С)
(RPLACA (CDR G),D)f(D C)
Следует отметить, что функция RPLACA производит такое же действие и на исходный список: G f (A D С).
Функция RPLACD является симметричной по отношению к функции RPLACA. Она воздействует на CDR своего первого аргумента.
Числовые функции
При записи числовых функций всегда используется форма префиксной польской записи. Ниже приводятся числовые функции, смысл которых очевиден.
(PLUS 2 3)-> 5; функция может иметь несколько аргументов
(PLUS I 2 3 4 5)-> 15
(DIFFERENCE 5 2) — 3
(TIMES 4 5)-> 20
(QUOTIENT 8 2)f 4
(MAX 5 8 7 6) —8
(MIN 5 8 7 6) —5
(ADD1 6)->7
(SUB1 7)f 6
(SQRT ]6)-> 4
(EXPT 2 3)->8
(MINUS 3) ——3'
(ABC —3)f 3
(MAX (MIN 2 4 6) (MAX 3 5 2))f 5
(ATOM (PLUS 1 2 3))-> 7, так как аргумент, являющийся выражением, имеет значение 6, которое является атомом.
Ниже приводятся три предиката с числовыми аргументами.
(LESSP ^l N2)->Т, если и только если N\ < N2.
(GREATERP Nl N2)f Т, если и только если Nl > N2.
(ZEROP A4)f Т, если и только если У1 — 0.
Функция REMAINDER определяется так:
(REMAINDER ^l №2) -> остаток от деления ^l на N2.
Если в приведенных выше выражениях N1 и N2 не являются числовыми, выдается сообщение об ошибке. В Лиспе предусмотрена возможность проверки того, является ли данное выражение числом:
'(NUMBERP (S-выражение)) ~^Т, если и только если значение выражения является числом.
Итерации: MAPCAR и APPLY
(MAPCAR ^функция) (S-выражение)) — выражение, образованное применением первого аргумента (который должен быть функцией, известной системе) ко всем элементам заданного S- выражения. Например: (MAPCAR ^ADDY (4 8 3))->(5 9 4).
Исходная функция должна быть функцией одного аргумент та, чтобы была возможность ее соотнесения с ибратьямй**
первого уровня исходного выражения.
(APPLY/〈функция) (S-выражение)) ~>здесь исходная функция применяется к указанному выражению. Например:
(SETQ 4 '(4 5 8 1)) —(4 5 8 1).
(APPLY 'PLUS А) -^ 18.
В последнем примере необходимо использовать указанную функцию присваивания, так как без нее проверка функции (PLUS Л) даст на выходе ошибку, поскольку PLUS требует числового аргумента.
Две описанные выше функции, называемые итерациями, позволяют элегантно и просто переносить действия любых функций на элементы списка.
Лямбда-функция. Определения и свойства
Определение лямбда-функции
Лямбда-запись, предложенная Черчем в 1930 г., позволяет в Лиспе локально использовать какую-либо функцию, не давая ей собственного имени. Лямбда-функция определяется следующим образом:
((LAMBDA (X) (S-выражение 1) j (S-выражение 2)) ^значение (S-выражения 1), в котором все вхождения X замещены значениями <5-выражения 2>, где X ——переменная, S-выражение 1 ——тело лямбда-функции, S-выражение 2 ——аргумент.
Примеры использования лямбда-функций:
((LAMBDA (X) (EQUAL X ЖАРАНДАШ))宋АРАНДАШ) —Т (MAPCAR "AMBDA (/) (TIMES / / /)) <1 2 3 4)->
f (I 8 27 64).
Отметим, что во втором примере обязательным является использование апострофа перед лямбда-функцией.
Свойства, связанные с атомами. Функции PUTPROP и GET
Таблицы и индексы не имеют смысла в языке Лисп. Чтобы говорить о некоем свойстве, связанном с каким-то объектом, и о его значении, используют функцию PUTPROP:
(PUTPROP (атом 1〉(список) (атом 2)).
Эта функция “связывает" свойство, выраженное именем атома 2, с объектом, представленным атомом 1, и с конкретными значениями свойства, представленными в исходном списке. Например:
(PUTPROP FbEP ЖАН 氷АК),ДЕТИ) —(ЖАН ЖАК).
В этом примере рассматриваемая функция физически связывает (с помощью указателей) объект ПЬЕР через свойства ДЕТИ со значениями этого свойства, а именно: детьми Жаном и Жаком.
Чтобы узнать, обладает ли объект данным свойством используется функция GET:
(GET (атом 1) (атом 2)) значение свойства, задаваемого атомом 2 в точке, определяемой атомом 1, если оно существует; иначе NIL. Например:
(GET TtbEP "ДЕТИ) -> (ЖАН ЖАК).
. Создание новых конструкций в языке Лисп
В языке Лисп имеется возможность создавать новые функции. Для этого используется функция DEFUN: (DEFUN <атом> (<р1> <р2> ... <рп>) <5-выражение>), где атом представляет собой имя функции, которую хотят создать, Pi, ..., рп — формальные параметры или связанные переменные, а (S-выражение) представляет собой тело функции.
В качестве первых простых примеров построим две уже известные функции, как если бы их в системе не было.
(DEFUN LONGUEUR (厶)
(COND ((NULL £)0) ; если L есть NIL, то 0
(Г (ADD1 (LONGUEUR (CDR £))))))
;иначе добавляется 1 и удаляется CAR.
;так может быть воссоздана функция
;LENGTH
f LONGUEUR; система возвращает имя функции.
Также просто задается функция REVERSE, которая изменяет на обратный порядок следования “братьев” первого к уровня:
(DEFUN REVERSE (S)
(COND ((NULL S)S); если L есть NIL, то S
(T (APPEND (REVERSE (CDR (S)) (LIST (CAR S))))))) REVERSE
только из атомов:
(DEFUN UNION (Е 戶);результат будет помещен в F
(COND ((NULL E)F)
((АРР (CAR E)F) (UNION (CDR E)尸))
;если первый элемент е из Е уже
;принадлежит 尸,то продвигаются
;дальше в £
;АРР — функция, которую предстоит
•; еще построить;
;.иначе нужно добавить с к 戶 и
;продолжить аналогично
;предыдущему. '
(Т (UNION (CDR £) (CONS (CAR E)尸)))) —UNION
Построим функцию двух аргументов АРР:
(DEFU母 АРР (Л X) ,; Атом А имеется в X?
(COND ((NULL X) NIL) ; нет, если множество X
;пусто ■
((EQUAL Л (CAR X)) Г) ; да, имеется
;иначе погружаются ;дальше в мно-
;жество X
(Т (АРР Л (CDR X)))))
f АРР
Например:
(UNION Z(A В С D Е) ” U В D У)) — {Е С A Z U В D Y)
Теперь построим функцию PIMP для определения списка элементов последовательности 以〃 которая задана следующим образом:
(〃北/2, если ип четное,
—{ иначе 3〃力 + 1.
,(DEFUN PIMP ⑷
(PRINT 〃) ; печатаются последовательные значения (COND {(EQUAL 〃 1) NIL); останов, если 〃=1
(ZEROP (REMAINDER и 2)) ; случай
;четного и:
(PIMP (QUOTIENT 〃 2)))
(Т (PIMP (ADD1 (TIMES м 3))))))
— PIMP
Например:
(PIMP 17)-> 17 52 26 13 40 20 10 5 16 8 4 2 1..
Опишем функцию FILTRE, или uсопоставление с образ- цом", которая сравнивает две цепочки символов F (по форме) и Е (по содержанию). Эта функция является частным случаем алгоритма унификации, рассмотренного в гл. 3.
Символы из F и £ сопоставляются по одному слева направо. Если они идентичны, процесс продолжается. Однако некоторые символы из 尸 могут быть специальными символами, например +, *, и желательно, чтобы, например, с символом 十 из 尸 были бы сопоставимы любые символы Е. Тогда функция FILTRE будет давать например, (FILTRE ^Д + С) 7 (А В С))-> Т.
Символом * из 户,например,, должно сопоставляться некоторое число символов из £, например:
(FILTRE f^Cy (4 6 С)) f Т.
Тогда функция FILTRE определяется следующим образом:
(DEFUN FILTRE (尸 Е)
(COND ((AND (NULL F) (NULL £)) Г) ; F и E пусты ((OR (NULL F) (NULL £)) NIL); одно из мно-
;жеств пусто, ((OR (EQUAL (CAR 尸)(CAR E)
(EQUAL (CAR 尸)' + )); случай
;С СИМВОЛОМ +
(FILTRE (CDR 尸)(CDR £)))
((EQUAL (CAR 尸)");случай с символом * (COND ((FILTRE (CDR 尸)(CDR E)))
((FILTRE F(CDR E)))))
(T NIL))) ; иначе неудача
->FILTRE
функции FILTRE:
(FILTRE ('(* В К + М* Z)\B АО В А В К L MY Z))^T
Форма LET позволяет воздействовать на значения идентификаторов, которые затем используются в качестве аргументов выражений. Функция LET помогает отказаться от многократных расчетов одних и тех же величин. Она задается следующим образом:
(LET (имя 1 S-выражение 1)'
(имя 2 S-выражение 2)
(имя п S-выражение и))
(выражения)*) —> значения выражений, имена которых были заменены значениями исходных выражений.
Ниже дан пример использования LET:
(DEFUN PGGD ЛЧ ^2)
(LET ((М (REMAINDER ^l ^2)))
(COND ((ZEROP M) N2)
(T (PGCD N2 M))))))
Функции FEXPR и MACRO
Функция FEXPR не вычисляет значений своих аргументов. Ее синтаксис задается следующим образом:
(DEFUN (имя функции) FEXPR (параметр) (тело)).
Ниже дается пример использования этой функции:
(DEFUN ПЕЧАТАТЬ FEXPR (Р) (PRINT Р))
-^ПЕЧАТАТЬ
(ПЕЧАТАТЬ ЭТУ ФРАЗУ)
—(ЗТУ ФРАЗУ)
К функциям типа FEXPR относятся функции QUOTE, SETQ, COND.
Функция типа MACRO сначала производит интерпретацию тела функции, после чего вычисляется ее значение. Эта функция используется следующим образом: ,
(DEFUN (имя функции) MACRO (посредством) (гело)).
В качестве примера рассмотрим построение классической процедуры ЕСЛИ ... ТО ... ИНАЧЕ. При этом в качестве параметра будет список: (ЕСЛИ ПРОВЕРКА ДЕЙСТВИЕ 1 ДЕИ-
СТВИЕ 2). Так как выражения ПРОВЕРКА, ДЕЙСТВИЕ 1, ДЕЙСТВИЕ 2 неизвестны при вызове, используется функция подстановки SUBST, чтобы надлежащим образом ввести эти выражения в функцию COND, значения которой будут вычисляться:
(DEFUN ЕСЛИ MACRO (」(SUBST (CADR X)(SUBST (CADDR X)(SUBST (CADDDR X) '(COND— ЕСЛИ((DEFUN ЕСЛИ MACRO (」(SUBST (CADR X)(SUBST (CADDR X)(SUBST (CADDDR X) '(COND— ЕСЛИ("ПРОВЕРКА'ДЕЙСТВИЕ 1"ДЕЙСТВИЕ 2(ПРОВЕРКА ДЕЙСТВИЕ 1)ДЕЙСТВИЕ 2))))))"ПРОВЕРКА'ДЕЙСТВИЕ 1"ДЕЙСТВИЕ 2(ПРОВЕРКА ДЕЙСТВИЕ 1)ДЕЙСТВИЕ 2))))))
(DEFUN ЕСЛИ MACRO (」
(SUBST (CADR X)
(SUBST (CADDR X)
(SUBST (CADDDR X) '(COND
— ЕСЛИ(
(DEFUN ЕСЛИ MACRO (」
(SUBST (CADR X)
(SUBST (CADDR X)
(SUBST (CADDDR X) '(COND
— ЕСЛИ(
"ПРОВЕРКА
'ДЕЙСТВИЕ 1
"ДЕЙСТВИЕ 2
(ПРОВЕРКА ДЕЙСТВИЕ 1)
ДЕЙСТВИЕ 2))))))
"ПРОВЕРКА
'ДЕЙСТВИЕ 1
"ДЕЙСТВИЕ 2
(ПРОВЕРКА ДЕЙСТВИЕ 1)
ДЕЙСТВИЕ 2))))))
Выражение (SUBST х у z) производит подстановку х вместо каждого у в выражении г. Отметим, что каждое использование функции SUBST оказывает воздействие на всю последовательность действий программы. Определенная выше функция MACRO сама производит трансформацию своей собственной программы.
2.13. Графы
Обобщение символического представления выражений в виде деревьев приводит к понятию графа. Граф 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 не ориентированы и называются ребрами. В противном случае
порядок расположения вершин и и у в паре (〃, и) изъявляется существенным, и такие пары вершин называются дугами. Наиболее естественной интерпретацией графа представляется схема связей между точками, например телефонная или дорожная сеть (в общем случае являются неориентированными), или электрические сети (являются ориентированными в случае использования постоянного тока).
Определения
Граф G,= (У, У) называется частичным (или партитивным) графом графа G = (X, U), если и только если Y = X и Y и U. Он является подграфом, если и только если У и X и если V — =U —W, причем IF = {(и, 5), где и w (X — У) или w w 巨(X— У)}. В этом случае из G удалено некоторое множество вершин вместе со ^семи инцидентными им дугами. Если и = =(х, у) принадлежит U, то х называется начальной вершиной и, а у — конечной вершиной и и соответственно х есть вершина, предшествующая вершине у, а у ——вершина следующая за 尤. Степенью вершины называют число соседних с ней вершин, т. е. число вершин, которые являются предшествующими и последующими по отношению к рассматриваемой вершине.
Путем от вершины а к вершине b на графе G = (X, U) называют конечную последовательность вершин графа G(s, с?, ..., С"), такую, что с\ = а, сп — b м Vi^i, су) принадлежит U. Если G является неориентированным графом, достаточно, чтобы в приведенном выше определении либо пара (с〃 с—), либо пара (cz-ь cj принадлежала U; тогда говорят о цепи от а к Ь.
Контуром (циклом) называют путь, который заканчивается на своей начальной вершине (а 三 6).
Если для каждой пары вершин а и b из G существует цепь от а к &, то граф G называют связным (или сильно связным, если существует путь).
Использование графов позволяет представлять многочисленные различные ситуации (в том числе, уже упоминавшиеся выше различные сети). С их помощью можно моделировать основные формы связи и подобные им отношения, материальные или информационные потоки, химические формулы, символьные выражения в общем случае, так как деревья являются частным случаем графов (графики функций в математическом анализе также являются частным случаем, поскольку они являются графическими изображениями множеств точек (х, f (х)).
В гл. 4, 5 и 8 рассмотрены многочисленные примеры полезности использования графов и их больших возможностей при моделировании.
Глава 3
ФОРМАЛЬНЫЕ СИСТЕМЫ
Введение
В формальной логике разрабатываются методы правильных рассуждений, представляющих собой цепь умозаключений в логически последовательной форме. Рассуждения в ней изучаются с точки зрения формы, а не смысла, и с этой целью в обычных рассуждениях выделяются определенные элементы, которые могут замещаться в них произвольным образом какими-то другими элементами. Например, в хорошо известном силлогизме (обычно приписываемом Аристотелю, но в действительности принадлежащему Г. Оккаму (1349 г.))
иЛюди ——смертны, Сократ ——человек, следовательно, Сократ смертен"
в обоих случаях вхождения слов **человек (люди)”,“смертен (смертны) “Сократ” могут быть заменены любыми другими словами и при этом само рассуждение останется формально допустимым. Таким образом, уже простая замена таких слов в рассуждениях символьными обозначениями позволяет строить обобщенные суждения на основе подобных рассуждений. Так, в приведенном примере абстрактная модель этого рассуждения принимает следующий вид:
иЕсли все х суть у и если z есть %, то z есть д".
В силлогистике, создателем которой был Аристотель, как раз и начали систематически применяться такие замещающие символы, позднее получившие название переменных (впервые они встречаются в “Органоне”).
Однако при формальном описании рассуждений, подобных тем, что встречаются в обычном языке, недостаточно введения одних только переменных. В этом случае возникает необходимость в словах типа “если, тогда, или, и, так как, следовательно", а также в таких глаголах, как “есть, принадлежит, влечет, следует", которые играют фундаментальную роль в рассуждении. Это фундаментальные элементы представляют собой слова —связки формального рассуждения и не допускают никаких замен. Например, рассматриваемый нами силлогизм тут же разрушается, если заменить в нем второе по порядку следования “если” на “нлн”. Такие фиксированные, незаменяемые элементы называются операторами.
Отметим, что в обычном языке союз «или» может принимать различные значения. Иногда он означает «или то или другое, или и то и другое вместе» (это или включительное), а иногда 《или》означает «одно из двух ——либо то, либо другое» (это или исключительное). Аналогично глагол “есть, является" означает иногда включение, иногда равенство, а иногда принадлежность. В связи с этим возникает необходимость использовать различные символы для обозначения и отражения различных значений и оттенков, подобных слрв.
Одна из задач формальной логики — выявление неоднозначностей и изучение отдельных этапов рассуждений или выводов, когда шаг за шагом строго доказывается их правильность вне зависимости от используемой интерпретации и не остаются неясности ни на одном этапе.
Став составной частью философии и имея в числе своих создателей таких великих ученых, как Аристотель, Авиценна, Абеляр, Кант, Лейбниц, формальная логика с течением времени приобретает все более математический характер. Благодаря результатам, которые были получены в этой области Д. Венном, Г. Булем, А. Морганом и затем стали использоваться в других научных дисциплинах, начинает осуществляться мечта Лейбница о разработке и практической реализации универсальной символики. Однако здесь необходимо отличать формализованные рассуждения от аргументации, используемой людьми в устной или письменной обычной,речи, хотя первоначально логика была теорией правильной аргументации.
Лишь начиная с трудов Г. Фреге, затем Г. Пеано и, наконец, с монументального труда Б. Рассела и А. Уайтхеда «Основания математики» (1913 г.), формальная логика полностью отделилась от разговорного языка и выделилась в самостоятельную дисциплину, базирующуюся на собственной знаковой системе. При этом возникли новые и серьезные проблемы, в частности следующие:
L Не приводит ли к порочному кругу идея изучения на формальном уровне с помощью собственных формализмов самой формальной логики?
В какой степени допустимо распространение математических, методов на логику?
Каким образом переходить от логического символизма, свободного от смыслового содержания, к конкретной интерпретации, связанной с той или иной предметной областью?
Интересно отметйть, что уже начиная с времен Древней Греции ^Начала*1 Евклида считались примером строго дедуктив- кого рассуждения. И лишь только в 1882 г. М. Паш сформулировал в явном виде несколько фундаментальных гипотез, кото-
рые до этого времени только подразумевались (например, утверждение о том, что между двумя любыми несовпадающими точками всегда найдется третья точка, отличная от первых Двух).
В 1895 г. Д. Гильберт предложил программу построения всей математики на основе ограниченного числа аксиом. Однако в 1931 г. К. Гедель своей знаменитой фундаментальной теоремой показал, что такая программа неосуществима. Он также указал на внутренние ограничения теории формального вывода и вообще формальных систем.
Важность подобного подхода, связанного с теорией теории или метатеорией, отмечается на протяжении всей книги.
Определение формальной системы
Формальная система представляет собой совокупность чисто абстрактных объектов (не связанных с внешним миром), в которой представлены правила оперирования множеством символов в чисто синтаксической трактовке без учета смыслового содержания (или семантики).
Формальная система определена, если:
Задан конечный алфавит (конечное множество символов).
Определена процедура построения формул (или слов) формальной системы.
Выделено некоторое множество формул, называемых аксиомами,
Задано конечное множество правил вывода, которые позволяют получать из некоторого конечного множества формул другое множество формул. Эти правила могут быть представлены в виде
U1 н и2 H …Upf 吃 и Г2 и ... rn,
где Uj и Wf — формулы формальной системы, а стрелка ^ читается как "влечет" или “следует”.
Дополнительные определения
Формальную систему иногда называют также аксиоматикой, или формальной теорией, или еще проще ——множеством формул.
Алфавит, который заранее предполагается конечным, иногда называют словарем. При этом в нем различаются константы, переменные и операторы (примеры в разд. 3.2.3).
Способ построения формул (п. 2 определения формальной системы) определяет конкретную синтаксическую конструкцию
формул Или грамматику формул, которые представляют собой правильно построенные последовательности символов. В отличие от этого в п. 4 определения формальной системы заданы разрешенные правила вывода формул друг из друга.
Формальное доказательство (или просто доказательство) определяется как конечная последовательность формул М, М2, .. •, Mr, такая, что каждая формула Mt либо является аксиомой, либо при помощи одного из правил вывода выводима из предшествующих ей формул А4〃 где / Ci.
Формула t называется теоремой, если существует ' доказательство, в котором она является последней, т. е. Мг = /. В частности, всякая аксиома является теоремой. Если / есть теорема, то этот факт кратко обозначается так: НЛ
Правила вывода (п. 4 определения формальной системы) называют также правилами словообразования или правилами вывода заключения. В принципе они позволяют определять, является ли данная формула теоремой данной формальной системы. Отметим также, что в соотношении
{теоремы} cz {формулы} cz {цепочки символов из алфавита}
включение множеств является строгим.
Различают два типа правил вывода: Г) правила, применяемые к формулам, рассматриваемым как единое целое (в этом случае их называют продукциями, правилами продукций или продукционными правилами); 2) правила, которые могут применяться к любой отдельной части формулы, причем сами эти части являются формулами, входящими в формальную систему. В этом случае говорят о правилах переписывания. Так, в обычной математике следующее правило вывода:
х < у и у <z влечет х <2
применяется к формуле как к целому (в данном случае к предложению математического анализа) ——это продукция (с двумя антецедентами, или посылками). Слово ^влечет^ для краткости при использовании продукции часто заменяется стрелкой В отличие от предыдущего правило % ——х Н 0 имеет смысл при любом виде входящего в него в качестве подвыражения х. Оно является правилом переписывания, и в этом случае для обозначения слова uвлечет" используется специальная стрелка *~>.
Разумеется, и продукция, и правило переписывания имеют только одно направление вывода — слева направо. Правило переписывания действует в обоих направлениях, если только заданы два правила: ат*Ь и Ь—>а. Иначе при использовании одностороннего правила переписывания как двустороннего
в рассуждениях может получиться порочный круг (что часто случается с детьми).
Замечание. Множества, указанные в пп. 3 и 4 определения формальной системы, не обязательно должны быть конечными: достаточно, чтобы они были рекурсивно перечислимы. Однако в последующем изложении мы будем предполагать, что они являются конечными.
Правило подстановки
Правило подстановки пригодно для использования в любой формальной системе. Чтобы применить правило вывода к какой-нибудь формуле М, принадлежащей к некоторой формальной системе, надо совместить левый элемент правила Q с М. Это осуществляется при помощи подстановок в Q и/или в М. Подстановка заключается в замещении всех вхождений какой- либо переменной на формулу из формальной системы, которая не содержит этой переменной.
Примеры формальных систем
Пример 1. Формальная система (/Р)
Алфавит = {а, &, □}.
Формулы: символ или какая-либо последовательность символов а или Ь, или □.
Одна аксиома: а □ а.
Одно правило вывода: Ci □ с2 fbei □ bc2.
Принято, что в этом правиле вывода символы с\ и с? означают какие-то последовательности символов а или b формальной системы (JP) и могут быть замещены любыми последовательностями символов а или Ь.
Символы с\ и с? не являются символами формальной системы (/Р). Они служат только посредниками для формализации правил вывода. Учитывая способ образования формул не- замещаемые символы а и b называют константами, а незаме- щаемый символ □——оператором.
Из определения данной формальной системы непосредственно вытекает следующий способ получения допустимых формул, т. е. формул, выводимых согласно правилу п. 4 определения данной формальной системы: достаточно рассмотреть лишь все комбинации, получаемые при последовательном применении правила 4 к аксиоме 3 нашего примера. В результате мы имеем
а □ а
b а П а b
b b а П a b b
b b b а □ a b b b И т.
Очевидно, что, например, выражение baab □ abba не могло бы быть допустимой формулой в данной формальной системе. Мы еще вернемся к рассмотрению этой системы в разд. 3.5.
Пример 2. Формальная система (DH)
Д. Хофштедтер в своей объемистой книге 1Тедель, Эшер, Бах ——золотой венок вечностип прослеживает проявление идеи рекурсии и автоморфизма в логике, теоремах Геделя, информатике, странных рисунках Эшера, фугах, канонах и экспромтах Баха. Приводимая ниже формальная система (DH) взята из первой главы этой книги:
Алфавит: М /, U.
Формулы: любая последовательность символов данного алфавита.
Одна аксиома: MI.
Правила вывода:
правило 1:ml f mIU(продукция);
правило 2:Mm-> Mmm(продукция);
правило 3:III v-^U(правило переписывания);
правило 4:UU(правило переписывания).
То, что правило 1 является продукцией, означает в данном случае, что оно применяется только, если последняя буква теоремы есть /. В этом случае, например, из теоремы MIUMIUMI выводится теорема MIUMIUMIU. Отметим, что символ m не принадлежит символам данной формальной си* стемы, а просто играет роль некоего слова.
Правило 2 позволяет из теоремы MUI вывести теорему MUIUI при условии, что MUI является теоремой. Правило 3 позволяет, например, сделать переход от теоремы MUIIIUM к теореме MUUUM. Последнее правило 4 указывает, что всякая цепочка из двух рядом стоящих символов U может быть просто удалена из теоремы. Например, теорема MUUUUMM равно- значка теореме МММ. Ниже приводятся примеры использования правил вывода данной формальной системы:
a) MI
(аксиома);
б) МП
(правило 2 применено к а);
в) МШ1
(правило 2 применено к б);
г) МШШ
(правило 1 применено к в);
д) MIUU
(правило 3 применено к г);
е) MI
(правило 4 применено к д).
Читателю предлагается; используя правила вывода данной формальной системы, решить задачу, предложенную Д. Хоф- штедтером: получить теорему MU из исходной аксиомы данной формальной системы.
Разрешимость и интерпретация формальных систем
Разрешимость :
Первым вопросом, который возникает при задании формальной системы, является вопрос об инверсии, т. е. о том, возмож- но ли, рассматривая какую-либо формулу формальной системы, определить, является ли она доказуемой или нет. Другими словами, речь идет о том, чтобы определить, является ли данная формула теоремой или яе-теоремой и как это доказать. В математике предполагается,, что при задании формальной системы существует хорошо определенный способ действий, который за конечное число шагов позволит получить ответ на данный вопрос. Такой способ, если он существует, называется процедурой решения, а соответствующую формальную систему называют разрешимой. Однако основная трудность заключается в том, что такие процедуры существуют далеко не всегда, даже для таких простых и фундаментальных теорий, как исчисление предиктов первого порядка (разд. 3.5). Причина этого состоит в следующем. Даже если применить правила словообразования (т. е. правила построения формул, правила вывода) последовательно ко; всем возможным объектам формальной системы и формальная система такова, что имеется принципиальная возможность полного перечисления ее теорем (даже при бесконечном их числе), то все же не существует никакого подходящего способа 8 общем случае, чтобы перечислить зсе не-теоремы.
В данном случае эту проблему нельзя решить и с помощью комбинаторных методов, так как если после какого-то числа проведенных операций еще не получено, определенного ответа на вопрос о характере рассматриваемой формулы, то нет возможности определить причину этого: то ли рассматриваемая формула не является теоремой, то ли^ сама формальная система не является разрешимой; Поэтому говорят, что множество теорем формальной системы необязательно является рекурсивно перечислимым.
Интерпретация
Формальные системы являются не просто игрой ума, а всегда представляют собой модель какой-то реальности (либо конкретной, либо математической).
Интерпретация представляет собой распространение исходных положений какой-либо формальной системы на реальный мир. Интерпретация придает смысл каждому символу формальной системы и устанавлйвает взаимно, однозначное соответствие между символами формальной системы и реальными объектами. Теоремы формальной системы, будучи однажды интерпретированы, становятся после этого утверждениями в обычном смысле слова, и в этом случае уже можно делать выводы об их истинности или ложности.
Отметим, что речь идет о замыкании или логическом завершении понятия математического подхода. Вначале математик изучает реальность, конструируя некоторое абстрактное представление о ней, т. е. некую формальную систему. Затем он доказывает теоремы этой формальной системы. Вся польза и удобство формальных систем как раз и заключаются в их абстрагировании от конкретной реальности. Благодаря этому одна и та же формальная система может служить моделью многочисленных различных конкретных ситуаций. Наконец, он возвращается к исходной точке всего построения и дает интерпретацию теорем, полученных при формализации. Необходимо, конечно, чтобы для данной формальной системы всегда существовала по крайней мере одна интерпретация, в которой каждая теорема данной формальной системы была бы истинной.
Конкретная формальная система является тем более интересной, чем больше существует для нее различных интерпретаций. В таком случае наличие даже какого-то одного формального доказательства уже обеспечивает получение различных конкретных результатов. В современной математике большой интерес вызывают формальные системы самого общего характера, которые исследуются в теории категорий и теории моделей.
Доказательство и истинность
Из приведенных выше определений существует уже по построению глубокое различие между концепциями доказательства и истинности. Эти понятия относятся к двум различным областям. Априорно ничто не гарантирует, что всякое утверждение, истинное в обычном смысле слова, соответствует какой- то доказуемой формуле. Ведь не только то истинно, для чего .у нас есть доказательство!
На самом деле имеются четыре варианта взаимоотношений между доказательством и значением истинности, поскольку формула, с одной стороны, может быть теоремой (обозначается
символом 7 на схеме, изображенной на рис. 3.1) либо не-теоре- мой (NT), а с другой стороны, ее интерпретация может быть истинной (V) либо ложной (F). *
Первый вариант (7, V), когда интерпретация истинна, не представляет проблемы. Если формула доказуема и соответствует определенной интерпретации, значение которой ложно, то такая интерпретация просто не представляет интереса. Вариант
Рис. 3.1. -Четыре класса сочетания теорем (Г) и не-теорем (/V7) и значений истинности ИСТИНА (V) и ЛОЖЬ (F).
(7, F) исключается из рассмотрения и может использоваться для определенной корректировки рассматриваемой формальной системы таким образом, чтобы с ней остались связанными тблько те интерпретации, значения которых истинны для всех теорем системы. Теперь рассмотрим^варианты (NT, V) и (NT, 尸),соответствующие не-теоремам. Что касается варианта 4, то весьма желательно, чтобы значение иложь,1 было бы присвоено всем не-теоремам; однако это не всегда возможно (разд. 3.4.1). Тем не менее наиболее часто используемые формальные системы относятся именно к этому случаю, как, например, логика высказываний (которую называют также пропозициональной логикой или исчислением высказываний). Логика высказываний рассмотрена в разд. 3.4.
Наиболее сложным является вариант (NT, V), когда не всегда можно избежать трудностей, заключающихся в том, что !могут существовать не^теоремы данной формальной системы, которые в определенных интерпретациях являются истинными, причем такие интерпретации часто оставляются для рассмотрения. В качестве примера назовем знаменитое утверждение Ферма: “Для всякого целого п > 2, уравнение в целых числах хл + yn = zn не имеет решения". Вполне возможно, что оно является истинным в обычной интерпретации, где используемые
символы имеют обычный арифметический характер. Это утверждение проверено с помощью ЭВМ, на которой оно просчитано до значений п = 10 000. Однако остается возможность того, что оно недоказуемо в существующей арифметической аксиоматике. Еще более неприятным является тот факт, что (как показано в разд. 3.6) существуют формальные системы, в которых класс формул(NT, V) не является пустым ни при какой интерпретации!
Сюда относится и проблема наличия ограничений формализмов. Одни из них связаны с формой представления (записи) интерпретации, в то время как другие ограничения от этого не зависят. Однако во всех случаях существует одна и та же проблема: исходя из аксиом и правил вывода, во-первых, как сделать хороший выбор исходных из них для быстрого получения доказательства конкретной формулы в качестве теоремы и, во- вторых, как доказать, что некая формула недоказуема в данной формальной системе? В общем случае проблема, поставленная таким образом, является неразрешимой.
Зная, что комбинаторные методы в нашем случае неэффективны, мы будем подходить к проблеме исследования формальных систем со строго формальной точки зрения, что позволит получить результаты, выявляющие формальные свойства формальных систем. В свою очередь это позволит значительно усовершенствовать и сами комбинаторные методы. Например, если в данной формальной системе не употребляется какая-то константа (например, А) ни в аксиомах, ни в правилах вывода, то она не может появиться и ни в одной теореме. Другим подобным примером является следующий: если никакое правило вывода данной системы не порождает формулы, более длинной (т. е. содержащей большее число символов), чем теорема, к которой оно применяется, то всякая теорема большего размера, чем аксиома, может быть удалена из рассмотрения. В этом случае всегда можно получить результат за конечное число шагов, так как дерево поиска уменьшено в этом случае до конечной величины《£%『口^ 厶—число символов в алфавите, а п — длина доказываемой формулы.
Фундаментальная важность такой метатеории показана ниже при рассмотрении двух введенных ранее формальных систем, а также двух классических формальных систем: логики высказываний и исчисления предикатов первого порядка. Именно такой подход позволил трем великим математикам Черчу, Геделю и Тарскому получить к 1930 г. весьма общие результаты, относящиеся к формальным системам. Эти результаты рассмотрены в последующих разделах данной главы.
Примеры формальных доказательств
Пример 1. Формальная система (JP)
Эта система определена в разд. 3.2.3 :). В ней в качестве аксиомы и правила вывода определены
Н а □ о
c{ □ e2 f 历1 口 反2‘
Теоремы в этой системе получаются следующим образом:
Ьа □ ba, bba □ bba, bbba □ bbba,...
Очевидно, что теоремы здесь совпадают с формулами вида
b …Ьа □ b …Ьа,
где символ b повторяется по р раз до и после символа □. В сокращенном виде это может быть записано**
Ьра □ bpat*
где по соглашению выражение 加 обозначает р-кратную конкатенацию Ь, причем Ь° соответствует пустому символу. Это наше соглашение уже вводит фактически метаобозначение, поскольку возведение в степень не является операцией исходной формальной системы.
Отметим, что при рассмотрении этой формальной системы необходимо использовать систему более высокого уровня — формальную арифметику.
Замечание. Необходимость различать язык и метаязык возникает в ситуациях, когда естественный язык выполняет одновременно две различные функции:
• указание соответствующего фрагмента в произведении;
(• определение на языке грамматики этого же языка.
; Это различие является фундаментальным для информатики, _ где специальные программы (компиляторы) предназначены для преобразования на язык другого уровня исходных программ.
Определение какого-либо языка программирования в форме Бэкуса — Наура задает формальную систему, которая опреде- 7 ляет допустимые выражения этого языка:
(Программа):= (Команда)|(Программа) (Команда)
"На самом деле данная система несколько отличается от системы в разд. 3.2.3, к которой автор еще вернется в разд. 3.5.——Прим. ред.
Эта запись означает, что программа представляет собой команду или программу с последующей командой:
(Команда) := ^Комментарий) |(Строка) |(Метка)
|(Метка) (Строка)
(Комментарий) := Пусто |(Буква) (Комментарий)
и т. д. Таким образом, все символы между угловыми скобками последовательно определены.
Построим процедуру решения для формальной системы (JP): подсчитывается число р^—число вхождений символа b в головной части формулы ——кандидата в теоремы, затем проверяется, является ли символ, который следует за А символом а, следующий за ним ——символом □, и затем проверяется, следует ли за этим символом □ вновь р символов b и после них последний символ а. Если проверяемая формула удовлетворяет этим условиям, она является теоремой. В противном случае она есть не-теорема.
Теперь введем две интерпретации системы (JP).
Первая интерпретация. Условимся, что символ а представляет нуль, символ Ь обозначает последующее целое числа за числом, стоящим справа от него на множестве целых чисел, и символ □ обозначает знак равенства. Тогда аксиома интерпретируется как 0 — 0 и является истинной. Последовательность теорем отображается последоватсл 1>ннстью равенств 1 = Г, 2 = =2, ..., р = р, которые все истинны. В противоположность этому формула 1 = 2, которая не вытекает из- интерпретации какой-либо теоремы, является для нас очевидно ложной. (Эта формула следует из не-теоремы Ьа □ bba.) Таким образом, имеется корректная интерпретация системы (JP) в обычной арифметике с полным соответствием Т +> V и NT «^ F. При этом клетки 2 и 3 на рис. 3.1 являются пустыми.
Вторая интерпретация. Теперь пусть а обозначает предложение: “Сократ смертен”,знак □ — идентичность двух предложений, и символ & означает отрицание. Тогда аксиома формулируется следующим образом:
“Сократ смертен” идентично “Сократ смертен”,что рассматривается нами как истинное выражение.
Первая теорема Ьа □ Ьа приобретает следующую форму: “Сократ бессмертен" идентично “Сократ бессмертен11, что истинно. (Отметим, что на самом деле здесь не имеет значения то, был ли Сократ' смертен или нет, так как оба предыдущих выражения утверждают только, что ложь идентична лжи, а истина — истине.)
Рис. 3.2. Дерево ветвлений для MU.
Но для формулы bba □ а, которая является не-теоремой в (УР), соответствующее выражение формулируется следующим образом: 11 отрицание того, что Сократ бессмертен, идентично тому, что Сократ смертен". Это выражение также истинно в противоположность тому, что имелось в первой интерпретации. В этой интерпретации третий класс (NT, Р) (рис. 3.1) уже не пуст и рассмотренное выш^ последнее выражение никогда не будет интерпретацией какой-либо теоремы из (/Р).
Пример 2. Формальная система (DH)
Формальная система (ОН) (рис. 3.2) имеет следующие правила вывода:
ml f mlU,
Mm -> Mmm,
〃/f U,
UUf .
С учетом поставленной выше задачи вопрос заключается в том, является ли формула MU теоремой в системе (О"), выводима ли она из аксиомы MI. Проведем формальное исследование системы (Q") на метауровне.
Прежде всего очевидно, что в системе (DH) могут порождаться только формулы, начинающиеся с символа М. Действительно, оба правила — продукции 1) и 2)——не изменяют начало слов. С этой точки зрения MU может являться теоремой. Впрочем, для достижения цели необходимо устранить по крайней мере один символ /, уже Имеющийся в аксиоме. Для этого можно использовать только правила 2 и/или 3, так как правила 1 и 4 оставляют неизменным число символов в формуле.
Правило 3 уменьшает общее число символов / на 3 единицы, а правило 2 напротив, каждый раз удваивает это число. Следовательно, правило 2 создает только четные числа символов /, тогда как правило 3 уменьшает их только на 3 единицы. Таким образом, чтобы получить число символов /, равное нулю, нужно применить правило 3 к формуле, содержащей число символов /, кратное трем, причем их должно быть только 3 до последнего применения правила 3. А так как правило 2 порож-
Рис. 3.3. Схема возможных переходов системе DH при использовании правил 2 н 3.
дает только четные числа символов /, то оно не сможет породить такие формулы. Следовательно, MU не является теоремой формальной системы (DH),
Отметим, что для получения этого результата снова был использован результат из другой формальной системы — формальной арифметики (и это не случайно), состоящий в следующем: для того чтобы число 2论 делилось на 3, необходимо, чтобы на 3 делилось и число 力,так как числа 2 и 3 не имеют общих делителей. А так как правила 2 и 3 не могут порождать число символов /, кратное трем, и в аксиоме не содержится число /, кратное трем, то невозможно и получение таких формул.
Приведенные выше рассуждения моз<но более кратко и просто представить с помощью новой формальной системы, моделирующей правила 2 и 3 системы, (DH)\
Аксиома: i= 1 (число символов / в аксиоме (О"));
Правило 2: i = Ci (результат действия правила 2);
Правило 3: if t ——3 (результат действия правила 3).
Необходимо определить, можно ли в этой системе получить i = 0. Нельзя получить формулы с числом символов /, кратным трем. Формулы типа М, MUUt MIIIU... не могут быть теоремами в {DH). На рис. 3.3 показаны возможные переходы между формулами в системе (DH) при использовании правил 2 и 3.
Полученную формальную систему над i можно упростить с помощью схемы, показанной на рис. 3.2, где возможными возвратными шагами являются только шаги с уменьшением на 3 единицы за шаг имеющегося числа единиц 1. Действия по модулю 3 отражают этот существенный факт. При / = i по мо-
дулю 3 (второе изменение первоначального представления), так как правило 3 оставляет / неизменным и так как 2i подмодулю 3 равно (2i — t) по модулю 3 и равно —/, то получаем* новую формальную систему над j:
Аксиома: j = 1;'
Правило 3: / == —
Необходимо определить, можно ли в этой формальной системе получить / = 0.
Очевидно, что получение MU в системе (DH) не может быть осуществлено, поскольку / не могут попеременно принимать значения +1 и —-1.
3・4・ Исчисление высказываний
Эта формальная система, которую называют также логикой высказываний или пропозициональной логикой, определяется следующим образом.
Алфавит:
Пропозициональные буквы р, q, г, §,力...;
Логические операторы ~], п (читаются соответственно “не” и (<влечет, следует");
Скобки (,);
Построение формул (или пропозициональных форм):
Любая пропозициональная буква суть формула.
Если /и есть формула, то и (/и) также является формулой.;
Если m есть формула, то и Пт также является формулой.
Если "а и m2 являются формулами, то и выражение Ш\ п /и? также является формулой.
Аксиомы.
(Al)п (/и2 n g).
(А2) (/ni n (加2 n 加3)) n ((他 1 n ^2)n (m1 n ^3))■•
(A3) (~| zn2 =э П mj) n (mi zd 出・
Здесь g,加2,加3 являются пропозициональными формами или формулами.
Одно правило вывода (правило модус поненс, или правило отделения):
Если Ш\ и (加1 п 加2)суть теоремы, то m2 есть следствие mi (т. е.他2 выводимо из т\).
Формально это правило записывается следующим образом: и n m2) f m2.
Начиная с момента создания этой формальной системы, использовалась ее интерпретация, моделирующая рассуждения
обычной логики, где буквы рассматриваются в качестве выражений. Так, в частности, в этом смысле оператор "~| является отрицанием, а оператор п ——логической импликацией. Надо отметить, что в исчислении высказываний ни аксиомы, ни единственное правило вывода не используют специальных пропозициональных букв. Поэтому последние являются полностью взаимозаменяемыми, так что если, например,
(р п Г g) n (г n s), Тб 宜-(f п「s) n (g п г).
В исчислении высказываний разрешено вводить любые новые пропозициональные буквы, называемые свободными переменными. В этой системе не имеется констант. В ней могут использоваться другие символы, кроме заданных выше, например логическое И, обозначаемое символом А. Такие символы могут быть определены в рамках данной формальной системы: ш\ А т^ по определению эквивалентно формуле И (mi =)m2). Логическое ИЛИ, обозначаемое символом ▽^определяется аналогично: Ш\ V т2 эквивалентно формуле П (~lmi А ~1/п2). Логическая тождественность или эквивалентность, обозначаемая символом =, определяется следующим образом: mi 三 m2 по определению эквивалентно формуле (/и】п 加2)/\ (^2 п 俏1).
Рассматривая эти определения с общей точки зрения, можно заключить, что они обогащают первоначально введенную формальную систему, которая отражает обычные законы дедуктивного мышления. В частности, можно отметить, что три закона логики, сформулированные Аристотелем, в рассматриваемой формальной системе являются строго доказуемыми.
К этим законам относятся следующие: '— закон тождества, или пр);
—закон исключения третье!^, или (р V ~1р);
—закон противоречия, или —I (р А П р).
Последний закон гласит, что никакая теорема не может одновременно являться и теоремой, и не-теоремой,
В качестве примера доказательства в исчислении высказываний приведем доказательство приведенного выше закона тождества: “Для всякого р выполняется р п р”. Формула
(р П ((р => р) П р))(Т1)
является аксиомой и, следовательно, теоремой (Т1). Она соответствует аксиоме (Л1), где формула m2 представлена цепочкой символов (р п р), а формула mi ——цепочкой из одного символа р. Аксиома (Л2) позволяет представить в качестве теоремы следующую формулу:
((р n ((р П р) П р)) п (伪=> ("П р)) п(рп "))),(Т2)
где (р п р) соответствует т^,^ р — mi и 加2・
Теперь первая формула построена: теорема (74) суть пер-1 вая часть, заключенная в скобки в (Т2). Правило модус поненс утверждает, что
l-((pn(pnp))n(pnp)).(ТЗ);
Итак, сама формула (р ^(р о р)) в соответствии с аксио-т мой (Л 1) при подстановке р вместо т\ « т2 представляет собой теорему. Правило модус поненс,; примененное еще раз, приводит к теореме(Т4)
Н (р^> р).■ .•(Т4)
Эта формула уже точно выражает закон тождества.
Другие основные теоремы доказываются аналогично в несколько этапов:.:
Р^ППр;
「(р V q)三(】р А 1 9);
(png)W]pVq).
Теорема (png) 三 (Пр V q) утверждает, что доказательство формулы (р п у) эквивалентно доказательству формулы (~lp V q). Это принцип рассуждения от противного (см. принцип резолюции в разд. 3.10).
Для исчисления высказываний могут быть получены некоторые метатеоремы так же просто, как и для формальных систем (JP) и (DH). Таким образом,
pf ~!2*;
〈р и q、— р N q;
(pnq) и(9 口 г) f (р n г).
Отметим, что в этих последних выражениях и«" относится к элементам металингвистики и не является формулой исчисления высказываний. Это то же самое “н”,которое проявлялось в определении правила модус поненс. Символ “〃”, в частности, не есть то же самое, что символ А в исчислении высказываний, так (р п q) и 匂 п г) означает на самом деле, что имеются две теоремы (png) и (gnr).
Такие теоремы полезны и даже необходимы для упрощения доказательств. В частности, они позволяют создавать новые правила вывода. В качестве примера доказательства метатеоремы рассмотрим теорему (р n (g п г))二)(g n (р п г)), которая является тривиальной в исчислении высказываний для пропозициональных букв р, q и 匚 Ниже доказан аналогичный, но более сильный результат, который значим для некоторых
формул Р, Q н R в исчислении высказываний. На самом деле будет доказано новое правило вывода
(Pn(QnR))-> (Qn(PnR)).
Предположим, что (Р n (QnR)) является теоремой, которая уже доказана в исчислении высказываний. Поставим ей в соответствие левую часть аксиомы (Д2), подставляя Р вместо /пь Q вместо m2, R вместо т3. Тогда по правилу модус по- ненс получим
(Р A Q) n (Р n R).
Обозначив формулу g в аксиоме (41) как У, получим теорему (У =)(т зэ У)), где т — какая-то формула. Так как У является теоремой, еще одно применение правила модус поненс позволяет вывести (т п У) либо
(т п ((尸 n Q) n (Р n R))).
Теперь, подставив в аксиоме (/2) .т вместо 加卜(Р n Q) вместо m2 и (Р n R) вместо /Из и применив в третий раз правило модус поненс, находим (m n (Р n Q))二)(/и n (A n R)).
Заменим формулу m на формулу Q и получим в левой части этого выражения снова аксиому (Л1). Применив в последний раз правило модус поненс, получаем
(Qn(PnR)),
что доказывает новое правило вывода или метатеорему в исчислении высказываний, т. е. дает новый способ построения теорем типа
(Pn(QnR))f (Qn(PnR)),
где Р, Q и R — формулы исчисления высказываний.
Важные замечания об обычных способах записи формул.
Из-за недостатков, присущих нашему обычному языку, общепринятой является запись теорем в краткой форме:方今 С (гипотеза имплицирует заключение) вместо того, чтобы использовать корректную форму записи (// и " п С) С.
Символ uдвойная стрелка” (=>) обычно используется для- обозначения некой конкатенации логического оператора п исчисления высказываний и оператора 今,принадлежащего метауровню описания этой формальной системы, который уже включает правило модус поненс.
Много исследований, связанных с исчислением высказываний, было проведено начиная со времен Аристотеля. В 1910 г. Уайтхед и Рассел дали, наконец, строгое формальное представление исчисления высказываний, а также доказали значитель-
ное число теорем, связанных с ним. Интересно отметить, что в их работах исчисление высказываний строилось не на трех, а на четырех аксиомах. Позже Ж. Лукасевич показал, что одна из аксиом является лишней, так как может быть выведена из трех остальных. Выше была описана именно эта форма задания исчисления высказываний с уменьшенным числом аксиом. При экономном подходе исчисление высказываний может быть построено таким образом, чтобы в нем использовался один оператор вместо двух, как определено выше. Таким оператором является *(штрих Шеффера" (или дизъюнкция отрицаний), который обозначается вертикальной чертой и определяется следующим образом:
pIlCp)V(D
Символ I интерпретируется как несовместность высказываний. Ж. Нико, основываясь на использовании этого единственного оператора — связки, показал в 1917 г., что исчисление высказываний может быть построено на единственной аксиоме:
(p\(q\r))Us\(s\S))\({t\q)\((p\t)\
,Показано, что формальная система, использующая эту единственную аксиому и единственный оператор, порождает те же теоремы, что и первоначальное исчисление высказываний.
Интерпретация исчисления высказываний
Вполне строго и в достаточно общем виде интерпретация исчисления высказываний может быть дана следующим образом. Пусть В множество, состоящее из двух элементов 0 и 1, т. е. В — {0, 1}, где 0 и 1 представляют собой значения “истанно” н u ложно";,
с — дополнение Множества В в В, определяемое выражением с(х) = 1 — х;
V (как имеющее значение истинно) — В * В в 民 при условии что V(х, у) = 1 (х = 0 и у = I).
Пусть теперь 屮 означает применение множества пропозициональных формул в В, обладающее двумя следующими свойствами:
(р(Пр) = с((р (р)),
Ф(Р => <7)= « (ф ("),«(“)・
Из второго равенства следует, что здесь возможно противоречие с интуицией: если ф(р) имеет значение 1 и ф(^) имеет значение 0, то ф(р =э ^) = и(1, 0) равно нулю. Иначе говоря,
力導 Ж.-Л. Лорьер•'..
выражение ложь => истина является истинным, т. е. из ложной посылки следует истина.
Формула т исчисления высказываний называется тождественно-истинной или тавтологией, если и только если при любых значениях составляющих ее элементов выполняется (р(т) = 0.
Легко проверить, что три аксиомы, -входящие в определение логики высказываний, суть тавтологии. Рассмотрим это на примере аксиомы (Л 1):
Ф (/и】n (т2 о mJ) = и (屮(mi), <р (/Hj n т2))=
=" 3 (mJ, 0 (ф (m2),中(叫))).
Следовательно, при /п = (g 二>(团2nm2)):屮(叫=0, если (p(mi) = 1 или если у(q)(m2),(p(mj)) = 0. Если 屮(/и» = 1, то Ф(/п) равно 0. Если теперь 屮(/и】)=0, то (по определению и) 口 (屮(团2), 0) не может равняться 1. Таким образом, для любой интерпретации ф аксиома (41) имеет значение 0 (истина) и, следовательно, является тавтологией.
Более того, если (mJ и (俏】n 俏?) суть тавтологии, то поскольку ф(/П1 ^)т2) = у(ф(^1), <р(/П2)) = у(0,中("i2))=0 по предположению и(р(т2) не может иметь значение 1, то т2 также суть тавтология. Это свидетельствует о связи правила модуса поненса со всеми интерпретациями. Продолжая эти рассуждения для более сложных формул, приходим к метатеореме 1:
Всякая теорема исчисления высказываний является тавтологией..
Определенный выше класс интерпретации делает исчисление высказываний изоморфным классической алгебре Буля с ее двумя операторами V и А и понятием дополнения, что позволяет установить весьма важную метатеорему 2:
Всякая тавтология суть теорема исчисления высказываний,
Эти метатеоремы в качестве непосредственного следствия имеют вывод о разрешимости исчисления высказываний.
Разрешимость исчисления высказываний'
Пост доказал в 1921 г. следующую теорему:
Формула F доказуема в исчислении высказываний, если р только если она является тождественно-истинной, т. е. истинной при всех интерпретациях исчисления высказываний. ;
Таким образом, исчисление высказываний характеризуется:
непротиворечивостью, т. е. ^ и "If не могут быть одновременно выводимы;
полнотой, т. е. теоремы точно соответствуют тождественно-истинным формулам;
разрешимостью, т. е. существует процедура решения.
Действительно, теоремы исчисления высказываний являются тавтологиями, т. е. высказывания принимают значения истинности, равные ИСТИНЕ, всякий раз, когда значения истинности ИСТИНА (0) или ЛОЖЬ (1) принимают все пропозициональные переменные, входящие в них.
Таблицы истинности элементарных операторов определяются в соответствии с интуитивной интерпретацией. Ниже приведены таблицы истинности для операторов ~i и п.
1п
р10Гр01р10Гр011100g1010pnq00101100g1010pnq0010
р
1
0
Гр
0
1
р
1
0
Гр
0
1
1
1
0
0
g
1
0
1
0
pnq
0
0
1
0
1
1
0
0
g
1
0
1
0
pnq
0
0
1
0
В определенной таким образом интерпретации исчисления высказываний выражение png имеет значение “лсжь” только тогда, когда р истинно, a q ложно. Это выражение (р ng) эквивалентно выражению ~^р V q. Обычная интерпретация символа п как импликации достаточно неудачна, поскольку выражения р о ^ и Пр V Q являются истинными, лишь если р ложно (как говорится^ из ложного можно вывести все, что угодно), а в обычной речи с этим связывается вывод о чем-то плохом, из-за чего возникают недоразумения.
Хорошо известный метод таблиц истинности был строго обоснован в 1932 г. Постом: для того чтобы формула исчисления высказываний была теоремой, необходимо и достаточно, чтобы при интерпретации она принимала значение 0 (истина), каковы бы ни были значения пропозициональных переменных, входящих в нее.
В табл. 3.1 приведен пример доказательства на основе использования таблиц истинности.
Следует отметить, что в общем случае такое соответствие гйежду теоремами и истинностными интерпретациями вовсе не является обязательным и рассмотренная выше формальная система (JP) является примером этого.
Фундаментальный вывод, состоящий в том, что исчисление высказываний является разрешимой формальной системой^ представляет собой теорему уже уровня метасистемы, которую
Таблица 3.1
р
g
г g п г
png
рпг
(g :
п г) п (р п г)
(png)二
^((qr)^(p^> г))
0
0
0
0
0
0
1
0
0
]
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
следовало бы построить. Чтобы строго установить этот результат, необходимо использовать рекуррентные рассуждения в строго формализованной форме на все более и более высоких уровнях. Построение этой последовательной мета-мета-... и т. д.- формальной системы мы здесь не приводим.
Этот результат Поста представляет особый интерес, так как он выявляет адекватность исчисления высказываний классическим логическим рассуждениям, а также понятиям обычного языка. Он утверждает, что мышление и его выражение с помощью языка формализуемы (по крайней мере частично) и представимы в краткой форме с помощью чисто символьных схем и представлений. Именно в этом ожидались наибольшие трудности в программе формализации математики, предложенной Гильбертом (1885 г.). И хотя данный этап был “пройден” с достаточной строгостью и элегантностью, в дальнейшем в теории чисел возникли серьезные трудности.
Исчисление предикатов первого порядка
Уже упоминавшийся выше силлогизм “Люди смертны..." не может быть представлен с помощью исчисления высказываний. Действительно, для его формализации необходимо ввести квантифицированную переменную “человек”, причем множественность, отражающаяся в первой посылке силлогизма, указывает на ее универсальность: “Всякий х, который обладает свойством “человек”,смертен".
Чтобы выразить этот силлогизм в формализованном виде, необходимо использовать более мощную формальную систему, чем исчисление высказываний. В данном случае высказывания р, д, г, ... уже не могут, как выше, рассматриваться в качестве неких однородных целостностей, и поэтому становится необходимым рассмотрение каких-то свободных параметров, связан-
ных с ними, называемых индивидными, или предметными переменными. Первая посылка нашего примера в формализованном виде записывается так:
(Vx) (человек (х) о смертен (%)),
где х является квантифицированной или связанной переменной, а выражения ичеловек,? и “смертен” являются предикатами, где сами предикаты первого порядка не квантифицированы. Формальная система, соответствующая изложенным выше требованиям, получила название ——исчисление предикатов первого по- рядка (или исчисление предикатов).
Определение исчисления предикатов первого порядка.
Алфавит:
константы: a, b, & d,…;
индивидные переменные:力 и, и,如,%, у, z,...;
предикаты: Я, 8, С, D,
логические операторы: П, п;
квантор всеобщности: V (читается “каково бы ни
• было"...).-
Построение формул:
формулы исчисления предикатов образуются аналогично формулам исчисления высказываний и, кроме того,
каждому предикату приписывается вес 々:выражение' Л (%!,尤2, 尤左) является формулой, если и только если вес А равен 々;
выражение ((VxJ Л (хь х2, ..., %財))представляет собой формулу, в которой Xi есть связанная переменная, a Xi свободные переменные при i 力 2.
Аксиомы:
• имеются все три аксиомы (Л1), (42), (43) исчисления высказываний; а также аксиомы:
• (А4): ((W) В «)) п В (%) («спецификация»)
? (А5): ((Vr) (mx п 农)n (g n (V/)农),
' где 俏1 и m2 суть формулы, a f не является свободной переменной в 物.
Правила словообразования:
(俏I)иm》f 恤(модус понен_с)
(V2)/ni (обобщение),
■где / ——свободная переменная в 加入
Аксиома (44), которую называют аксиомой спецификации, очень важна. Она утверждает, что переменная f не содержится свободно в переменной и. Переменная и в этом случае становится свободной переменной. Так же как и в исчислении высказываний, в исчислении предикатов вводятся дополнительные
символы V, Д и 三;Отметим, что известный квантор существования (читается uсуществует, найдется”) выражается через квантор всеобщности и другие операторы так:
(Зх) В (х) И ((Vx) ~| В (х)).
Всякая формальная система, которая имеет в качестве своих аксиом приведенные выше пять аксиом исчисления предикатов, называется формальной системой первого порядка.
Многочисленные обычные теории такого рода являются по существу вариантами исчисления предикатов первого порядка, дополненного одной или несколькими аксиомами и/или правилами словообразования.
Термин "система или теория первого порядка" означает, что в их формулах действие квантора может распространяться только на предикатные переменные и внутренние символы в формулах. К системам второго порядка относятся такие формальные системы, в которых действие кванторов может распро- страняться и на сами предикаты. В формальных системах более высокого порядка действие кванторов может распространяться на предикаты от предикатов и т. д.
Пример доказательства в исчислении предикатов первого порядка.
Каков бы ни был предикат D с весом, равным двум, выполняется следующее:
(Vy) (Vx) D (% у) n (V%) (Vy) Q (爲 у).
В самом деле, согласно аксиоме спецификации (44), положив t — у, получим, используя левую часть теоремы, что необходимо доказать следующее:
(Vz/) (Vx) D (х, у) n (Vx)。(居 у).
Теперь, положив уже t — х, получим
(Vx)£)(x, у) n Q(x, у).
Используя последнее правило словообразования в определении исчисления предикатов, получаем
0(%, у) n Zy)D5 у)
(Vy) О(х, у) n (V%) (Vy) D (х, у).
Так как метатеорему (4 п В) и (8 п С) -> (4 n С) можно доказать как в исчислении высказываний, так и в исчислении предикатов, то, полагая В = D(x, у) t получим
(Vz/) (Vx) Dg у) n (V%) (Vy) Q (招 у).
Что и требовалось доказать.
Аналогично могут быть доказаны и приведенные ниже, следующие важные теоремы исчисления предикатов:
(3//) (Vx) D (х, у) =)(Vx) (3!/) D (х, у);
П ((Vx) (V//) О (х, у))三(Зх)(Вг/)(П D{x, у));
Л ((Эх) (Зу) D (х,力)м (Vx) (Vg) (Я D(x, g));
(Vx) D (x) n (3x) D (x).
Первая теорема Геделя: о ffполноте'" исчисления предикатов (1930 а)
В исчислении предикатов первого порядка все теоремы являются логически общезначимыми формулами, т, е, являются истинными во всех интерпретациях.
Эта теорема в исчислении предикатов аналогична теореме Поста в исчислении высказываний. Однако в отличие от теоремы Поста теорема Геделя в исчислении предикатов не приводит к эффективной процедуре решения. Более подробно этот вопрос рассмотрен в разд. 6.3.
Формальная арифметика
В этом разделе описывается формальная система, которая была .разработана Пеано и которая является расширением исчисления предикатов. Она известна под названием формальная арифметика, или теория чисел.
В формальной арифметике по сравнению с исчислением предикатов дополнительно вводятся одна константа, четыре оператора и девять аксиом. Этой новой константой является 0 (нуль).
Дополнительные операторы:
о ——операция ^непосредственно следующий" (например, для числа п это число (п + 1)); о(0) = 1;
Н“плюс", оператор сложения;
带—иумножить на", оператор умножения;
=—“равно”,оператор равенства, играющий особую роль среди новых аксиом.
Оператор а имеет вес, равный единице, а три остальных оператора имеют вес, равный двум.
Ниже даны девять новых аксиом, в которых х, у, г обозначают любую последовательность символов формальной арифметики, не содержащую знака равенства:
(Аб): (Vx)x + 0 = х
(А7):(Vx)x*0 = 0 ,
(А8): (Vx) ~| (с (х)) = 0
(А9): (Vx) (Vy) х + о (у) = <т (х + у)
(АЮ): (Vx)(Уу)х*о(у) = х*у + х
(АИ): (V J(Vg)(o (х) = о (у)) п (х = у)
(А12): (Vx) (Vz/) (x = y)zD (о (х) = а (у))
(А13): (Vx) (Vz/) (Vz) (x = y)^ ((x = z) => (y = z))
(A14): (Л (0) w (Vu) (Л (u) n 4 3 («)))) n (V«) Л (〃) для всякой формулы Л (и) данной формальной системы.
В последней аксиоме формализуется рекуррентное рассуж^ дение, называемое принципом формальной или математической индукции. Многие классические результаты не вошли в явном виде в эту систему аксиом и должны быть специально доказав ны, как, например, свойство (尤=у) п(У = %), или в обычной форме записи: (х + У) ==(У + 尤)•
Формальная арифметика играет исключительно важную роль в математической логике.
Выше говорилось, что метатеоремы, используемые в формальных системах (JP) и (DH) (разд. 3.2.3), могут быть получены в рамках формальной арифметики. Теперь установим более четко взаимоотношения между этими двумя простыми формаль- ннмн一системами и формальной арифметикой.
Напомним, что система (JP) определяется одной аксиомой (А): а 口 а, и одним правилом вывода (П):加1 口 m2fbg 口 □分/П2, где rri\ и т2 представляют собой какие-либо цепочки символов а и Ь.
Символы а, Ь, □ этой системы являются ничем иным, как кодами, в качестве которых могут быть использованы любые другие символы и, в частности, цифровые символы 1, 2, 3. В этом случае аксиома (Л) выглядит, как 131, а правило (П) выразится следующим образом: если формула, включающая т{ с последующей цифрой 2 с последующей т2, является теоремой, то и формула, состоящая из 2, за которой следует т^ затем 3, затем 2, затем т?, также является теоремой.
Операция "следует за” (“с последующим'1, “быть сопровожу даемнм”) имеет соответствие в формальной арифметике. В обычной арифметике, чтобы построить число х, за которым следует число у、используя десятичную форму представления, достаточно умножить х на соответствующую степень числа 10 и прибавить у. Более строго это записывается так: если у состоит из п цифр, т. е, представляет собой число
п— 1
Е io'*с"),
где число с(п— 1) не есть нуль, то в этом случае ичисло х с последующим у” есть не что иное, как число 10л*х + г/. Чтобы получить результат от применения правила (П) к этой форме, начиная с правого его конца
т2 = £ 10’ * d (i), 1=0
строят число 10rt2 * 2 и добавляют т2. Таким образом, получается число, содержащее (п2+ 0 цифр. Наконец, чтобы построить формулу 3, сопровождаемую 2т2, добавляют 3 * iott2+l к предыдущему числу.
Чтобы получить формулу 2, сопровождаемую mb начиная
с /П1= £ 10%е(", добавляют 10办 *2 к 加卜
,Наконец, чтобы получить《2俏132加2》,добавляют(2* 10"' + mJ, умноженное на 10”"2, к числу 3 * 10"工+1 + 2 * 10"? + 小2・ В общем случае правило (〃) -может быть выражено 8 форме арифмети* зированного дополнения (ПА):
Если имеется теорема
Ш1* ЮП2+1 + 3* югег + т2>
где числа mi и т2 содержат соответственно nj и 恤 цифр, пусть это будут
Д1 ~ 1Пз—1
= S 10‘*e(i) и /п2 = 2 10‘*d(。, i=li=l 、
то является теоремой и выражение
(2* Ю^Ч-^)* ЮПг+2 + 3* 10na+I4-2* 10rta + ^2.
Таким образом, начиная с теоремы 2213221 при щ = П2 = 3, с помощью правила (ПА) порождают теорему
(2* 103+ 221)* 105 + 3* 104 + 2 * 103 + 221,
или
222 100 000 + 30 000 + 2000 + 221,
или же 222132221.
Таким образом, исследование системы (JP) полностью сводится к исследованию подсистемы формальной арифметики.
Этот же метод может быть использован и для системы (DH). Закодировав символы М /, U соответственно через 2, 1, 0, по-
лучаем аксиому в виде: 2 1. Правило (ПЗ): III *-^и, например, тогда записывается так:
€Если ("" * 10"-3+ H I * 10"‘ + 他2) является теоремой (m2 содержит /г2 цифр), то будет теоремой и выражение /и】* IO®” + т2».
Таким образом, теперь система (DH) также “погружена” в формальную арифметику.
При таком подходе доказательство" теорем и метатеорем в формальных системах (JP) или (DH) сводится, следовательно, к доказательствам в формальной арифметике. Разумеется, на этой стадии имеется возможность для каждой арифметизированной формальной системы дать интерпретацию в самой формальной арифметике. Таким образом, в арифметизированной системе (JP) 1 интерпретируется как 1, 2 интерпретируется как "последующее число"; 3 интерпретируется как =.
В этом случае, исходя из теоремы 222132221, получаем 4tиcтиннoe^^ выражение и в обычном смысле: 4 = 4. Таким образом, кольцо замкнулось. Этот тип рассуждений приводит ко второй теореме Геделя.
Вторая теорема Геделя (1931 г.): неполнота арифметики
Арифметизацию можно выполнить для любой формальной системы. В частности, можно закодировать с ее помощью и такие формальные системы, как исчисление высказываний и исчисление предикатов первого порядка, а также и саму формальную арифметику! Доказательство Геделя навеяно этим автоморфизмом, который установил в формальной арифметике своего рода вариант “парадокса'' лжеца. Этот парадокс происхождением обязан Эвбулиду (диалектику), принадлежавшему к Мегарской школе (4 век), основанной Евклидом Сократиком. Парадокс формулируется следующим образом:
иЭпименид говорит: uКритяне — лжецы",
Однако Эпименид сам критянин..
Такого рода высказывание использовалось критиками аристотелевой логики. Оно не имеет формы силлогизма и широко обсуждалось в античной Греции стоиками и их комментаторами. На самом деле эта фраза вовсе не является парадоксом, поскольку если принять гипотезу, что Эпименид — лжец, то ведь и то, что он говорит, является ложью. Если к рассматриваемому высказыванию применить отрицание, то получим в результате высказывание: 41 Существует критянин, который не лжет". Это последнее высказывание уже ничему не противоречит. (Классической ошибкой является плохая формулировка отрицания и затем выведение из нее “парадокса".)
В последующем в течение длительного периода времени в логике не было получено новых фундаментальных результатов, пока Лейбниц и затем уже современные логики, которые вновь исследовали результаты древних авторов, не систематизировали их и не ввели в логику математические методы. В результате этого появилась вторая теорема Геделя: “В формальной арифметике существуют формулы т, такие, что ни т, ни "1m не являются доказуемыми».
Доказательство этой теоремы в данной книге следует в основном доказательству Ж. Ладриера, приведенному в книге «Внутренние ограничения формализмов» (Nauwelaerts et Gauthier Villars, 1957 г.), и подходу Д. Хофштедтера. Однако вначале приведем результат, который недавно был получен на основе идей К. Геделя. Речь идет о методе идиагонали,* (или диагональном рассуждении) Кантора, который в 1873 г. показал, что множество действительных чисел не может быть перенумеровано с помощью целых чисел. В процессе доказательства Кантор ограничился рассмотрением действительных чисел, заключенных в промежутке между нулем и единицей. Его идея состояла в том, чтобы построить бесконечный список L из таких чисел в виде десятичных дробей и в предположении, что этот список может быть пронумерован. Список L выглядит следующим образом:
О,al61cldl
О,a262c2d2…
0,anbncndn.
Сформируем теперь число 6(L) такого же типа, которое однако наверняка не является частью данного списка. Для этого достаточно в качестве значения ^-го разряда этой десятичной дроби принять увеличенное на единицу значение k-ro разряда дроби, находящейся в 力-й смроке списка L. В результате такого построения мы получаем действительное число
О, '(al + 1)(方2 + 1) (сЗ+ 1) . . . (^+ 1)..
которое, однако, по построению и в силу свойств использованных при этом десятичных дробей, отличается от любого числа, входящего в список L. Таким образом, доказательство возможности перечисления с помощью натуральных чисел всех действительных чисел не может существовать. Отметим, что идея доказательства состоит в том, чтобы “заставить" один и тот же номер k одновременно выполнять две роли. Действительно, при
построении нашего диагонального числа номер k использовался одновременно и как индекс (вертикальный) действительного числа в списке А, и как номер позиции (горизонтальный) какой-то цифры в десятичном представлении числа. Из такого использования 'Диагонального" А и родилось доказательство Кантора.
Существует другой парадокс, связанный с методом диагонали Кантора, который в большей степени приблизит нас к подходу Геделя.
Этот парадокс получил название парадокса Ришара (1907). Он в отличие от парадокса Эвбулида связан не с понятием истинности, а с понятием определения. Рассмотрим, как определяются на обычном языке натуральные числа. Каждое такое число может быть однозначно описано с помощью конечного множества символов: букв, цифр, знаков препинания. Одно и то же число может иметь несколько различных определений. Договоримся, что в качестве определения данного числа будет использоваться наиболее короткое (т. е. содержащее наименьшее число символов) из всех его определений.
Теперь рассмотрим подмножество С целых чисел, определенных менее 100 символами. Это подмножество С является конечным, поскольку существует лишь конечное число комбинаций, которые можно составить из конечного множества символов. Однако, поскольку множество всех натуральных чисел является бесконечным, существуют целые числа, которые не принадлежат подмножеству С. Пусть число г является наименьшим среди них. Тогда можно дать следующее определение для натурального числа г: “наименьшее натуральное число, которое не может быть определено, используя менее 100 символов”. Однако именно это определение и сделано в предыдущей фразе с использованием менее 100 символов. В этом и заключаются противоречие и парадокс, связанный с '"зацикливанием" определения.
Первый этап доказательства Геделя состоит в эффективном кодировании числами всех условий, входящих в определение формальной арифметики. Построение "парадоксального" усло・ вия приведет в конце концов к знаменитой второй теореме Геделя: "Система формальной арифметики содержит некоторое выражение е*, такое, что ни е* и ни ~|е* не являются доказуемыми в формальной арифметикеп.
Структура доказательства теоремы Геделя о неполноте арифметики
Идея доказательства заключается в том, чтобы построить такое выражение, которое свидетельствовало бы о своей собст-
венной недоказуемости. Такое построение может быть выполнено в три этапа:
первый этап — установление соответствия между формальной арифметикой и множеством целых чисел (гедели- зации);
второй этап — построение некоторого специального свойства А (х), о котором неизвестно, является ли оно теоремой формальной арифметики или нет;
третий этап ——подстановка в 4(%) вместо % определенного целого числа, связанного с самим Л (х), т. е. замещение этими числами всех х в Л (х).
Первый этап. Геделизация формальной арифметики
Формальная арифметика может быть арифметизирована (т, е. геделизирована) следующим образом: каждой ее теореме ставится в соответствие некоторое число. Однако так как всякое число также является теоремой, то всякая теорема может рассматриваться, с одной стороны, в качестве теоремы формальной арифметики, а с другой ——как теорема над множеством теорем формальной арифметики, т. е. в качестве метатеоремы, соответствующей доказательству некой теоремы.
Таким образом, можно сделать вывод, что система формальной арифметики содержит также и свою собственную метасистему.
Теперь более конкретно и подробно изложим полученные результаты.
Во-первых, мы можем связать с каждым символом и формальной арифметики специальное кодовое обозначение, называемое в данном случае геделевым номером G(и).
Во-вторых, каждой последовательности символов U мы ставим в соответствие тот же геделев номер G(U) с помощью некоторой функции композиции 厶 Пусть G(U) = f(G(Ui))t где (〃。представляют собой последовательности символов, которые образуют U*
В-третьих (и это существенно), каждому доказательству А' последовательности аксиом и правил подстановки (или правил замещения) ставится в соответствие число G(A) = f(G(Uj))t где (S) обозначает последовательность теорем, используемых при доказательстве А.
Таким образом, всякому доказательству А в формальной арифметике соответствует некоторое число — его геделев номер G(A). Всякое рассуждение формальной ариметики преобразуется с вычисления на множестве натуральных чисел.
Итак, вместо того чтобы производить манипуляции с символами, теоремами, доказательствами, можно воспользоваться
вычислениями на множестве целых чисел. Всякое выражение, подобное, например, следующему: “/ ——доказуемо в формальной арифметике", теперь соответствует определенному числу, которое будем обозначать как Dem^t}.
Сформулируем следующее положение.
Формальная метаарифметика содержится в множестве натуральных чисел, а оно само содержится в интерпретации формальной арифметики.
Эта ситуация с формальной арифметикой напоминает ситуацию с естественным языком: ведь нам ничто не мешает использовать его и для того, чтобы формулировать на нем основные его понятия и правила.
Надлежащий выбор функции f позволяет осуществить однозначный переход от А к G(A), т. е. присвоить два разных числа- номера двум различным доказательствам. Например, можно так выбрать геделевы номера, чтобы каждому символу алфавита формальной арифметики соответствовало свое простое число, как показано, например, в табл. 3.2. Каждая формула U (со- Таблица 3.2
и -=o*+i o=)nV AV3^()^:x у
G(〃)2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59
стоящая из q символов (必)с I, изменяющимся от 1 до(/) в свою очередь кодируется последовательностью, состоящей из q первых простых чисел, т. е. числом
G (U) = 2°(%)* 3°("2)* 5°(%)* . . . * р:("°),
где Pq ——7-е простое число.
В свою очередь доказательство, т. е. последовательность из 尸 формул Ui, U2> ..., Ur, будет закодирована аналогичным образом числом
G (А) = 2G(%)* 3G(%) * 5g(%)* …* Р;(%).
И наоборот, благодаря такому способу построения номеров становится возможным, исходя из некоторого числа, с помощью разложения его на простые множители (в силу единственности разложения натуральных чисел в произведения степеней простых чисел) возвратиться за два шага к показателям степени G(и/), т. е. к примитивным символам формальной арифметики. Конечно, это имеет в основном лишь теоретическое значение, так как номера G(A) быстро становятся слишком большими
для того, чтобы ими можно было манипулировать. Однако следует отметить, что существенным является принципиальная возможность этой операции.«
Пример. Пусть задано число Т, соответствующее некоторому доказательству и представляющее собой произведение простых чисел:
?198 102 7125 * 253 * 3I 981 027 125 * 211
Это разложение означает, что доказательство теоремы содержит два этапа: один соответствует числу 1981027125 # 253, а другой——числу 1981027125 * 211. Разлагая снова на простые множители каждое из этих чисел, получим
253 * З5 * 53 * 72 * II3 и 2й * З5 * 53 * 72 * 1 13.
Из таблицы кодирования алфавита формальной арифметики (табл* 3.2) находим, что нашим геделевым номерам для этих двух чисел
3, 5, 3, 2, 3 и Н, 5, 3, 2, 3
будет соответствовать следующее доказательство;
Из формулы х *0 = 0 следует формула 1*0 = 0.
Таким образом, в метаарифметике получено значение исходного числа из формальной арифметики.
Второй этап. Лемма Геделя
Всякому числу Т, связанному с доказательством, соответствует теорема 厶 доказуемая в формальной арифметике. 1Тедели- зированнуюм формальную арифметику называют арифметизированной формальной арифметикой. Поскольку каждая аксиома и каждое правило арифметизированной формальной арифметики соответствуют какой-нибудь арифметической операции, то с помощью систематизированной проверки можно определить, соответствует ли данное число Т доказательству какой-то теоремы /. Числа Т и t образуют в этом случае пару сопряжённых чисел. Выражение “Т и / являются сопряженными), представимо внутри самой арифметизированной формальной арифметики. Это означает, что существует геделев номер D(T. /), который выражает в цифровой форме это утверждение.
Мы подошли к критическому пункту доказательства Геделя. Пусть А является выражением арифметизированной формальной арифметик% которое содержит какую-то свободную переменную. Вместо нее можно сделать подстановку какого-нибудь терма. В частности, можно заменить выражение А самим выражением А, В этом случае номер-выражение А выполняет одновременно две различные роли (см. выше построения
Кантора и. Ришара): оно одновременно является истинным выражением для подстановки и результирующим термом. Эту;специальную подстановку будем обозначать как S*. Так формула S*(A, и) означает, что число и есть геделев номер, получаемый при выполнении подстановки -* к выражению А:
S*(/, /г)у>〃 есть „* в {“
Затем Гедель строит выражение (о котором неизвестно, пред* ставляет ли оно собой теорему или не-теорему), в которое вводит эту подстановку. Выражение имеет следующий вид:
冋 ”1)Л6(Е,嘲.
Третий этап. Завершающая подстановка
В арифметизированной формальной арифметике это выражение представлено в цифровой форме. Пусть Е ——его. геделев номер. Так как выражение е содержит свободную переменную F, то мы имеем право выполнить подстановку -* над е, замещая F числом Е и обозначая /*-замещение Е:
-\(GT)(3t)D(T,t) AS4E, t).
Это второе выражение обозначим через е*, а его геделев номер через 方.Дадим интерпретации выражения е*.
Первая интерпретация. Не существует такой пары (Т, /), для которой одновременно выполнялось бы следующее: с одной стороны, Т ——номер арифметизированного доказательства теоремы 玄 арифметизированной ею самой,, а с другой ——было бы S*(E, f), т. е. “/ есть *-замещение £'. Но так как S* есть такое же преобразование, как и другие, то оно представимо в термах +,桶,/, ... и в их кодовых обозначениях ——геделевых номерах и, следовательно, такой номер существует. Тогда, возможно, номер Т не существует.
Вторая интерпретация. Не существует арифметизированного доказательства Т теоремы % которое было бы *-замещением Е. Итак, если не существует доказательства, то потому, что t само по себе не является теоремой. Отсюда вытекает третья интерпретация.
Третья интерпретация. Выражение, для которого геделев номер есть *-замещение £, не является теоремой арифметизированной формальной арифметики. Но в этом и заключается противоречие, так как по построению именно само е* является *-замещением Е и номер t есть не что иное по построению, как сам номер Е. Отсюда вытекает последняя интерпретация е*.
Четвертая интерпретация, е* не является теоремой арифме-
тизированной формальной арифметики, т. е. выражение е* просто утверждает, что f не есть теорема'*.
Следовательно, возможно одно из двух:
либо е* является теоремой, но тогда формальная арифметика противоречива, так как одновременно е* и Пе* являются доказуемыми;
либо е* является не-теоремой. Тогда нет противоречия, но зато то, что утверждает выражение е*, является истинным, но недоказуемым! Следовательно, в формальной системе существует зона недостижимой истины. После доказательства того, что ~]е* недоказуемо, приходим к следующей формулировке второй теоремы Геделя.
Вторая теорема Геделя (1931 а):
Если формальная арифметика непротиворечива, она является неполной.
Класс f; /те пусто, выражения: неразрешимыКласс f; /те пусто, выражения: неразрешимыКласс 2: пусто "о непро- тиЗоречивостиКлассы Зи 4 сим^вгпричные (обладают c8oUce6om w- ноты)Класс 2: пусто "о непро- тиЗоречивостиКлассы Зи 4 сим^вгпричные (обладают c8oUce6om w- ноты)Рис. 3.4. Вторая теорема Геделя.Рис. 3.4. Вторая теорема Геделя.
Класс f; /те пусто, выражения: неразрешимы
Класс f; /те пусто, выражения: неразрешимы
Класс 2: пусто "о непро- тиЗоречивости
Классы Зи 4 сим^вгпричные (обладают c8oUce6om w- ноты)
Класс 2: пусто "о непро- тиЗоречивости
Классы Зи 4 сим^вгпричные (обладают c8oUce6om w- ноты)
Рис. 3.4. Вторая теорема Геделя.
Рис. 3.4. Вторая теорема Геделя.
Это, в частности, для нашего случая означает, что существует по крайней мере одно выражение е*, такое, что как е*, так и ~|е*, не являются теоремами.
Как и в естественной интерпретации формальной арифметики (в которой символ ~j соответствует отрицанию), строго постулируется “либо е* есть ИСТИНА, либо е* есть ЛОЖЬ (т. е. ~|е* есть ИСТИНА)", т. е. постулируется непротиворечивость. Отсюда следует, что формальная арифметика не является полностью доказуемой, и в формализации существуют пробелы. Этот вывод распространяется на все те формальные системы, которые содержат аксиомы формальной арифметики. Таким образом, понятие истинности не является полностью формализуемым, и непротиворечивость какой-то теории не может быть
доказана в рамках этой теории. На рис. 3.4 эта ситуация отображена в виде схемы.
Замечание. Выше представлена только схема доказательства, которое одновременно является необычным, строгим и фундаментальным. Отметим, что если добавить к исходным аксиомам формальной арифметики аксиому е* или аксиому Те* (как в других случаях, например для получения неевклидовой геометрии), то на самом деле это не сняло бы проблемы. Просто тем же способом было бы найдено выражение е**, которое недоказуемо.
3.6. Теоремы ограничения в формальных системах
Вторая теорема Геделя была первой теоремой ограничения и произвела огромное впечатление одновременно и на математиков, и на философов. Она не была единственной теоремой ограничения. Ниже мы приведем еще две теоремы ограничения (Тарского и Черча), имеющие большое теоретическое и практическое значение.
Теорема Тарского (1935 г.)
Существуют формальные системы, для которых всякая интерпретация приводит к выражениям одновременно истинным и недоказуемым.
Эта теорема является парной (относительно интерпретаций) ко второй теореме Геделя. В сжатом виде она формулируется так: _ито, что истинно, всегда недоказуемо" или же ^понятие истинности неформализуемо". Теорема говорит, что в каждой интерпретации существует по крайней мере одна формула, всегда интерпретируемая как ИСТИНА, которая однако не является теоремой данной формальной системы.
Теоремы Геделя и Тарского вводят в рассмотрение интерпретации. Для теоремы Тарского это очевидно, но и результат Геделя базируется на использовании символа отрицания П в его обычном значении и постулата непротиворечивости (т. е. невозможности одновременного выполнения в системе / и П/, в противном случае легко доказывается, что всякая формула системы является теоремой; однако подобные формальные системы почти не представляют интереса).
Теорема Черча (1936 г.)
Исчисление предикатов первого порядка неразрешимо.
Следовательно, существуют неразрешимые формальные системы. Иначе говоря, для некоторых формальных систем невоз-
можно построить системы процедур, позволяющих отличать теоремы от не-теорем. Такие системы называются неразрешимыми, или говорят, что они не являются, рекурсивно перечислимыми. Конечно, хотелось бы обойтись без таких формальных систем, но это невозможно, тем более, что уже исчисление предикатов первого порядка, как показал Черч, является неразрешимым. Тем более неразрешимой является более мощная формальная система, представленная в uОснованиях математики" Рассела и Уайтхеда. Тарский показал также, что теории групп, колец и тел являются неразрешимыми, а проективная геометрия в пространстве вещественных чисел и теория вещественных замкнутых тел являются разрешимыми. Кроме того, доказано, что исчисление предикатов первого порядка является полуразрешимым, т. е. для выражений ^ которые эффективно являются теоремами, имеется конечная процедура, которая их доказывает. Все эти доказательства основываются на определении процедур решения. Черч идентифицировал понятие эффективной или вычислимой процедуры, т. е. алгоритма, или функциональной рекурсивной процедуры (“тезис” Черча).
Независимо от других в 1937 г. Тьюринг формализовал идею вычислительной машины и свел проблему разрешимости к проблеме останова идеальной вычислительной машины (см. разд. 5.11). Оба подхода оказались в результате идентичными, и было показано, что в общем случае не существует ни рекурсивной функции, ни машины Тьюринга, с помощью которых можно было бы определить, является ли какая-то заданная формула теоремой (или не является) в данной формальной системе (или в данном "язнке”). В частности, неразрешима проблема останова программы, выполняемой на машине Тьюринга.
Семейство теорем ограничения подобно принципу неопределенности Гейзенберга в физике, установленному несколькими годами ранее (1927 г.) в квантовой механике. Согласно этому принципу, некоторые физические величины связаны между собой таким образом, что хотя не существует ограничений на точность измерения каждой из них, тем не менее точность их совместного измерения - ограничивается значением постоянной Планка. Произведение погрешностей измерения этих двух величин не может быть меньше этой постоянной.
Некоторые философы и специалисты по теории информации, как, например, Ж. Лука, Е. Нагель и Д. Ньюман, пытались применить теоремы ограничения к проблемам обработки символьной информации на ЭВМ. Основываясь на этих теоремах, они сделали, на мой взгляд, несколько преждевременный вывод, о превосходстве интеллекта человека над машиной. Подобные
аргументы до сих пор используются, чтобы дискредитировать все исследования по искусственному интеллекту. На самом деле результаты, полученные Геделем, Тарским и Черчем, говорят только о том, что некоторые задачи неразрешимы средствами современной математики. Эти ограничения относятся к людям в той же степени, что и к ЭВМ, так же касаются математиков, как и машинных программ. И тем не менее это не привело начиная с 1930 г. когда эти теоремы были доказаны, к свертыванию математических исследований (наоборот, к их расширению). Некоторые задачи решить невозможно, но зато другие задачи заслуживают того, чтобы их решили. Кроме того, знание задач, которые являются трудноразрешимыми, открывает новые пути для поисков. Гипотезы Гольдбаха, великая итеоре- ма” Ферма по-прежнему еще не классифицированы (не определено, являются ли они доказуемыми или неразрешимыми). Вторая задача Гильберта, сформулированная наряду с 22 другими в 1905 г. (найти метод решения для произвольного уравнения в целых числах) была снята с повестки дня в 1970 г. Матиасевич доказал ее неразрешимость.
Знаменитая проблема четырех цветов (раскрасить географическую карту, используя только четыре различных цвета, причем так, чтобы любые две соседние страны имели различные цвета) (гл. 5) была разрешена с помощью ЭВМ в 1976 г. Аппелем и Хакеном спустя более 120 лет после того, как она была поставлена Ф. Гутри.
,Если задача вам кажется очень трудной, удостоверьтесь сначала, что она не относится к одному из известных случаев неразрешимости, и если это не так, то не отказывайтесь от нее слишком быстро!.
В заключение приведем формулировки теорем ограничения: Возможны формальные системы, в которых
существуют 'формулы т, такие, что ни т, ни ~]т не являются доказуемыми (теорема Геделя);
во всякой их интерпретации найдутся выражения, истинные, но недоказуемые (теорема Тарского);
не существует алгоритма, чтобы отличать теоремы от не-тео- рем (теорема Черча).
3・7・ Алгоритм унификации
Описываемый ниже алгоритм предназначен для ответа на вопрос: “Как применить теорему к выражению?" Этот алгоритм не зависит от формальной системы, в которой применяется. Для заданных теоремы и выражения алгоритм выполняет в строгой последовательности, двойной проход в предварительно опреде-
ленном порядке. Его сложность линейно зависит от общего числа замещаемых переменных в теореме и выражении. В неявном виде этот алгоритм уже использовался в предыдущих разделах при- некоторых доказательствах в различных формальных системах.
Данный алгоритм, разработанный в 1966 г. Ж. Питра и независимо от него Дж. Робинсоном, играет фундаментальную роль в искусственном интеллекте.
Задача'
Для данной теоремы Т в форме правила переписывания или продукции с антецедентом вида
Н >■ С(Т)
(гипотеза) влечет (заключение)
и некоторого выражения Е необходимо проверить, можно ли сделать Н и Е полностью идентичными, т. е. унифицировать Н и £ путем последовательных подстановок свободных переменных в Я и £. Подстановки, выполненные в С, дают новую форму выражения 七 в результате применения теоремы Т (с использованием правила модус поненс).
Примеры унификации
Пусть алгебраическое тождество
(a+ »2 =区 + 20方 +歩(71)
рассматривается в качестве удобного сокращенного представления правила переписывания: “Если какое-то выражение является квадратом суммы двух термов, его - можно переписать в виде суммы квадрата. первого терма, удвоенного произведения обоих термов и квадрата второго терма".
Пусть, кроме того, имеется выражение
炉十匂+"亏2.(El)
В данном случае легко увидеть совпадение выражений в скобках в (/1) и (Е1): подстановка у вместо а н “3 вместо b позволяет унифицировать (у+«3) и левый член тождества
Аналогично известное правило переписывания
sin2 辽 + cos2 и 1(/2)
применяется к выражению
sin23x + cos23x,(E2)
чтобы показать, что последнее также дает единицу (/2). Но унификация с тем же правилом (/2) не получается, если взять выражение
sin2 Зх + cos2 х.(ЕЗ)
Унификация также невозможна при использовании выражения
cos2 Зх + sin2 3尤,(Е4)
так как в'этом случае требуется коммутативность относительно знака +. Это затруднение можно устранить с помощью использования правила
а + b I~-> Ь”+ а,
предварительное применение которого к выражению (Е4) позволяет затем выполнить унификацию выражений (Е2) и (/2).
Предыдущие примеры представляли собой простейшие случаи унификации. Однако далеко не всегда так просто. В об' щем случае возникает проблема выбора подстановок: ведь мо- жет существовать множество различных способов для получения совпадения подстановок двух формул, причем некоторые способы дают формулы, выводимые из какой-либо более общей формулы. Так, пусть в исчислении высказываний выражение является теоремой, вытекающей из первой аксиомы исчисления высказываний:
(р п (q п р))(Е5)
и пусть имеется метатеорема
《PnQ)nR—(QnR).(П)
Ниже показаны те возможные uестественные" подстановки, которые, однако, не являются оптимальными. Они приведут к правильному результату — частному выражению, которое, однако, не представляет большого интереса. Вспомним “правила игры": в исчислении высказываний пропозициональные буквы р,夕,г... и формулы Р, Q, R... являются свободными переменными. Все появления какой-либо переменной могут быть замещены термом, не содержащим замещаемой переменной. Чтобы привести к совпадению выражения (П) и (£5), можно вначале сделать пробные шаги. Так, подстановка, преобразующая Q в q в выражении (П); дает
^P^q^^^kqZDl^.(£6) {Q/q}
Изменим р в (£5) на Р п q так, чтобы унифицировать начальные символы выражений (£5) и (Е6)
П q) П (q П (Р П д))・(£7) {р/Р n q}
Получим совпадение между (£5), в которой сделана подстановка, и левым членом теоремы (Т1), в которой также выполнена подстановка. При этом имеется еще резервная возможность изменения R на величину (q n (Png)). Правый член выражения (£6), как и в предыдущих примерах, дает искомый результат:
(gn(gn(Pnq)))・住8){R/g n (р п «))}
Однако, ниже мы увидим, что алгоритм унификации без всяких пробных шагов дает нужный результат
(pn(gn(Png)))・(£9)
Очевидно, что последнее выражение представляет собой наиболее общий результат. Предыдущий результат соответствовал частному случаю р = q.
Ниже описан оптимальный алгоритм унификации, который представляет особый интерес, так как, с одной стороны, дает прямой систематический метод приведения к совпадению двух каких-либо формул с помощью подстановок в них, а с другой — эти!подстановки, полученные без полного перебора, носят наиболее общий характер.
Идея алгоритма
Выражение Е и теорему Т будем просматривать параллельно и на одну и ту же глубину. Выполним только те унификации, которые необходимы* Если удастся в конце концов прийти от гипотезы Н к теореме 7, унификация окажется успешной и результат находится в выражении С, модифицированном с помощью тех же подстановок. Иначе неудача.
Во всяком выражении только свободные переменные являются замещаемыми, т. е. те переменные, которые не являются квантифицированными (на них не распространяется действие кванторов V или В). Единственно разрешенными подстановками являются такие, которые замещают свободную переменную х из Е или " термом / из £* или Н. Имеется только одно ограничение: терм / сам не должен уже содержать переменную х. Поэтому, чтобы избежать всякой неоднозначности и неопределенности, в первую очередь проводится “разделение
имен" переменных из £ или Т, каковы бы ни были их начальные имена.
Подстановки выполняются только по необходимости. Символы, которые не являются переменными, не могут замещаться, К таким символам относятся либо операторы (например, +,柒, n, sin...), либо константы (например, 1, 2, ...). Естественно, такие символы должны находиться на аналогичных позициях в Е и Н, иначе невозможна никакия унификация.
Фундаментальная идея, лежащая в основе алгоритма, связана с процедурой просмотра выражения: вначале основной оператор, затем каждый из подтермов, которыми он управляет, начиная, например, с самого левого. Каждый подтерм при этом просматривается параллельно: основной оператор, подтерм и так далее до переменной или константы. Удобным для этого является представление выражения в виде дерева (рис. 3.5).
Рис. 3.5. Представление выражения х2 + (х + УЮ2 и порядок его просмотра в соответствии с алгоритмом унификации.
Порядок просмотра носит префиксный характер: каждый символ обрабатывается в той последовательности, в которой он встречается при спуске по дереву сверху вниз и слева направо (в порядке номеров, показанных на правой части рис. 3.5).
Используя этот порядок просмотра (вначале вглубь), для задания последовательности просмотра введем -индексы е и А: е — индекс текущего символа в выражении £ и h ——индекс текущего символа в выражении Я.
В общем случае принцип рекуррентности формулируется следующим образом: пусть все символы в выражениях Е и Н совпадают вплоть до символов с индексами е w Л, не включая их; попытаемся привести к совпадению символы с индексами е и h соответственно в Е и Н. Имеются четыре возможных варианта ситуаций, при которых каждый из символов с индексами е и /i соответствует (либо нет) какой-то замещаемой переменной. Если подстановка должна быть сделана, она выполняется с помощью огц)еделенной процедуры, называемой SUB. Ниже описана эта процедура подстановки.
Процедура подстановки
Процедура подстановки SUB работает со следующими данными: V — наименование переменной, которая должна быть замещена; / — терм, который подставляется вместо этой переменной; е, /г ——индексы. После выполнения подстановки достигается совпадение выражений Е н Т, включая термы с индексами е и Л. Текст процедуры представлен н»же. Выделенные курсивом наименования соответствуют элементарным функциям, которые здесь не рассматриваются подробно, так как их выбор определяется конкретным способом выполнения процедуры. Значения индексов е и 九 изменяются вне процедуры подстановки.
Процедура SUB
ДАННЫЕ: и, /; е, Л (свободная переменная, терм, индекс в выражении £, индекс в выражении ")・
РЕЗУЛЬТАТЫ: ЛОЖЬ, если подстановка невозможна, иначе
ИСТИНА и новые значения £, Т, е, h.
SUB <-ИСТИНА.
ПРОСМОТРЕТЬ t, начиная с начала
ЕСЛИ тёкущий-символ = и ТОГДА SUB <—ЛОЖЬ ВОЗВРАТ (случай неудачи 1)
КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ ПРОСМОТРА
е -<- индекс-терм-текущий-терм-начинающийся ее Л -<- индекс-терм-текущий-терм-начинающийся в Л {Обработанные части в Е и // не представляют больше никакого интереса, и, следовательно, нет необходимости в просмотре вплоть до индексов е и й, так как начальные части Е ;н Н совпадают.}
Рис. 3.6. Представление выражения,三 + д/з.Рис. 3.6. Представление выражения,三 + д/з.(4|(4|
Рис. 3.6. Представление выражения,三 + д/з.
Рис. 3.6. Представление выражения,三 + д/з.
(4|
(4|
ПРОСМОТРЕТЬ £, начиная се
ЕСЛИ текущий-символ == о ТОГДА заместить текущий-символ на /.
КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ ПРОСМОТРА
ПРОСМОТРЕТЬ Т, начиная с h
ЕСЛИ текущий = символ == v ТОГДА заместить текущий-символ на t.
КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ ПРОСМОТРА
Занести в память подстановку (и, /)
КОНЕЦ ПРОЦЕДУРЫ SUB
Пример подстановки
Если в предыдущем выражении (рис. 3.5) переменную х желательно заменить выражением (у + «3), процедура выпол-
Рис. 3.7. Новый вид выражения Е после подстановки.Рис. 3.7. Новый вид выражения Е после подстановки.Конец процедуры SUB:光Конец процедуры SUB:光няется следующим образом:
Рис. 3.7. Новый вид выражения Е после подстановки.
Рис. 3.7. Новый вид выражения Е после подстановки.
Конец процедуры SUB:光
Конец процедуры SUB:光
е = 3, Л— 1.
ПРОСМОТР /: возможная подстановка (рис. 3.6);
е《-4 индекс следующего терма в
九―5 индекс следующего терма в Я;
ПРОСМОТР Е, начиная с е: текущий символ % встречается снова при индексе 7 и замещается термом Л Результирующее выражение показано на рис. 3.7.
ПРОСМОТР Т: в данном случае нет объекта для просмотра, замещен только в той части выра
жений, которая необходима для унификации в предположении,
что начальные их части уже унифицированы. Ниже описан сам алгоритм унификации.
Тело алгоритма унификации
Процедура УНИФИКАЦИЯ
ДАННЫЕ: Е (выражение) Т = (〃,С) теорема-(гипотезаг заключение)
РЕЗУЛЬТАТ: ИСТИНА и новое Е s новое С со списком выполненных подстановок, если унификация прошла успешно.
ЛОЖЬ иначе
е началъное-выражение (£) (s (е) — символ нз е в Е) h <- начальное-выражение (〃) (s (А) ™ символ из /г в Я) ПРОСМОТРЕТЬ параллельно Е и 〃, начиная с е и А.
ПОКА Л ^ конец-выражения (切
ЕСЛИ s (е) ¥= s (Л) ТОГДА
{Если равенство уже имеется, то продолжают прямой просмотр}
{Вначале оба случая, когда символ из е является оператором: константы рассматриваются как операторы} ЕСЛИ 5(е)-оператор ТОГДА
ЕСЛИ s (й)-оператор ТОГДА унификация <~ ЛОЖЬ; ВОЗВРАТ;
{случай неудачи 2}
ЕСЛИ НЕТ /терм-дебютант из е в Е;
{s(h} является свободной переменной, в которой замещается терм /} SUB (s(/z),九 е, Л).
КОНЕЦ БЛОКА ЕСЛИ
ЕСЛИ НЕТ {случай, когда символ из е является переменной}
ЕСЛИ §(А)/оператор ТОГДА SUB (s(^), .s(e), е,力)
{переменную заменитьна переменную: простое изменение одного из наименований}
ЕСЛИ НЕТ / <— терм-дебютант из 九 в Н;
SUB (s®,f,%/i)
КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ БЛОКА ЕСЛИ
ЕСЛИ SUB = ЛОЖЬ ТОГДА УНИФИКАЦИЯ ЛОЖЬ;
ВОЗВРАТ;
КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ БЛОКА ЕСЛИ
КОНЕЦ
УНН ① НКАЩ4Я <~ ИСТИНА
ВОЗВРАТ; Список выполненных подстановок.
{Новое выражение Е представляет собой заключительную часть С теоремы Т, в которую делались подстановки}.
КОНЕЦ УНИФИКАЦИИ
Завершение работы алгоритма унификации
Процедура завершается, когда доходят до конца выражения Н. Выражение Е может иметь больший размер, чем выражение Н, если теорема Т представляет собой правило переписывания. Поскольку правые ветви деревьев, представляющих выражения Ен", могут разрастаться, необходимо показать, что процесс на самом деле завершен.
Известно, что в начале процесса число переменных, замещаемых в выражениях Е и Н, является конечным. С одной стороны, во время выполнения процедуры не создается новых переменных, а с другой, каждая подстановка, которая замещает переменную термом, не содержащим ее, приводит к уменьшению общего числа обрабатываемых переменных. Следовательно, алгоритм унификации является сходящимся при числе подстановок, большем или равном первоначальному числу свободных переменных в Е ь Н.
Приведем примеры работы алгоритма.
E = a-\-b I Случай неудачи 2:
Т曰%*J операторы не унифицируемы
£ sin2a + cos2 а *| Аналогично предыдущему
Т = sin2x + cos2 % f 1 ) (операторы — константы)
£ = log Vа—log «2* а ) Случай неудачи 1
7 = х — х->0J (в процедуре SUB)
Вначале выполняется подстановка log“a вместо х. Выражение Т принимает в результате новый вид:'
log — log Va f
Таким образом можно унифицировать функции log и V , но затем необходимо сделать подстановку 2 ^ а, а это запрещено (случай неудачи 1 в процедуре SUB).
Рассмотрим вновь пример из исчисления высказываний,
который уже встречался нам выше:.
Ем(рп(др))
Т = ((Р n Q) a R) f (Q =)R).
При этом будем использовать для наглядности древовидную структуру представления выражений (рйс. 3.8—3.10).
Два первых символа в выражениях Ен" являются одним и тем же оператором п: продвигаются вперед по обоим деревьям. В Е встречается какая-то переменна兄(пусть это будет р), тогда как в Н знак 二)указывает на начало некоторого терма Л Следовательно, нужно изменить р в /, где t есть поддерево (рис. 3.9).
т *
(1)
/\ р>
qрр
Рис. 3.8. Унификация в исчислении
⑵人入 пR QR
/\Заключение (С)
'Q Гипотеза 切
высказываний.
(2) .□.
q□.R
z\ p a•
(Выражение)' (гипотеза)
Рис. 39 Унификация (продолжение). Уже исследованные символы представлены точками.
приводит к забершению ^юсмотра Н и дает .
Рис. 3.10. Унификация (окончание).
入 Q . R
(Заключение)
入
А
入
РQ
В выражении £ встречается связка в той позиции, в которой в выражении Т встречается Р. На рис. 3.10 показан Дальнейший ход унификации.
Как видно из рис. 3.10, унификация в данном случае прошла успешно. Выражение Е преобразуется в выражение 尸:
(Q n (q п 仍 n Q)))
при помощи подстановок р/Р n Q и R]q п (PnQ). Другими словами, выражение Е и часть гипотезы Я теоремы Т приведены к виду
(Р n Q) п(Рп(Рп Q)), чтобы получить выражение F. В результате нормализации, исходя из выражения Е и теоремы 7, приходят к результату
(р n g) п (г => (р П <?)) f (q п (г п (р п д))).
Левый член этой продукции является наиболее общей теоремой, какую только можно получить, исходя из Е и Т. Отметим для сравнения, что результат, полученный в разд. 3.7.1 в итоге пробной попытки, является лишь частным случаем.
Незамещаемые переменные
До сих пор предполагалось, что переменные в выражении £ и в теореме Т играют одну и ту же роль, однако это не всегда так. Действительно, какова бы ни была рассматриваемая формальная система, уже по определению переменные теоремы являются во всех случаях замещаемыми. Это вытекает из того, что с самого начала предполагается, что эти переменные являются универсально Т-квантифицированными и становятся свободными в силу аксиомы спецификации. Однако часто встречаются и ситуации, когда “переменные” в £ не являются замещаемыми.
Случай, когда s(e) является переменной из £, а й обозначает начальную часть терма, соответствует ситуации, представленной в третьем примере унификации, когда она невозможна (последняя подстановка недопустима в процедуре подстановки: случай неудачи 3). Это отражает тот факт, что переменные в Е в противоположность переменным, входящим в теорему, не всегда 兄вл兄ются свободными, даже если сами кванторы удалены в процессе записи, ведь в общем случае с выражением производятся определенные манипуляции при его вычислении или оценке. (Например, в выражении Зх2 + 4% — 6 == 0 переменная 尤 не является свободной и любая подстановка на место х является недопустимой.) Следовательно, фигурирующие в них пере-
менные становятся в результате все более ограниченными (связанными) и их нельзя законным образом замещать каким-либо термом. В частности, возможно, что различные “переменные” становятся взаимозависимыми.
Переменные любой теоремы являются свободными (или не-; мыми) переменными. Напротив, в общем случае переменные какого-то выражения являются связанными. В этом случае говорят о полу унификаций, или фильтрации. Так, в алгебре правило приведения
Г 三 а + (Ь — а) 6
является вполне допустимым. Когда же пытаются его применить к какому-то текущему выражению, например
Е = х + у,
то первая подстановка, когда а замещаете兄 на х, является допустимой. Теорема Г переходит в Т1:
71 == х + (Z? — х) I~» Ь.
Однако вторая подстановка, при которой переменная у замещалась бы термом (6 ——х), здесь в принципе недопустима, так как, например, при решении какой-то системы уравнений относительно неизвестных % и у эта система связывает "переменные" х и у между собой. (Если, однако, желательно выполнить эту подстановку, то следовало бы ввести преобразование
(у заменяется на b — х),
в качестве условия, связывающего переменные 尤 и у, для всей последовательности решения задачи. При помощи этого условия выражение £ может быть сведено к переменной bt остающейся свободной.)
Рассмотрим более конкретный пример.
В поле вещественных чисел правило переписывания, приведенное ниже, является допустимым:
С * 产 |—> £2n.(Г)
Это правило может быть лспользовано для упрощения следующего выражения:
夕-3 * g2y~3 =乱(R)
Первая подстановка заменяет z на х ——3 в теореме Т, которая принимает вид
Вторая подстановка замещает % на 2yB теореме Т; унификация является успешной и заключительная формула теоремы
Т имеет вид
巒(2"3).
Однако здесь неявно использовано дополнительное условие х — 2у при последней подстановке.
В свою очередь при решении уравнения (R) мы получаем е2(2у-2)= £2 /ибо у = 2 (и, следовательно, х = 4). Однако на самом деле выражение (К) может быть решено непосредственно без использования теоремы (Т), и тогда ех^у~ь = е2 либо % + 2у = 8.
Очевидно, что здесь получено общее решение для выражения (R), тогда как решение, полученное раньше при унификации, представляло собой только частные случаи.
Здесь символы х 'и у, связанные между собой равенством (R), не являются переменными, замещаемыми в обычном смысле. Если, однако, требуется заменить их термами, необходимо ввести соответствующие условия и впоследствии проанализировать полученные решения.
При унификации нужно с осторожностью относиться к таким ложно свободным переменным, которые естественным образом появляются в исследуемых выражениях. Такого рода переменные принято называть неопределенными. Они могут быть замещаемыми только при условии последующей проверки допустимости. Без такой предосторожности при использовании алгоритма унификации легко получаются ложные заключения.
Реализация алгоритма унификации
Алгоритм унификации с учетом сделанных выше замечаний может быть использован в различных областях математики: алгебре, арифметике, тригонометрии, логике, дифференциальном и интегральном исчислении. Без особых сложностей алгоритм унификации может быть обобщен для правил вывода (порождающих правил) с многими антецедентами Н1 и Н2 и... 久./7m ->- e
При унификации этот алгоритм применяется к каждой теореме рассматриваемой предметной области; при заданной теореме он применяется к каждому подвыражению исследуемого при этом выражения. Ниже представлена общая форма процедуры доказательства.
Общая процедура доказательства
ПРОЧЕСТЬ {т — множество допустимых продукций или правил переписывания в данной предметной области;
т представляет собой данные, связанные с процедурой в самом общем смысле}.
ПРОЧЕСТЬ {е= исследуемое выражение}.
ПОВТОРИТЬ ДЛЯ каждой теоремы, Т из %
ПОВТОРИТЬ ДЛЯ каждого подвыражения Е из е УНИФИКАЦИЯ (Е, Т)
КОНЕЦ ПОВТОРИТЬ НАД Е
КОНЕЦ ПОВТОРИТЬ НАД Т
ЗАПИСАТЬ & {е = выражение, модиф.ицированное в соответствии с т}
Выполнение процедуры прекращается, когда уже никакая теорема не может быть применена ни к какому подвыражению. Приведенное выше описание процедуры представляет собой только ее принципиальную схему, которая может быть и неэффективной, если множество т теорем является достаточно большим. Определенные правила при этом могут иметь более высокий логический приоритет, чем другие. Более того-, порядок применения теорем не является безразличным в смысле окончательного результата 8, который в общем случае может зависеть от этого порядка. Если желательно изменять е так, чтобы при этом достигалась какая-либо заданная заранее цель, то необходимо проведение сравнительного исследования различных порядков применения теорем в т и/или выбора позиций различных выражений £ в е. Следовательно, необходимо разумно управлять этим процессом в соответствии с функцией цели и контекстом общей процедуры унификации.
При этом возникает фундаментальная проблема: описанная общая процедура может оказаться бесконечной. В частности, возможна ситуация, когда т будет содержать, например, два таких правила:
工— хн^О и оI—>х — х.
На самом деле то же явление зацикливания может порождаться и одним единственным правилом, таким, например, как
% + у и—> у + %
или
х^у^—^у^х.
Правило такого типа вызывает бесконечные преобразования двух термов из е, следующих друг за другом, например.
5 Ж.-Л. Лорьер
при таком наборе правил:「
〃*(少/侬)(" * v)/wt
tg* —sin %/cos%,
(u * y)/w t—> V,
sin x t—> cos x * tg x,
где происходит зацикливание по выражению sin %.
Проблема зацикливания решается с помощью двух специальных процедур: процедуры нормализации для выражения и процедуры запрета для теорем.
Нормализация основывается на том, что определенные правила применяются только( при наличии определенного условия, которое запрещает повторное применение правила вывода; иначе это может привести к потере полученного перед этим результата. Таким образом, например, теорема коммутативности для оператора умножения у *х »—> х * у будет применяться к выражению, содержащему хну только тогда, когда масса перемен-- ной х будет меньше массы переменной у. Здесь масса переменной представляет собой числовую функцию, характеризующую желаемый порядок следования переменных, входящих в рассматриваемое выражение. В этом случае выражение записывается в виде, например, 2 * а, а не в виде а *2, или /炉乙 а не
Применение запрета. При ничем не ограниченном использовании некоторых порождающих правил возможны не только полезные, но и нежелательные преобразования, в частности, это может быть связано с унификацией текущего выражения. Так, например, совместное использование правил х —尤>~^0 и 0 ь->х ——х должно быть запрещено. Аналогичным образом при использовании правила tg х ь-> sin x/cos х должно быть запрещено использование двух правил инверсного перехода от синуса и косинуса к тангенциальным термам:
sin х> tg х * cos х и cos х sin x/tg х.
Возможен случай, когда применение некоторых правил оказывает влияние и на использование каких-то других правил, применение которых до этого было запрещено. Это тот случай/ когда в результате применения некоторого правила структура, рассматриваемого выражения изменяется в такой uдостаточной" степени, что вероятность возврата к предшествующему; состоянию становится несущественной.
Необходимо отметить, что имеется еще один способ устранить зацикливание. Он заключается в том, чтобы каждый раз: проводить апостериорную проверку получаемого выражения на
совпадение с выражениями, уже полученными ранее. Однако такой способ устранения зацикливания требует больших затрат.
-Используя две процедуры — нормализацию и запрет-разрешение, алгоритм унификации осуществляет автоматически формальные преобразования выражений.
Таблица 3.3. Правила переписывания для упрощения алгебраических выражений
012345678901234567 т т т т т 7 7 т тг1р1ггггг7 7 7 7 ? 7 7012345678901234567 т т т т т 7 7 т тг1р1ггггг7 7 7 7 ? 7 7-0 I—>0
01234567890123456
7 т т т т т 7 7 т тг1р1ггггг
7 7 7 7 ? 7 7
01234567890123456
7 т т т т т 7 7 т тг1р1ггггг
7 7 7 7 ? 7 7
О + ^ I一》х
О * х I一> О
1 * X I> X'
—(—X)I一> X
X * (—у) t—> (—х) * у
—(х * у) I~~> (™х) * у
Х^(у* ( — 2)) I—> (—х) *(y^Z)
Z * (% + у) I"■—> Z * X + Z * у
х * (—х) I ■> О
х + х i—> 2 * %
Cl * X + С2 * X н-> (Cl + С2) * X
X * (y/尤)1> у
X*(y/z)t~^(x^y)/zа/2)+(У/2)i (% + p)/zх/1 I> Xх/х I一> 1
В табл. 3.3 представлено множество правил переписывания, позволяющих выполнять в машине все обычные правила преобразований алгебраических выражений для их упрощения. В этих правилах С1 и С2 обозначают константы, свободные переменные обозначаются буквами х, р, z. Предполагается, что для записи выражений в правильной единообразной форме используются следующие соглашения о массе переменных: константы всегда помещаются перед переменными, —х — после +招 х — перед у н т. д.
3.8. Примеры использования унификации
J Ниже приведены примеры использования больших возможностей, предоставляемых алгоритмом унификации во многих областях практической деятельности человека.
Проблемы аналогии
В настоящее время хорошо известны различные тесты на уровень интеллектуального развития, которым подвергаются претенденты на ту или иную работу. К ним относится и тест
с использованием семейства геометрических фигур, представленных на рис. 3.11. Требуется найти среди фигур 1—3 нижнего ряда рис. 3.11 такую фигуру %, которая бы соответствовала условию: фигура С так соотносится с этой фигурой х, как фигура А с фигурой В. Таким образом, следует определить, какая
Рис. 3.11. Геометрические тесты.
аналогия существует между фигурами А и В, с одной стороны, и фигурами Сих — с другой. Другими словами, речь идет о том, можно ли унифицировать фигуру С с левой частью "теоремы” А-> В. Затем предусматривается проверка результата унификации на соответствие одному из трех предлагаемых ответов.
Однако что означает здесь Л -> В? Фигура Л может быть описана просто как совокупность форм, связанных между собой некоторыми отношениями (так же как в алгебре формулы представляют собой совокупности переменных, связанных между собой с помощью арифметических операций). Таким образом, фигура Л может быть описана следующим образом:
А ^ (точка, треугольник, прямоугольник) И (прямоугольник .ВНУТРИ треу
гольника) ;
•И (точка ВНЕ j
треугольника)(
И (точка ВНЕпрямоугольни-ка)
Слова, выделенные прописными буквами, обозначают здесь отношения, смысл которых очевиден. Аналогичным образом по-
лучаем для фигуры В:
В s (прямоугольник, треугольник) И (прямоугольник СЛЕВА-ОТ треугольника)
'И (прямоугольник ВНЕ
треугольника)
Кроме того, приняв за начальное значение размеры фигур Л, следует дополнить описание В указаниями на размер его фигур относительно Л:
И (РАЗМЕР прямоугольника = 2)
И (РАЗМЕР треугольника = 1)
Теперь теорема Т есть не что иное, как (описание A) f (описание В), или Л = (точка, треугольник, прямоугольник)
'И (прямоугольник ВНУТРИ треугольника)
И (точка ВНЕ треугольника)
И (точка ВНЕ прямоугольника).
В = (прямоугольник, треугольник)
И (прямоугольник СЛЕВА-ОТ треугольника)-
И (прямоугольник ВНЕ треугольника)
И (РАЗМЕР прямоугольника — 2)
И (РАЗМЕР треугольника = 1)
Подобным образом получаем описание фигуры С:
С * (окружность, треугольник, точка)
И (точка ВНЕ треугольника)
И (треугольник ВНУТРИ окружности)
И (точка ВНЕ окружности).
Задача заключается в следующем:
Можно ли унифицировать описание А с описанием С?
Представим основные этапы алгоритма унификации для данного случая. Отметим, что здесь порядок подвыражений не является существенным: какое-то отношение из Л может унифицироваться с каким-то отношением из С независимо от того, в каком порядке они появляются в описаниях соответствующих фигур. Более того, как это обычно принято, изменим наименования переменных из А и В с тем, чтобы выполняемые подстановки носили наиболее общий характер в Г. В рассматриваемых фигурах некоторые переменные в Л и С по воле случая имеют одни и те же наименования, хотя в действительности не имеется никаких оснований для того, чтобы ^треугольники" из Л и В были бы в обязательном порядке как-то связаны с “тре- угольником" из С. Теперь описание теоремы Т 三(Af 6).
В 曰(с, Ь)
И
(с СЛЕВА-ОТ
匕)
и
(с ВНЕ Ь)
и
(РАЗМЕР с===
2)、
и
(РАЗМЕР , 6 =
1)
принимает следующий вид:
4 三(а, Ас)
И (с ВНУТРИ Ь)
И (а ВНЕ Ь)
И (а ВНЕ с)
Отметим, что эти новые описания сделаны в соответствии с гипотезой, что формы объектов из Л и В не учитываются и существенным являются лишь взаимные отношения между ними.
Начнем унификацию описаний из Л и С в том порядке, как они расположены в С. Отношение "точка ВНЕ треугольника" может рассматриваться как идентичное следующему отношению: “а ВНЕ Ь", которое в применении к А читают так: а есть точка, b есть треугольник. На этой стадии мы знаем, что существует другая возможность, связанная со вторым случаем вхождения отношения ВНЕ в А и с тем фактом, что порядок рассмотрения подвыражений не играет роли. Такой возможностью является унификация подвыражения uточка ВНЕ треугольника" в С с подвыражением “а ВНЕ с" в А. Рассмотрим вначале первый случай. Подстановки, описанные выше, приводят к новому описанию А:
,А 三(точка, треугольник, с)
И (с ВНУТРИ треугольника)
И (точка ВНЕ треугольника)
(унифицировано с первым отношением из С)
、И (точка ВНЕ с)
Следующее отношение в С: uтреугольник ВНУТРИ окружности”. Здесь имеется единственная возможность унификации, связанная с отношением “с ВНУТРИ треугольника" описания Л. Но мы встречаемся с третьим случаем неудачного применения алгоритма унификации: для идентификации этих двух выражений нужно, с одной стороны, изменить с в треугольнике, что можно сделать; но -изменить'таким же образом треугольник внутри окружности нельзя, так как это запрещено, как уже указывалось в 3.4.3. Последний запрет связан с тем, что переменные в выражении (в данном случае в выражении с) не могут считаться независимыми. Таким образом, Окружность и Треугольник не являются унифицируемыми, так как они взаимоне- зависимы в С и играют фактически роль констант. Поэтому остается только попытаться использовать упомянутую выше вторую возможность для унификации:
унифицировать иточка ВНЕ треугольника" в С
с выражением “。ВНЕ с” в А.
Для этого замещают точку на а и треугольник на с Тогда теорема Т = (А-^ В) приобретает следующий вид:
{Л 三(точка,力,треугольник)И (треугольник ВНУТРИ Ь)И (точка ВНЕ Ь)И (точка ВНЕ треугольника)*{Л 三(точка,力,треугольник)И (треугольник ВНУТРИ Ь)И (точка ВНЕ Ь)И (точка ВНЕ треугольника)*,В^ (треугольник, Ь)И (треугольник СЛЕВА-ОТ Ь)И (треугольник ВНЕ Ь)И (РАЗМЕР треугольника = =2)、И (размер 匕=1),В^ (треугольник, Ь)И (треугольник СЛЕВА-ОТ Ь)И (треугольник ВНЕ Ь)И (РАЗМЕР треугольника = =2)、И (размер 匕=1)
{Л 三(точка,力,треугольник)
И (треугольник ВНУТРИ Ь)
И (точка ВНЕ Ь)
И (точка ВНЕ треугольника)*
{Л 三(точка,力,треугольник)
И (треугольник ВНУТРИ Ь)
И (точка ВНЕ Ь)
И (точка ВНЕ треугольника)*
,В^ (треугольник, Ь)
И (треугольник СЛЕВА-ОТ Ь)
И (треугольник ВНЕ Ь)
И (РАЗМЕР треугольника = =2)
、И (размер 匕=1)
,В^ (треугольник, Ь)
И (треугольник СЛЕВА-ОТ Ь)
И (треугольник ВНЕ Ь)
И (РАЗМЕР треугольника = =2)
、И (размер 匕=1)
Звездочкой отмечено отношение, которое уже унифицировано.
Следующим отношением в С является отношение итреуголь- ник ВНУТРИ окружности,,_ Это отношение идентифицируется единственным образом с подвыражением /'треугольник ВНУТРИ 6П с помощью подстановки теперь уже окружности вместо Ь. В результате получаем следующий вид теоремы Т:
4= (точка, окружность, треугольник)И (треугольник ВНУТРИ ок-(ружности)И (точка ВНЕ окружности)И (точка ВНЕ треугольничка) *4= (точка, окружность, треугольник)И (треугольник ВНУТРИ ок-(ружности)И (точка ВНЕ окружности)И (точка ВНЕ треугольничка) *В е (треугольник, окружность) И (треугольник СЛЕВА-ОТ окружности)
4= (точка, окружность, треугольник)
И (треугольник ВНУТРИ ок-
(ружности)
И (точка ВНЕ окружности)
И (точка ВНЕ треугольни
чка) *
4= (точка, окружность, треугольник)
И (треугольник ВНУТРИ ок-
(ружности)
И (точка ВНЕ окружности)
И (точка ВНЕ треугольни
чка) *
И (треугольник ВНЕ окружности)
И (РАЗМЕР треугольника == 2)
И (РАЗМЕР окружности = 1)
Последним замещаемым в С отношением является отношение “точка ВНЕ окружности". Оно непосредственно идентифицируется со вторым отношением из А. Если применить к выражению С теорему Т = (Л -> В) , т. е. произвести те же преобразования в С, которые позволили перейти от Л к В, то получим описание выражения D, которое представляет собой выражение В, преобразованное подстановками, позволившими унифицировать 4 H 8, т. е. a/точка, 6/окружность, с/треугольник.
D = (треугольник, окружность)
И (треугольник СЛЕВА-ОТ окружности)
: И (треугольник ВНЕ окружности)
: И (РАЗМЕР треугольника = 2)
: И (РАЗМЕР окружности = 1)
^Указанные здесь размеры взяты по отношению к размерам пер- ]Воначальной фигуры, пусть в данном случае этой фигурой будет С. Теперь остается определить, возможно ли идентифицировать это описание с одной из фигур, предложенных в качестве ^варианта ответа. Эта задача снова связана с унификацией, поскольку речь идет об унификации двух описаний (вне зависимости от порядка отношений). Этот последний этап является тривиальным в данном случае, поскольку на самом деле здесь нет никакой разрешенной подстановки по той же причине, что
и в случае с "переменными" из выражения С. Правильный ответ: третья фигура справа в нижнем ряду на рис. 3.11.
Отметим, что результат можно было получить гораздо быстрее, если учесть, что Л и С содержат только по одному отношению типа “% ВНУТРИ у”. Начав с унификации этих отношений, мы получим следующее: С заменим на треугольник, а 6 —— на окружность. Затем делаем замену а на точку и получаем результат.
Замечания по задачам типа геометрических тестов
Часто мы неосознанно используем неявную процедуру унификации при ответах на тесты, подобные тем, что описаны в разд. 3.8.1. Однако этим не исчерпываются проблемы зритель-' кого восприятия. Во-первых, человеческий глаз вместе со зрительной системой в целом является уникальным устройством обработки информации, преобразующим, в частности, рисунки в такие геометрические описания, когда они становятся простыми и легкими для узнавания. Так что проблема машинного зрения состоит вовсе не в том, чтобы снабдить ЭВМ одной или двумя телекамерами, а в том, чтобы научиться распознавать образы.
Во-вторых, совсем неочевидно (хотя это неявно предполагается в предыдущем разделе), что существует некоторое стандартное описание объектов и отношений. Одно .и то же отношение может быть описано различным образом, например:
^треугольник СЛЕВА-ОТ окружности" или
“окружность СПРАВА-ОТ треугольника".
То же явление обнаруживается каждый раз, когда отношение допускает использование “ инверсного варианта, например ВНУТРИ и ВНЕ, ВВЕРХУ И ВНИЗУ. Это приводит к необходимости специальных изменений внутри самого алгоритма унификации, чтобы можно было определить все возможные подстановки. Иными словами, кроме того, что сами выражения могут быть громоздкими, еще и число эквивалентных описаний (которое растет экспоненциально) может быть очень большим.
С этим связан вопрос об эффективности алгоритма унификации и релевантности описаний. При этом возникает проблема слишком подробной информации, так как всегда можно сделать более подробное описание на использованном нами символическом языке. Начальный этап соответствует в действительности более точному описанию рисунка на бумаге. Так, к описанию фигуры 4 можно добавить, что точка расположена не просто вне треугольника, но также и слева и сверху от него. В фигуре С, наоборот, точка находится на среднем уровне справа.
叵 叵 |A|
亙 亘
о
О г—*
ш
0
йй ш
й
图画圜回回工
回
Еа
图
В
Рис. 3.12. Тесты Каттели.
0 0 □固
图因图因閉
beds
図固叵)回回
ffl画ВE-И
□□□□
bсс/еf
回回图101回
回叵]回回£1
回叵]叵1匡1 13
"Таким образом, унификация не может выполняться точно. Что- 1 бы она прошла успешно, необходимо перемещаться внутри опи- 'сания, как это было сделано в нашем примере. В этом случае "информация, которая описывает более точно относительное по- ложение точек, не рассматривается в качестве релевантной, что подтвер ждается впоследствии тем, что точки из Л и С исчезают из конечного описания в В и D.
Третье замечание относится к языку описания. Он не задан и не является общим для всех, каким, например, может быть обцчный математический язык. Он не является ни очень
7070“В“В胤®偃叵胤®偃叵Хороший набор 唆уpХороший набор 唆уpи/и/Плоаюи наборПлоаюи набор#仔#仔"/юно注набор"/юно注наборХороший наборХороший наборРис. 3.13. Несколько задач М. Бонгарда.Рис. 3.13. Несколько задач М. Бонгарда.口 Т口 Т163574гQС?71】141741?51342433556.4:3444272655141?】8?1N工163574гQС?71】141741?51342433556.4:3444272655141?】8?1N工
70
70
“В
“В
胤®偃叵
胤®偃叵
Хороший набор 唆уp
Хороший набор 唆уp
и/
и/
Плоаюи набор
Плоаюи набор
#仔
#仔
"/юно注набор
"/юно注набор
Хороший набор
Хороший набор
Рис. 3.13. Несколько задач М. Бонгарда.
Рис. 3.13. Несколько задач М. Бонгарда.
口 Т
口 Т
16
35
74
г
Q
С
?
7
1】
14
1741?
513
424
335
5
6
.4
:3444
27
26
55
141?】8?
1
N
工
16
35
74
г
Q
С
?
7
1】
14
1741?
513
424
335
5
6
.4
:3444
27
26
55
141?】8?
1
N
工
M£2SMSd6 ?
Рис, 3.14.
строгим, ни очень формализованным. Поэтому словарь отношений между объектами должен быть эффективно расширен, чтобы могли быть приняты в учет и другие характеристики: ТИП-ЛИ- НИЙ (сплошные, штриховые, пунктирные...);
ЦВЕТ (белый, черный, серый,...);
ОРИЕНТАЦИЯ (например, по отношению к оси симметрии).
Используя эти расширения языка, сложные фигуры могут исследоваться автоматически, как, например, серия тестов Q1 Каттели (рис. 3.12).;
Тесты, использующие различные последовательности чисел, букв или домино, часто являются более трудными, так как, во-
первых, обычно не предлагается никаких вариантов ответов и, во-вторых, в общем случае допустимым является большое число унификаций и, следовательно, может быть множество логически приемлемых ответов.
На рис. 3.13 показано несколько задач советского ученого М. Бонгарда. Требуется определить принцип, по которому каждая группа из 12 фигур разделена на две части: "плохую” справа и "хорошую” слева.
На рис. 3.14 приводится пример другого ' набора тестовых задач. Необходимо определить все множество данных (т. е. следующий неизвестный элемент), используя каждый раз их ограниченное исходное число. Форма задания таких тестов всегда имеет вид UIU2U3 f...'Uif ? При этом надеются ограничить двусмысленность и неопределенность задачи, давая возможность отфильтровывать возможные преобразования, оставляются только те варианты построения членов заданной начальной последовательности, которые успешно работают на всех этапах от члена U1 до Ui. В конце концов остается выбор уже только между несколькими возможностями. В действительности всегда существует бесконечное число кривых, которые можно провести через конечное число заданных точек (здесь точки играют роль исходных заданных значений, а кривые представляют собой законы преобразования исходных значений в последующие). К этому же типу относятся тесты, приведенные на рис. 3.13. По этой причине критикуются сейчас (й критиковались раньше) все эти тесты на определение ^коэффициента умственного развития”. В действительности, чтобы выделять законные преобразования, необходимо в конечном счете ввести критерий "простоты”,который совершенно субъективен.
Использование алгоритма унификации при автоматическом доказательстве теорем
Теперь мы можем составить эффективные программы для доказательства каких-либо теорем в простых формальных системах: ниже мы воспользуемся банком пробных задач для тестирования программ, которые возникают при использовании принципа резолюции (разд. 3.9) или в экспертных системах (гл. 7).
Однако остается проблема, которую надо решить, чтобы перенести на ЭВМ алгоритм унификации: необходимо отсечь от дерева поиска те его части, которые ведут к бесконечным, процедурам.
Метод Сиклосси и Маринова
Некоторые правила переписывания при их применении дают, в частности, такую правую часть выражения, к которой снова применимо то же правило. Такие правила будем называть экстенсивными. Очевидно, использование таких правил порождает бесконечное множество формул, поэтому их применение должно быть как-то ограничено. Например, в исчислении высказываний правило р»~^■力~]р является экстенсивным. Программа может определить сама, используя алгоритм унификации, является ли выполняемое правило экстенсивным или нет.
Правила типа х + г/ ь—> I/ + х, будучи применимы последовательно дважды к одному и тому же выражению, оставляют его в результате неизменным. Такие правила не могут приводить к бесконечной процедуре поиска, и они являются на самом деле только псевдоэкстенсивными. Сиклоши и Маринов предложили рассматривать экстенсивные правила только тогда, когда обойтись без них невозможно. Эти правила в таком случае применяются не более одного раза для уровня текущего поиска, а полный поиск по всем другим правилам отсекается. Благодаря такому подходу они получили в 1971 г. гораздо лучшие результаты, чем при ручном способе решения. Ниже приводятся два примера доказательства, в которых используется эта простая эвристика (не зависящая от рассматриваемой области) для отсечения экстенсивных правил..
Пример 1. Исчисление высказываний
Пусть заданы шесть правил вывода:
р Л q^q /\ р
р 八(夕 А г) — (р А д) А г
р 八(pnq)iq
口 g 八(р n g) if Т р
5:
pf ITp и одна теорема, которую нужно доказать:
(S А ~] £) /\ / f Т S.
В первый момент используется экстенсивное правило 6. Поиск проводится таким образом, что к уже встречавшимся ранее выражениям правила вывода больше не применяются и они помечаются в качестве "мертвьис". Заключение доказываемой теоремы используется только в качестве условия остановки —— сам поиск проводится перебором вслепую.
Дерево поиска показано на рис. 3.15. На нем узлы занумерованы в порядке их получения в процессе доказательства теоремы. Процесс идет вначале в ширину: выполняются все возможные преобразования на одном и том же уровне для того же самого выражения и лишь потом осуществляется переход на следующий уровень.
г: (11 s э 11) л i//разило / I5: t А (11 s Э п t^г: (11 s э 11) л i//разило / I5: t А (11 s Э п t^э: (S Э 1 Т1 t)八七Правило /6: t л (s э 1 in tiэ: (S Э 1 Т1 t)八七Правило /6: t л (s э 1 in tiС исходным выражением " (узел 1) может быть унифицировано в данном случае только правило 1. Затем, несмотря на
г: (11 s э 11) л i
//разило / I
5: t А (11 s Э п t^
г: (11 s э 11) л i
//разило / I
5: t А (11 s Э п t^
э: (S Э 1 Т1 t)八七
Правило /
6: t л (s э 1 in ti
э: (S Э 1 Т1 t)八七
Правило /
6: t л (s э 1 in ti
4: (s э nt) A -»1£
111 л (S 0rb
[Правило 夕
I "/1切
"I s
Рис. 3.15. Порождающее дерево для теоремы (s n ~| 力)八 / -> ~~| s.
повторные задания выражения Я, правила 2 ——5 уже не могут быть к нему применены. Тогда в действие вступает правило 6, применяемое последовательно ко всем элементам исходного выражения Н, образуя самостоятельный уровень. Таким образом, правило 6 унифицируется тремя различными способами с Я, образуя при этом три новых выражения (узлы 2 — 4), к которым применяется в свою очередь Правило 1. Последующее применение правила 4 приводит процесс к успешному завершению доказательства в случае узла 7 (рис. 3.15).
В приведенном доказательстве для простоты выполнены не все унификации. Прежде всего пропозициональные буквы из гипотезы доказываемой теоремы не рассматривались в качестве замещаемых переменных (полуунификация). Кроме того, не рассматривалось применение правила 6 к выражению (s п zd П/) А /, взятому как целое.
Пример 2. Элементарная теория групп
Заданы 6 правил вывода:
а + Ьн->Ь + а
а + S + с) н-> (а + Ь) + с
.3: (а + 方)—b *—> и
а (а + 匕)一b
(а —匕)+ с I~> (а + с) — b
(а + b) — с I~-> (а — с) + b
С их помощью необходимо доказать следующую теорему:
(а 十 6) + с >> а + (Ь + с).
Попытайтесь доказать эту теорему самостоятельно. Так как данная алгебра весьма ограниченна по сравнению с той, которую мы знаем, наша обычная стратегия в этом случае не приводит
теоремы (а + Ь) + с i"―> а + (b + с).теоремы (а + Ь) + с i"―> а + (b + с).Рис. 3.16. Порождающее дерево дляРис. 3.16. Порождающее дерево для
теоремы (а + Ь) + с i"―> а + (b + с).
теоремы (а + Ь) + с i"―> а + (b + с).
Рис. 3.16. Порождающее дерево для
Рис. 3.16. Порождающее дерево для
к успеху и продвижение вперед идет с большим трудом. Правило 1 полагается системой псевдоэкстенсивным, а правило 4 —— экстенсивным. Впрочем, система будет неявным образом использовать следующую метатеорему: поскольку правило 4 не действует, могут применяться только правила 1 и 2. Решение получается за 11 шагов, причем используются только правила 1 и 2. Ход решения представлен на рис. 3.16.
При тех же правилах вывода доказательство более интересной теоремы
(а,+ с) — (b + с)1Q — b
требует уже 351 шага или нескольких секунд работы процессора ЭВМ.
С помощью программы, описанной выше, не были получены какие-то важные результаты в математике, однако в отличие от многих других систем автоматического доказательства (и в этом заключается ее основное отличие от них) эта программа может находить новые теоремы — достаточно лишь дать ей возможность двигаться в обратном направлении. Она выявляет большие возможности ЭВМ в обработке символьной информа-
ции: самые длинные доказательства требуют всего лишь нескольких секунд машинного времени.
В тех случаях, когда проблемы символьного доказательства не являются основными (например, в системах автоматизации программирования), создаются просто хорошие подпрограммы. Кроме того, чтобы доказать промежуточные результаты в той области математики, которая не является основной для системы автоматического доказательства, поступают, например, следующим образом: математик, специализирующийся в топологии, получает необходимый результат, работая традиционным образом с литературой.
Усовершенствование метода Сиклоши и Маринова связано с сохранением разбиения на два класса задаваемых правил вывода: с одной стороны, на "обязательные” правила, соответствующие нормализации ——упрощению выражений, а с другой стороны, на “необязательные" правила (в частности, экстенсивные, "опасные" для использования). Это разбиение позволяет, впрочем, усовершенствовать сам процесс вовлечения в доказательство этих 'Необязательных" правил. Ниже приведены два доказательства теорем, в которых используются эти идеи.
Решение тригонометрических уравнений.
Процедура PRET (М. Grandbastien, 1974)
Исходные условия в данном случае задаются в следующем виде:
Р (trigo (г))— константа,
где Р (trigo (х)) обозначает полином от тригонометрических функций (sin, cos, tg, ctg) переменной %. Чтобы решить эти уравнения, программа уже заранее должна быть знакома с решением двух типовых случаев
(trigo (х) = с,(В1)
t a cos (х) + ft sin х = с. J(82)
Отметим, что здесь следовало бы подумать о сведении решения заданного уравнения к решению уравнения относительно новой переменной 玄 где /= (tg%)/2N. N означает наибольший общий делитель знаменателей в Р. Можно попробовать выполнить зам^у f = 6以/2" по формуле Эйлера. Однако в обоих случаях степень результирующего уравнения в общем случае получится слишком высокой для того, чтобы оно могло быть алгебраически разрешено.
Однако смысл такой замены "переменных заключается в том, чтобы показать идентичность этих уравнений с точки зрения
тригонометрии, а не для того, чтобы их решить. Когда речь идет об идентичности, то в действительности достаточно лишь показать, что некий полином равен нулю.
Процедура PRET основывается на выборе цели (в данном слун前 Bl или В2) и достижении ее всеми возможными средствами.
8ln* х н 1/4
I ~
1/2 (1 ♦ cos 2х) = 1/4sin хя* 1/2
С08г X = 3/483” Х-С08 2х ® 1/4
Рис. 3.17. Узел ИЛИ в схеме доказательства.
(sin х)(1- 2cosx) = О
sin х = 01 - 2.сое х « О
Рис. 3.18. Узел И в схеме доказательства.
Общая последовательность действий представляет собой итерацию из трех шагов:
Шаг 1. Использовать обязательные правила, если это возможно.
Шаг 2. Использовать какое-то необязательное правило, подобранное соответствующим образом.
Шаг 3. Выделить среди рассматриваемого множества выражений наиболее подходящее выражение.
Вернуться к шагу 1.
Каждый из этих трех шагов рассмотрен ниже более подробно. Вначале рассмотрим подробнее выполнение шага 3. По построению последовательность поиска представляет собой древовидную структуру, причем каждое исследуемое выражение порождает несколько дочерних. Если каждое из этих дочерних выражений было порождено различным правилом, начиная с предшествующего материнского выражения, то такая связь между ними обозначается как ИЛИ, и чтобы решить исходное уравнение, необходимо и достаточно решить одно из эквивалентных дочерних уравнений (рис. 3.17)..
Если исходное материнское выражение представляет собой произведение нескольких выражений-сомножителей (в левой qa- стн), а правая часть уравнения-представляет собой нуль, приходится решать отдельно уравнения для каждого из сомножителей. В этом случае порождаются подзадачи, причем связь такого рода обозначается как И (рис. 3.18).
trigo 〃 ± trigosin 2х cos 2хsin и sin и cos u cos иtrigo 3 + и)trigo 〃 ± trigosin 2х cos 2хsin и sin и cos u cos иtrigo 3 + и)trigoa a sin2u cos8 utrigo (-u) trigo (л ± к) trigo (n/2 土 и) trigo (jr/4 土 u)trigo (2x)Л) siNxsin x cos xtg “/) sin u/cos ucos2 utrigoa a sin2u cos8 utrigo (-u) trigo (л ± к) trigo (n/2 土 и) trigo (jr/4 土 u)trigo (2x)Л) siNxsin x cos xtg “/) sin u/cos ucos2 u
trigo 〃 ± trigo
sin 2х cos 2х
sin и sin и cos u cos и
trigo 3 + и)
trigo 〃 ± trigo
sin 2х cos 2х
sin и sin и cos u cos и
trigo 3 + и)
trigoa a sin2u cos8 u
trigo (-u) trigo (л ± к) trigo (n/2 土 и) trigo (jr/4 土 u)
trigo (2x)
Л) siNx
sin x cos x
tg “
/) sin u/cos u
cos2 u
trigoa a sin2u cos8 u
trigo (-u) trigo (л ± к) trigo (n/2 土 и) trigo (jr/4 土 u)
trigo (2x)
Л) siNx
sin x cos x
tg “
/) sin u/cos u
cos2 u
На каждом шаге решения необходимо выбрать выражение, которое будет обрабатываться программой. Этот выбор производится с помощью функции оценивания из дочерних выражений последнего узла ИЛИ, причем программа оставляет выражение с наименьшей степенью сложности. Для всякого выражения е сложность С(е) определяется следующим образом:
С (е) = (число сомножителей первого уровня) + (число различных аргументов) -]- (сумма степеней, отличных от единицы).
Эта оценка является довольно простой, но достаточно эффективной, так как С(е) возрастает очень быстро, если выбрано неудачное выражение, что приводит к отсечению соответствующей ветви решения. В этом случае программа переходит к другому узлу е, до тех пор пока оценки дочерних выражений не получатся достаточно малыми.
На шаге 2 запускаются в действие необязательные правила вывода (НП). Эти правила являются упорядоченными и применяются везде, где только возможно. Данные правила представляют собой правйла переписывания. Полный перечень этих- правил приведен в краткой форме записи в табл. 3.4, где trigo обозначает обратную тригонометрическую функцию. Совокупность необязательных правил была определена экспериментально —отбирались те правила, которые либо не всегда применимы в тригонометрии, либо порождают более сложные выражения (правило g), либо удаляют нас от конечной цели (например,
Таблица 3.4. Перечень необязательных правил вывода в тригонометрии
и I一> 2 trigo (以 + u)/2 trigo (u 士 и)/2 I> 2 sin x cos x
I~> 2 cos2 x — 1
I—> 1/2 (cos (〃一 u) — cos (我 + v))
I"-> 1/2 (cos (〃一&) + cos (u + v))
I―>f (trigo a, trigo и)
I> f (trigo a〃)
I一> 1/2 (1 + cos 2u)
I一> 1/4 (cos 3以 + 3 cos u) H->f (trigo (tz)) if (trigo ®) if (frig。®)) (trigo (〃»
i f (tg x) i—1 — cos2 x
1一> 1/2 sin 2尤
I一》sin u/cos u
I—> tg u
宀 l/(l+tg2〃)
правило с), либо формируют экстенсивные комбинации (правила г и /) (табл. 3.4).
Шаг 1 на самом деле состоит из трех отдельных шагов. В первую очередь программа пытается, если это возможно, упростить задачу, сведя ее к подзадачам путем разложения на множители и создания узла И. Если это не удается сделать, программа пытается упростить выражение путем замены переменной, приводя его к выражению, в котором имеется только одна переменная или единственная обратная тригонометрическая функция. Если ничего из этого сделать не удается, исходное выражение стандартизируется путем унификации с помощью обязательных правил (ОП) вывода в заданном порядке. Эти правила сведены в 10 групп, приведенных ниже в перечне обязательных правил вывода (табл. 3.5).
С помощью программы PRET более ста примеров были решены за несколько секунд на ЭВМ СП 10070.
Приведем два подобных примера.
Таблица 3.5. Перечень обязательных правил вывода
Развитие (правило переписывания):
(а + b)n -> сумма.
Подавление радикалов (продукция):
«а — с а — с2.
Преобразование суммы в произведение:
sin 〃 + sin и -> 2 sin ((〃 + и)/2) cos ((〃 — о)/2).
Разложение На множители (правило переписывания):
ап — bn I~> (а — 6) (полином).
Удаление котангенса, если в выражении имеется только один аргумент
ctgx-> 1/tgx.
Удаление тангенса, если в выражении имеется только один аргумент
tg % •—^ sin x/cos х.
Если синус и косинус в выражении появляются с нечетными степенями, то производится деление на cosa х с целью получения выражений
(Р (tg х) = 0) V (Р (cos х) = 0).
Если синус и косинус встречаются в выражении с четными степенями, то с целью получения выражения P(tgx)== 0 применяется правило
sin2 х I—> 1 — cos2 x.
Если выражение е симметрично относительно синуса и косинуса, то
х f—> х + 冗/4.
Если в выражении встречаются члены, имеющие знаменатели, то привести все выражение к общему знаменателю.
Пример 1
“3 tgx —4sin2x = 0(I)
Здесь невозможны ни разложение на множители, ни замены на стандартные переменные. Однако можно применить обязательное правило f:
⑴)⑴)“不謬一4sin2x = 0.
⑴)
⑴)
Применение ОП(/) дает при cos х =# О
«3 sin х —4 sin2xcosx = 0.(Ill)
Теперь исходное выражение преобразовано и программа возвращается к шагу I, производя разложение выражения (III) на множители, вынося sin х за скобки:
sin х (V^ — 4 sin х cos х) = 0.
Это выражение приводит к двум задачам типа И:
sin х = 0,(IV)
которая тривиальна, и
«3 — 4 sin xcosx — 0.(V)
I и!I~IVI и!I~IVЭто последнее выражение становится текущим. Для него использование обязательных правил ничего не дает, но применение (НП) (ft) к подвыражению
I и!
I~IV
I и!
I~IV
sin х cos х f 1 /2 sin 2x
Рис. 3.19. Дерево реше- нид для уравнения “3 tg х — 4 sin2 % = 0.для выраженияРис. 3.19. Дерево реше- нид для уравнения “3 tg х — 4 sin2 % = 0.для выраженияприводит к выражению, дающему решение задачи:
Рис. 3.19. Дерево реше- нид для уравнения “3 tg х — 4 sin2 % = 0.
для выражения
Рис. 3.19. Дерево реше- нид для уравнения “3 tg х — 4 sin2 % = 0.
для выражения
sin 2尤=“3 /2.
На рис. 3.19 показано дерево решения
“3 tgx — 4 sin2x = 0.
Пример 2
(I)(I)sin (n + I) х + sin (n — 1) x — sin 2x = 0
(I)
(I)
Никакое обязательное правило не пригодно для выражения (I). Необязательное правило (а), напротив, приводит нас
к выражению
2 sin пх cos % ——sin 2% = О,(II)
сложность которого составляет 4 4-3 + 0 = 7, тогда как сложность исходного выражения (I) была равна 3 + 3 + 0 = 6.
В действительности то же правило (а) применяется также для группирования не только к термам 1 и 2 выражения (I), но
II.. nil IVI v I
VIII IX--
X-.
|xi XI 1
Рис. 3.20. Дерево решения для уравнения sin(n+l)x + sin(——l)x — sin 2x —0.
также к термам 1 и 3 или 2 и 3. Таким образом, программа одновременно порождает еще выражения (III) и (IV), имеющие ту же степень сложности, равную 7:
2 sin ' ” % cos ^~~х + sin (〃 ——1) % = 0,(III)
2 sin ^^ x cos 勺 I 尤 + sin (n + 1) x = 0.(IV)
Теперь программа применяет необязательное правило (Ь) к исходному выражению, получая выражение (V), степень сложности которого составляет 5 + 3 + 0 = 8:
sin 仇 十 1) % + sin 仇一1) х — 2 sin % cosx = 0.(V)
Программа затем обращается к выражению с наименьшей степенью сложности — пусть это будет выражение (II). Теперь необязательное правило (6) применяется снова и приводит к выражению
2 sin nx cosx ——2 sin х cos х —0,(VI)
которое тут же разлагается на множители
2 cos х (sin пх — sinx)==0.(VII)
Из этого выражения порождаются две подзадачи (VIII) и (IX) (рис. 3.20). Обязательное правило (с) преобразует разность (IX) в произведение
sm nx — sin x — 2 sin —— x cos ―居(X)
и задача, таким образом, в общем, решена. Дерево для нее приведено на рис. 3.20.
3.8.6. Решение арифметических задач.
Процедура PARI (D. Bourgoin, 1978)
Математические знания в программе PARI сконцентрированы в специфических модулях. Общая идея решения задачи состоит в том, чтобы выбрать одну из задач, имеющую решение, и затем сделать все возможное для того, чтобы свести исходную задачу к ней. Программа решает задачи с целочйсленны- ми переменными, используя шесть модулей, которые могут обрабатывать определенные подзадачи. Последние играют роль усовершенствованных, обязательных правил вывода.
{Модуль />: произведение = константа. Этот модуль использует разложение числа на простые множители или делители, например:
%у = 5今(尤=5, у=1) ИЛИ (у = 5, х = 1).
{Модуль 2〉:. конгруэнтность. Модуль делает заключения о простых равенствах, основываясь на разложениях небольших чисел (2, 3, 5, 7, 11), чисто комбинаторным способом. Этот модуль выводит необходимые условия, которым должны удовлетворять неизвестные величины, например
5% = 2у+ 1 =>х есть нечетное число.
{Модуль 3〉: делимость. Этот модуль делает заключение о делимости, основываясь на фундаментальной лемме Гаусса: “Если а есть взаимно простое число с й и делится на произведение Ьс, то а делится на с”,например
3 делится на 7z 今 3 делится на z.
《Модуль 4〉: равенство. Этот модуль умеет находить частные решения простых уравнений путем последовательных испытаний (идеальным случаем здесь было бы использование непрерывных (цепных) дробей), например
7х — 5y =11 имеет место частное решение х == 3 и у = 2.
{Модуль 5): обобщенное евклидово деление. Модуль рассчитывает частное и остаток от деления полинома на полином, например
(х2 — 2х + 1) деленное на (х — 3) дает
(№ — 2% + 1) ^ (х — 3) (х + 1) + 4.
(Модуль 6): индукция. Этот модуль умеет находить, исходя из начального значения и рекуррентного отношения, формальное выражение для общего члена последовательности, например
ип = 3〃"_1 十 4; 〃[ = 5q => 〃仪=3"7 (5q + 2) -— 2.
Эти модули используются в сервисных программах для нормализации выражений, выполнения подстановок, сообщения о результатах* найденных в текущих соотношениях. Конечной целью всей программы является отыскание решения в явном виде либо в полной форме, либо в форме простого условия, ха- рактеризующего решение, либо описание доказательства того, что решения не существует.丿
На каждом этапе рефения адекватность каждого из модулей текущей задаче проверяется с помощью игры шести триплетов. Каждый из них для каждого из шести модулей измеряет релевантность модуля, трудность его применения (которая оценивается по числу переменных и максимальным степеням) и результирующие ожидаемые издержки, связанные с последующим продолжением решения задачи в этом случае. Имеются точные критерии, позволяющие решать, какой из триплетов выбрать и, следовательно, какой из модулей применить. '
Ниже приводятся три примера решений с использованием метода PARI.
Пример 1. Найти два простых числа р и q, таких, что
p2 = 8q+ 1.
Модуль ^делимость" лучше всего соответствует заданным условиям. Он ^считает'*, что имеется уравнение относительно д, и формирует новое условие делимости:
81P2一1, т. е. 8 деленное на (р2 — 1).
■ Модуль ''конгруэнтность" не дает здесь ничего нового (р, и q уже известны как нечетные числа, так как они являются простыми числами). Но тот же модуль становится теперь наилучшим кандидатом для прямого исследования: начального условия и конгруэнций по модулю 3, порождая выражение
(р по модулю 3)2 = 2 (д по модулю 3) + 1.
Если р 三 0 но модулю 3, то р, являющееся простым числом, может быть только равным 3; отсюда следует
9 = 89 + 1 и при д=1.
Получаем решение р = 3, q = 1.,
Если р s 1 по модулю 3, то конгруэнтное уравнение принимает вид
1曰2(夕 по модулю 3)+1;
пусть д = 0 (по модулю 3), т. е. q = 3 (как простое число), тогда
р2 = 8 • 3 + 1 и р = 5,
но это противоречит предположению, что р 三 1 по модулю 3. Если р s 2 по модулю 3, то получаем
4 = 2(д по модулю 3) + 1;
пусть снова g 三 0 (по модулю 3) и, следовательно, q = 3, тогда
р2 = 25 и р = 5, что в данном случае удовлетворяет предположение р м 2 Ho модулю 3.
Итак, задача имеет два решения: (3; 1) и (5; 3).
' Пример 2. Найти целые положительные % и и, такие, что
5炉-6产+ 7尤+ 8 _ / 二 3^*4
Для заданной задачи наиболее пригоден модуль «евклидово деление», в результате применения которого получаем тождество•
5х3 — 6炉 + 7% + 8 = (х2 - 3尤 + 4) (5尤 + 9) + 14无一28.
Трехчлен (%?——Зх + 4) должен быть общим делителем обеих частей этого тождества и, следовательно, должен делить и 《остаток》 (14х ——28). Модуль «делимость» формирует здесь новое условие:
х2 —Зх + 4|14х —28, к которому снова применяется модуль ^евклидово делением для получения нового тождества
14 (х2 - 3% + 4) м (14х — 28) (% — 1) + 28.
Трехчлен (х2 ^- Зх + 4) должен снова делить обе части этого тождества, и, в частности
х2 —Зх + 4|28;
пусть k(x2 — Зх + 4) = 28, где k — целое число. Модуль ипро- изведение = константа" играет здесь роль ключа для проверки значений 々 = ±1, ±2, ±4, ±7, 士 14, ±28. Программа выполняет решение 12 уравнений второй степени, соответствующих этим 12 возможным значениям 月,например
左=+14 дает х2 — Зх + 4 = 2, т. е. % = 1 и х = 2;
々 = +7 дает х2 — Зх = 0, т. е. х = 0 и х = 3.
Множество решений в целом представляет собой набор чисел 0, 1, 2, 3, 5. Но это еще не есть заключение, получаемое программой, которая знает, что пока получена только последовательность эквивалентных значений, а не последовательность необходимых условий. Для получения последних необходимо проверить, удовлетворяет ли каждое полученное решение исходному выражению. При проверке отсекается решение х = 3, и окончательными решениями задачи будут числа 0, 1, 2 и 5.
Пример 3. Найти все целые п, такие, что
2/= «(«+ 1).(I)
Здесь используется модуль "индукция”. Вначале он проверяет условие задачи (I) для случая п = 1:2— 1(1 + 1). Затем он делает в условии (I) подстановку (п + 1) вместо п, чтобы попытаться доказать, что оно не теряет силу при переходе от п к (п + 1). Отдельно взятый общий член ряда условия (I) порядка (п + 1) будет иметь вид
S2z + 2(n+l)? = (n+l)((n+l) + l). i=l
Используя теперь (I) в качестве правила переписывания, получим
n(n+l) + 2(n+l) = (.«+ 1)(п+2),
или, после сокращения (n + 1) в обеих частях этого равенства в силу того, что (n + 1) есть целое число, получаем тривиальное равенство
м + 2?=九 + 2.
Таким образом, первоначальная теорема доказана по индукции.
Несколько задач, решенных программой PARI
Найти а и й, такие, что а\Ь и а\ (Ь +1).
Доказать тождества:
2 ⑵ _ 1)2 = "(2" - 1)(2抬 + D,
Z 4(i+ l)« + 3)« + 5) =拉S+ l)(n2+ 13^ + 52) + 60%
nr2 (n + 1) (2n + 1) + &arn (n + 1) + 6na2 — 6 X (a + ir)2 = 0.
f % =3a + 2;
Пусть задана последовательность <„. n
(%+i = 3%+ 2.
Показать, что п-й член этой последовательности может быть записан как un — abn..
Решить относительно переменной z следующую систему уравнений:
2炉 + %у + 7 = 0,
p(100-g) + g(100-p) = 1978, .
/ + 8z = 3 + 2必
Для. каких значений х выражение (х2 + 8Ах — 3胪)делит без остатка выражение (4х4 + 35fex3 + 5^2х2 — 65尼з% -|- 21抬)? 6. Доказать конгруэнтность следующих выражений: (10々 + + 7)10+1 = 0(10), (6fe+ 1)・2б九十 1 + 1 = 0(3).
Показать что 5?" и 25п имеют одинаковые остатки при делении их на 7.•
Найти значение х, такое, что 5|4х?+ 1 и 13|4х2 + 1-
Доказать, что если р и 8р2 ——1 есть взаимно простые числа, то число 8P2 — 1 является составным.
Показать, что равенство р2 +(72 = ^2 + 52 + /2 не имеет решения в числах р, g, г, s, t, взаимно простых с числом 2 и превосходящих его.
Определить все целые п(п е /^), такие, что 6 чисел (п+1), (п + 3), (и+ 7), (п + 9), (п+ 13), (п+ 15) будут взаимно простыми.
Все программы, описанные выше, обеспечивали получение доказательства только уже предложенной теоремы или нахождение решения заданной задачи. Действия математика совсем другие: он не знает заранее теорем, которые он ищет, и он не имеет никакого априорного критерия остановки. Математика
ведет в поиске его "интуиция" или тот род знания высшего уровня, который позволяет ему одновременно и управлять своими поисками, и упрощать себе работу, опуская при поиске неинтересные детали. Иначе говоря, действия математика направляет некоторая метатеория.
Существуют программы, которые также эффективно используют метатеорию. Ниже описана первая среди них — программа Ж. Питра (1966 г.).
Программа Ж. Питра для исчисления высказываний
Иерархия метатеорий
Теорема представляет собой высказывание в некоторой формальной системе. Метатеорема является высказыванием о теоремах формальной системы и представляет двойной интерес.
Рис. 3.21. Дерево поиска (а) и линейный вывод (б).
С одной стороны, она позволяет сократить доказательства, избегая повторения классических промежуточных этапов и, более того, выполняя непосредственный переход от спуска по дереву (рис. 3.21, а). С другой стороны, метатеорема позволяет осуществить наилучший глобальный обзор поиска и сконцентрировать внимание на наиболее важных направлениях, не загружая память несущественными результатами.
Манипуляции с мататеоремами могут осуществляться с помощью формальной системы второго по отношению к исходному уровня. При этом необходимо использовать обозначения, отличающиеся от обозначений исходной системы для новых операторов. Так, модус поненс является правилом вывода, которое позволяет порождать теоремы и, следовательно, является также. метатеоремой. Эта метатеорема может быть записана следующим образом:
Р, pnqfq,
т. е. если р есть теорема и если р^ q есть теорема, то n g является теоремой. Здесь запятая и стрелка являются соответствующими аналогами в метаязыке для символов 'А и гэ и языка исходной системы.
Метатеоремы могут быть доказны в рамках исходной формальной системы. Так, мы уже доказали выше, что 片 исчислении высказываний из всякой теоремы вида
Pn(QnA)
можно вывести (используя правило модус поненс и подстановки) новую теорему
Q n (Р О К).
Этот результат, являющийся метатеоремой в исчислении высказываний и записываемый в виде
Р n (Q => R) f Q n (Р n R), применим ко многим выражениям исчисления высказываний. Отметим, что удобным средством для создания метатеорем является использование в этих целях мета-метатеорем.
Например, высказывание "если из а можно вывести b и если из b можно вывести с, то можно вывести с из а" является мета-метатеоремой, которая выражает транзитивность дедукции. (Это свойство является очень ценным в фундаментальных теориях). Чтобы это отразить, в записи для импликации и конъюнкции в метаязыке будем использовать новые символы ; и О. Тогда предыдущая мета-метатеорема о транзитивности дедукции' запишется следующим образом:
a f b; bс О ас.
Вполне логично для таких порождающих мета-метатеорем, широко используемых математиками, создать некую общую программу. К сожалению, существуют важные мета-метатеоре* мн, применяемые только в какой-то данной формальной системе. Так, например, мета-метатеорема
、pnqapfq
не является теоремой во всех формальных логических теориях. Действительно, нужно внести особый оператор самого языка —— символ zd, который не обязательно существует во всех теориях.
В общем случае все мета-метатеоремы, в которых фигурируют операторы исходной формальной системы, являются узко специальными. Необходимо, следовательно, создать какое-то средство для доказательства мета-метатеорем. Для этого определяют мета-мета-метатеорию. На этом уровне достигается уже такая степень общности, которая сегодня достаточна для всех областей математики. Таким образом, выражение "Если
а,匕一> с является метатеоремой, то аО-> Ь-> с является мета- метатеоремой" представляет собой мета-мета-метатеорему универсальной пригодности.
Метатеории рассматриваемой программы
Программа Ж. Питра работает в различных аксиоматиках исчисления высказываний. Она использует восемь мета-метатеорем, приведенных ниже:
а, 6 —> с О-> 6, а f са, а->Ь О> а -> Ъи -> а О'-> аи, а f b 3 a f bа; аb О > bа —b; b -+ с a a f са—> b\ b, c—»do>。,с—>dOf b; c, df аО% df bа, 6 —> с О-> 6, а f са, а->Ь О> а -> Ъи -> а О'-> аи, а f b 3 a f bа; аb О > bа —b; b -+ с a a f са—> b\ b, c—»do>。,с—>dOf b; c, df аО% df b(коммутативность антецедентов)
а, 6 —> с О-> 6, а f с
а, а->Ь О> а -> Ъ
и -> а О'-> а
и, а f b 3 a f b
а; аb О > b
а —b; b -+ с a a f с
а—> b\ b, c—»do>。,с—>d
Of b; c, df аО% df b
а, 6 —> с О-> 6, а f с
а, а->Ь О> а -> Ъ
и -> а О'-> а
и, а f b 3 a f b
а; аb О > b
а —b; b -+ с a a f с
а—> b\ b, c—»do>。,с—>d
Of b; c, df аО% df b
(упрощение)
(где V ——переменная, не фигурирующая в а)
(где v — переменная, не фигурирующая в а) (модус поненс метатеории) (транзитивность дедукции, 1-я форма)
(транзитивность дедукции, 2-я форма)
(транзитивность дедукции, 3-я форма)
Эти мета-метатеоремы используются математиками. Чтобы
иметь возможность доказывать другие мета-метатеоремы, программа содержит (《знает》) пять мета-мета-метатеорем. В них символ ! обозначает конъюнкцию, а символ 0-0 дедукцию (вывод) в мета-мета-метаязыке. Ниже приведены эти мета- мета-метатеоремы ((МММ) -теоремы);
а, b —а с О-О-> аО^Ь-> с
a, bf с О-С>> и f а О》〃 b f с
(переменная и не фигурирует ни в а, ни в Ь, ни в с)
а, b —> г О-О~> с f V О> а, b -> 〃-
л! ао-> b сО-О> b-^c
а —》b! а —> b о> с, d > еО-О* с, d —> е
На рис. 3.22 приведены обозначения операторов конъюнкции (И) и импликации в языках различного уровня.
Приведенные выше выражения дают возможность быстро получить важные результаты в уже знакомых нам формальных системах. Они также используются в программе в ходе работы алгоритма унификации, который приводит к совпадению различных (мета)*-теорем с соответствующими частями выражений.
Язык
М~язык
ММ~яз1ик
МММ-язык
И
А
/
1
П
о- о*-
Рис. 3;22. Обозначения логических операторов в языках различного уровня.
приведенных выше. Так, например, когда в какой-то специальной теории доказана формула
р, L р А 夕,
то третья МММ-теорема позволит нам вывести из нее следующую мета-метатеорему:
(р А …г)8(Р,« — г)・
Чтобы программа могла создавать что-то новое, необходимо решить две фундаментальные проблемы:
Как отбирать интересные результаты?
Как выбирать контрольные задачи для испытания программы?
Отбор результатов
При использовании мета-, мета-мета- и мета-мета-метатеорем программа сталкивается с проблемой комбинаторного взрыва, связанного с необходимостью хранения большого количества информации. Для устранения этого недостатка были запрограммированы три общие идеи:
выражение считается тем более интересным, чем меньше символов оно содержит;
продукция считается тем более интересной, чем ближе антецедент к консеквенту (напомним, что продукция — это порождающее правило, т. е. (мета) *-теорема с одним или несколькими антецендентами);
лучше затратить время на отбор выражений для архива, чем терять его в бесполезных проверках выражений.
Продукции обрабатываются особенно просто. Необходимо принимать строгие меры, чтобы Не хранить много различных версий некоторой наиболее общей ‘формы, не производить за счет транзитивности дубликатов уже известных результатов. Например, если уже получено, что ctfb и bf с, то не нужно хранить в памяти выражение а->с, так как программа сама легко получит этот результат. В противоположность этому результаты, полученные при использовании продукций (которые
дают простой результат после значительно более сложных расчетов), всегда сохраняются.
Полезность какой-либо продукции оценивается в зависимости от того, что уже порождено, и тех выражений, которые могут быть еще произведены. Надо отметить, что результаты, которые могли быть отвергнуты вначале, затем сохраняются и аналогично результаты, отвергнутые как бесперспективные в одной системе, могут быть оценены как интересные в другой. Программа заносит в архив только наиболее простые продукции в данный момент, т. е. те продукции, которые содержат наибольшее число операторов и пропозициональных переменных.
Случай с теоремами является более сложным, так как если продукции уже по их определению состоят из антецедентов и консеквента, что позволяет легко производить сопоставление, то теоремы содержат лишь последовательности символов данного языка. Реальная полезность теоремы заключается в том, что она связана с возможными интерпретациями данной формальной системы. Поэтому связи между языком и метаязыком, возникающие в процессе проверки продукций какой-либо теоремы, рассматриваются только с этой точки зрения.
3.9.3. Выбор контрольных задач для испытания программы
При отборе и проверке результатов программа работает следующим образом. Вначале рассматривается результат, считающийся наиболее существенным. Ниже приводится описание последовательности рассмотрения этих результатов. Если это теорема, к ней применяются все продукции, у которых антецедент упрощает результат (т. е. увеличивает его полезность). Если рассматривается продукция, которая упрощает исходное выражение, ее применяют ко всем хранящимся в архиве программы теоремам и ко всем продукциям, которые усложняют исходные выражения, используя их в качестве антецедентов. Если это продукция, которая усложняет исходное выражение, она применяется к упрощающим продукциям, так же как и к продукциям с несколькими антецедентами. Выполняются не все возможные испытания и проверки продукций и теорем. Это связано с тем, что программа хранит наряду с каждым таким выражением комбинации, в которых оно уже участвовало. Поэтому такие операции не повторяются.
Из сказанного выше видно, что, несмотря на значительный объем проводимых испытаний, машинное время и память, занимаемая при этом, остаются в приемлемых пределах, так как не все результаты хранятся в памяти.
Результаты
Программа работает с шестью формальными теориями, построенными Расселом, Лукасевичем, Гильбертом, Бернеем и Шеффером, Она отыскивает все основные теоремы, причем иногда дает для них оригинальные доказательства. При этом используются все заданные метауровни. Программа умеет работать и на уровне предположений: ей задается конкретное выражение и требуется его доказать. Используемые программой стратегии в этом случае мало отличаются от обычных. Она просто инвертирует свои продукции, чтобы перейти от предположения к аксиомам. Во всяком случае, программа преуспела в том, что смогла сама доказать некоторые теоремы, которые ее создатель не смог доказать. Приведем беспристрастное суждение об этом самого Лукасевича: “Нужно быть очень опытным и искусным в построении логических доказательств, чтобы суметь еывести из трех аксиом логики закон коммутативности (р n (g п г)) n (g п (р п г)) или даже закон упрощения pn(qnp)". Программа Ж- Питра эффективно доказывает оба этих утверждения в рассматриваемой аксиоматике.
Пример доказательства
Аксиомы: 71: (р n (д ±> г)) n ((р n g) п (р => г))、
Т2: pn(qnp)'
ТЗ: (1「g) n (g п р)
Продукция. Ml: р, (p:og)f q.
Продукция Ml вначале порождает две \1ета-метатеоремы благодаря МММ-теоремам, которыми располагает сама программа. Для удобства мы будем использовать при доказательстве форму нотации, принятую в программе (префиксную польскую запись), только лишь для теорем. Программа получает следующие первые результаты:
п pq р f q ММ 1 из Ml и I
pf = qr8p, g->г ММ2 из 附1 и II
Например, ММ2 выводится из мета-мета-метатеоремы II и из Ml с использованием подстановки р z? ^ для а, р для b в q для с, где запятая употребляется в том смысле, как она используется в мета-метатеореме I программы. Таким образом, получаем
(с n pg) О> ®, р — q)
или р-> ^rOp, <7->г, что дает Л1Л42.
Рассмотрим теперь часть порождающего дерева, которое приводит нас в данном случае к интересной теореме:
Таблица 3.6. Доказательство теоремы ( ] р n р) п р
T2+ММ1
ТЗ+ММ1
T1+ММ1
М44-ММ2
p + nqp
М2
nlpldf n 4P
М3
n p n qr f n n pq n pr
M4
n pnqr, n pq-> pr
M5
2 2^ т т м
6 м м + + +
ТЗ
+ММ5
Т2
+ММ4
М4
+М9
Т4
+М10
Т5
+М4
Тб
+ММ1
Тб
+ММ5
Т1
+М9
Т7
+ММ1
Т7
+М10
Т8
+ММ1
Т2
+М14
T9
+ММ5
Т_1
+М15
Т10
+ММ4
ТЗ
+М9
Т11
+ММ4
М14
+М17
М18
+М8
М19
+М11
Т4
+М20
Т12
+МЗ
Т13
+М13
Т14
+М8
Т15
+М13
Т16
4-М12
Т17
+М16
Т18
+ММ1
Т以
+М21
Т19
+МЗ
Продукция M5 порождает ММ--теорему: n p n qr a n pq -> о pr n pq + n pp n PP
первый антецедент M5 n pg, > rp + n rq
ММ3
M6
T4
M7
Продукция M7 порождает ММ-теоремы:
MM4
n pq 8 n qr fn pr
npg anrpfnrq
MM5
npnlqlrfnpnrq -
M8
zd n pqr fnqr
M9
n p n qr ~> q n pr
MIO
T5
n pnn pqq
nn pn pqn pq
T6
n p n qq ->n pq
MU
npnqnqr + npnqr n npq n nrp ^rq . n pq ~>n n rp nrg
M12 T7 M13
nn pqnnqrn pr
T8
n pq ->n n qr n pr
M14
T9
П a n pqr n qr
n p n■口 qrs f n p n rs
M15
nnpnqrnqnpr
T10
n n p n qrs f n n q n prs
M16
n 1 p n pg
TH
n n pqr -> =31 pr
M17
npq + n'qn pr
M18
n 1 pg 6nl g =d rp
'M19
M20
T12
T13
n n pq n Pllq
T14
nnlpgnlqp
T15
nnpn1grnpn〕rg
T16
nnlpnlqpn〕pq
T17
n n]pn〕ggn]gp
T18
n 1 p n 1 qgn ] gp
M21
nlplnlpp
T19
n n [ppp
T20
(~|рпр卜:эр. Чтобы достичь этого результата только своими средствами (полностью автономно), программа строит 5 метаметатеорем, 21 метатеорему и 21 теорему, используя описанные выше процедуры. Отметим при этом важные результаты, полученные попутно в процессе общего доказательства,——это теоремы Т4, Т7, Т8, T9, Т11, Т12, Т13, Т15. Само доказательство теоремы в целом приведено в табл. 3.6. Другие теоремы, доказанные в данной аксиоматике и при других наборах аксиом, можно найти в работе (Pitrat, 1966).
ЗЛО. Принцип резолюции и язык Пролог
Принцип резолюции
В 1930 г. Эрбран в докторской диссертации по математике предложил оригинальный метод доказательства теорем в формальных системах первого порядка. Общая идея метода состоит в том, чтобы получить некоторое заключение С, исходя из гипотез Hl, Н2,Ям, т. е. чтобы доказать теорему Т ,
//1 Д //2 А …A Нп n С,
достаточно доказать противоречивость формулы F
//1 А Я2 А ... А//« А ПС,
в которой отрицание заключения добавлено к исходным гипотезам. Такое доказательство можёт быть существенно проще прямого вывода. Для доказательства противоречивости формулы F достаточно показать, что 尸 является не-тёоремой, так как в ней содержится подвыражение вида (р А П р). Эрбран предложил эффективный способ доказательства за конечное число подстановок в формулу F, когда исходное выражение Т является теоремой. Ниже эта проблема рассматривается более подробно.
Теорема Эрбрана
Доказательство противоречивости формулы F основывается )на использовании отрицания. Теорема Эрбрана гарантирует, -что существующее противоречие может быть всегда достигнуто за конечное число шагов, каковы бы ни были значения истинности, даваемые функциям, присутствующим в гипотезах и заключениях.
Теперь приведем некоторые определения, которые потре- буются нам в дальнейшем.
紡 Ж,-Л. Лорьер
Для начала будем считать, что операции выполняются только над стандартными выражениями, представляющими собой дизъюнктивные формы С/, которые называются предложениями:
& n(厶I V厶,2 V • -. V厶人).
Формула F представляет собой конъюнкцию предложений: р _ дс£. Ниже мы увидим, что подобная стандартизация всегда возможна для формул первого порядка. Входящие в предложения & литералы Ljk не содержат символов Д, V, В, йли п.
Пусть Е представляет собой множество предложений, Go ——множество констант, появляющихся в £, и для всякого натурального числа i множество G( представляет собой объединение множества и всех термов 也(九 /2)где fk — функция /п* аргументов-термов 力(/= 1, 2, ..., mQ из Gj Пусть
G(E)=QGi.
Множество G(E) по определению является универсумом Эрбрана множества Е. База Эрбрана 5(E) некоторого множества предложений Е представляет собой множество всех атомарных формул множества Е, т. е. таких формул, каждая из которых содержит либо не более одного предиката, либо отрицания предиката. Доказательство теоремы Эрбрана состоит в построении такого дерева Л над элементами В(Е), что
£ — корень дерева Л;
всякая вершина дерева 4 является подмножеством Е, случайным образом означенным;
всякий путь, исходящий из корня дерева, не может содержать одновременно р и ~1р, где р — какая-либо формула.
Ассоциировать (сопоставить) какое-то конкретное значение истинности с формулами, построенными над В(Е), означает просто выбрать какой-то конкретный путь на А. Противоречие выявляется, когда приведенное выше условие 3 уже не удовлетворяется. Теорема Эрбрана гарантирует, что это достигается всегда, когда Е невыполнимо (т. е. противоречиво). '
Теорема Эрбрана (1930 г.). Необходимым и достаточным условием того, чтобы множество предложений Е было невыполнимым, является существование конечного противоречивого множества полностью означенных подформул из Е.
Это множество может быть построено в виде дерева описан* ного выше типа с помощью простого метода, связанного со следующим фундаментальным результатом.
Теорема о резолюции. Пусть имеется формула F1 в стандартной форме представления
F1 =С! А С2 А ... А (р V Az) А ... Д (П Р V £;) А .. ■ А Ст>
и пусть имеется формула F2:
F2 = F1 A(〃 V 厶).
Тогда если формула F2 противоречива, то и формула 尸 1 также противоречива.
Доказательство. Для доказательства теоремы достаточно показать, что Fl f F2. Случай, когда Li = ср, является тривиальным, так как достаточно показать, что если Е2 = L; противоречиво, то
Е1=рЛПрУ Lj)
также противоречиво и Ck для k =/= f и h / j не влияют на результат. Для логики первого порядка выполняется тождество
(п Л V В) = (X =э В) и, следовательно,
?1еp а(рп 厶).
По правилу модус поненс и метатеореме р имеем q р /\ q : :£1 = Л;, что приводит к требуемому результату Fl -> F2,
В противном случае, когда Л;三屮,доказательство аналогично, если учесть, что р = П Пр:
El Е(р V 厶)Л Тр либо
Е1 三(Г [ р V 厶)А F р =(】Р п 厶)А Г Р
и, следовательно, снова £1 = Az и 尸 1 т 尸2.
В общем случае Е1 имеет вид
Е1^(рУ Ц) ЛОрУ L^
и, как и в предыдущем случае, получаем,
т pY 匕「飞*二 р н ~\pY JfpnL 卜
Следовательно,
El =(一)厶 n p) а (р п 4).
Используя теорему (а 二> §) Л (b n с)->а п с, получаем
Е1->-],п%
либо.
£1 f厶V厶
и, следовательно, Л1 F2.
Таким образом, формула F2 выводима из формулы F1 и предложение L( V L; нового не добавляет, так как если F2 про^ тиворечиво, то противоречиво и 尸 1. Более того, процесс последовательных ирезолюцийп, установленный таким образом, является полным, т. е. если формула Е противоречива, то резолюция докажет это противоречие за конечное число шагов, что как раз и гарантирует теорема Эрбрана.■.
Предложения & = (р V L) и & = (Пр V £;•) называются родительскими предложениями к предложению, называемому резольвентой /“ V /,『. Разумеется, если предложения С( и С/ содержат переменные, что в общем случае имеет место в логике первого порядка, то с помощью процедуры унификации может быть найден общий литерал р. Несколько унификаций могут дать этот литерал как дерево формул, которое нужно построить, чтобы получить доказательство, т. е. противоречие.
Примеры резолюций
Исчисление высказываний. Пусть формула
F1 ^ q s Д б/ Д (р V П q) А (П Р V s).
из четырех предложений представлена в виде следующей конъюнкции: Cl A С2 Л СЗ A С4. Первая резолюция между С1 и С4 приводит к резольвенте С5 曰 Пр. Вторая резолюция между С2 и СЗ дает С6 = р. Это предложение С6, унифицированное с предложением С5( дает пустую резольвенту: следовательно исходная формула F1 является противоречивой. Иначе геворя, мы только что установили, добавив резольвенты к гипотезам, следующую теорему:■
q 八 S V I")/Ш р V s) n s・
! Логика первого порядка. Пусть даны 尤,у, г, /, v ——пять переменных, а, 6 н с — три константы, Р, Q и R — три каких-то предиката и следующее выражение 尸1:
F1eP(x, у)八 QC)八 R®)八(口 Р@ 之)VTQ(6) V HQ (с)).
Унификация дает три подстановки и три возможные резольвенты, исходя из F1:
S = {х/д, y/z} дает 尸2 = 口 Q (b) V Т Q (с),
S,= {〃力} дает р2 = Т Р (а,之)V 口 Q (с),
S^={t/c} дает *2 =[尸@ 之)VTQ®.
В этом случае доказательство будет также завершено, когда Lj и 厶j окажутся пустыми, т. е. когда внутреннее противоречие возникает при построении резольвенты. В данном случае это относится к ^2 и второму предложению в FL Подстановка S'〃 = {f/b} дает 尸3 = TQ(c), т. е. снова то же предложение, a S〃〃 = {方/с} — резольвента и F4 = (пустое предложение). Таким образом, F1 было противоречиво.
Практическая организация доказательств
по принципу Эрбрана
Если все предложения представлены в стандартной форме, т. е. в виде конъюнкций, то использование знака А становится лишним. Для порождения дерева достаточно хранить эти предложения, записанные непосредственно друг за другом. Во время выполнения резолюции предложение-резольвента добавляется к уже имеющимся (без изменения предшествующих предложений) так, чтобы сохранялись другие возможности подстановок, как это показано ниже. После выполнения подстановки S в верхнюю часть всего набора предложений помещается элемент IQ(匕)V -|Q(c).
Каждое предложение хранится в единственном экземпляре. Кроме того, если резольвента С1 является менее общей, чем предложение С2, уже имеющееся в хранимом наборе, то она не сохраняется, т. е. если существует подстановка S, такая, что S-C2 = С1, то С1 отбрасывается. Таким является случай, когда Cl = Q(a), a C2 = Q(f)・ Порядок расположения предложений в наборе при их хранении не является существенным в силу коммутативности оператора А.
Число литералов в какой-то конкретной резольвенте равно сумме литералов в предложениях, предшествующих ей (предложениях-предках) ,уменьшенной на две единицы. Таким образом, оно возрастает, за исключением тех случаев, когда одно из двух родительских предложений имеет не более двух литералов. Противоречие обнаруживается в конце концов с помощью двух унитарных родительских предложений, т. е. предложений с единственным литералом.
■ Приведение к нормальной конъюнктивной форме
Необходимо показать теперь, каким образом любое выражение логики первого порядка может б^ть преобразовано в конъюнктивную нормальную форму. Алгоритм такого преобразования состоит из шести основных этапов.
Приведение к ffпренексной^ форме. На этом этапе переводятся в головную часть все кванторы. При этой операции
необходимо сохранять порядок следования кванторов, так как коммутативность отсутствует. Боле того, квантифицированные переменные переименовываются в случайном порядке в соответствии со следующими теоремами:
(Q1 х) 4 (х) * (Q2 %) В (х) f (QI х) (Q2 у) (Л “) * 8 ")),
где Qi — означает либо V, либо В и * означает либо V, либо А. Аналогичным образом
(Vx) [Р (х] о (Эх) Q (%)] - (Vx) [Р (х) n Gy) Q (//)].
Например, если исходная формула Е имела вид
(Vx) (Р (х) =)((3^) (Р・® V Т R @ %, у)) n (V z) (1 S (у, г)))), то после этого этапа она принимает следующую форму:
(V%)曰幻(Yz) (Р (%) =)((Р О/) V П R (а, X, г/)) => (П S (у, z)))).
Удаление кванторов существования. Эта идея принадлежит математику Сколему (1927 г.). Она связана с тем, что всякая переменная, на которую распределяется действие квантора существования, в действительности является функцией переменных, на которые распространяется действие квантора всеобщности. Каждая из них в процессе сколемизации замещается новой функцией. Выражение Е в этом случае при у — f(x) принимает следующий
(Vx) (Уг) (Р(х) ^ ((Р(/(х)) V П /?(а,居 fG)))n(】S(f (x), %)))).
Удаление кванторов всеобщности. Теперь все -переменные, которые имеются, подвержены действию кванторов всеобщности. Кванторы можно опустить и выражение Е записывается следующим образом:
(Р (х) n ((Р (f (х)) V 口 R @ 居 f (х))) 口 (~1 S (f (%), z)))i
Если к этому моменту еще остаются кванторы существования, они находятся в головной части выражения и могут быть устранены аналогично предыдущему.
Удаление символов п и Здесь используются 2 теоремы:
4 —> В 2 (4 п В)八(В п 4),
А^ В^(^\А \/ В),
которые применяются столько раз, сколько необходимо. Наша формула в этом случае приобретает вид.
(】Р (%) V (Т (尸(f W) V F R (а, %, f (%))) VIS (〃%),之)))• Используются только три оператора: V, А, ~1.
Уменьшение радиуса действия отрицаний: Теоремы
-!(4V8)f " 八「8)「(4 八 8и4 V15)
позволяют распространять действие оператора отрицания только на одиночные предикаты. Выражение Е имеет вид
ПР(х)у (a P(f(x)) ля (а, X, "(х))) V」S(f(x),喇).
Перевод выражения в конъюнктивную форму. Этот этап предназначен для приведения формул к следующему виду:
e1 八 e2八…八a八…八e他
где предложения С7 содержат уже только связки V и ~1. Для этого используются теоремы дистрибутивности
Д V(SVC)^(X VB)A(XVC)
(А Л В) V С-(/ V С) А (6 V С).
Теперь выражение Е записывается следующим образом: (1Р(Х)У ((-}P(f(x)) V 1S(fM, z)) л,
А(/?(а, X, fW) V-lS(fU), г)))).
И наконец, получим
(1P(x)V (^]P(f (х)) V 1 s (f (%), г))) A
Л (1 Р(х) V R3, х, f (%)) V □ S(f (%), г))..…
В результате использования метода резолюции после удаления скобок, которые не имеют смысла в дизъюнктивных выражениях, набор предложений приобретает следующий вид
□ P(x)VR(Q, x,/W)V1S(/(x), z),
口戶 a)V】P(f(%))V「S(f(%),2)・
Необходимо отметить, что отдельные этапы в описанном выше алгоритме могут быть выполнены и в другой последовательности, чем это представлено в алгоритме. Например, кванторы могут удаляться в последнюю очередь.
Первым реализовал на ЭВМ идеи Ж. Эрбрана Дж. Робинсон в 1963 г.
Примеры доказательств с помощью принципа Эрбрана
Приведем полное доказательство, которое могло бы быть получено программной системой Робинсона. Допустим, что мы хотели бы доказать утверждение: "кисть является частью человекап. Для этого нам придется использовать понятия
бинарного предиката А и его свойства транзитивности. Запись А (х, у) означает, что х является частью у, а свойство транзитивности предиката представляется выражением Л-(х, у) Л А (у, z)n zd А (х, z). Последнее выражение может быть представлено в виде следующей дизъюнктивной нормальной формы, в которой используются обозначения, принятые в языке программирования Пролог:
—4(%, у) V — А (у, 2)V + А (%, г),
где в дальнейшем ——Р заменяет последовательность символов ПР, а +Р ——символ Р для всякого предиката Р, что позволяет избежать символов V в предложениях.
В гипотезах в нашем примере используются четыре константы т, Ь,力 九,обозначающие соответственно (<кисть°, (<ру- ка", “тело”,“человек”. Итак, в нашем случае к гипотезам А (т, 6), Л (6, /), A (Z, h) добавляется отрицание заключения: —А (/и, Л). Таким образом, программа работает с пятью предложениями, неявно объединенными с помощью операции Д:
ClС2СЗС4С5ClС2СЗС4С5—Л (х, у) — А (у, 2)+ Л (х, 2)
Cl
С2
СЗ
С4
С5
Cl
С2
СЗ
С4
С5
+ 4 (也 b)
+ 4(6, О
+ Л (/, Л)
—/ (m, /г)
Мы дадим здесь те резолюции, которые позволяют наиболее быстро прийти к противоречию. (Найденное собственно программой эффективное дерево решения содержало на самом деле другие предложения и другие пути.) Итак, при решении за- дачи последовательно выполняются следующие резолюции:
Родительские предложения с номерамиПодстановки
унифицированных литералов
Резольвента
С5 + С1-3{х/m, z/h]
С6 + С2{у/Ь}
C7-FC1 -3{х/&, г/Л}
С8 • 1 + СЗ{y/t}
С9 + С4屮
С6 — 4 (т, у) — А ® h)
С7 — 4(b, h)
С8 — Л (b, у) — Л (у,九)
С9 — 4 (/, Л)
С10 □
Последняя резолюция в качестве результата имеет пустое предложение, что означает получение противоречия, и, следо- вательно, в данной системе аксиом теорема Л (т, Л) доказана.
Рассмотрим теперь более сложный пример использования метода резолюции.
Пример. Если в какой-то группе квадрат любого ее элемента равен нейтральному элементу группы, такая группа является коммутативной.
Для описания того факта, что некоторая композиция двух элементов данной группы по определенному закону приравнивается к третьему элементу этой группы, используется предикат /:
/ (х ", 2), если и только если к, у — г.
Свойства нейтрального элемента группы е записываются следующим образом:
— + / (е, х, х) и +/(%, е, х).
Очевидно, что обе переменные % здесь являются независимыми, так как квантифицированы раздельно. Мы их будем записывать последовательно в виде х1 и х2, чтобы не произошло путаницы в процессе унификации. Напомним, что еще до выполнения унификации и, следовательно, начала любой резолюции необходимо различным образом переобозначить переменные, которые первоначально были квантифицированы независимо в предложениях. Этот процесс называется разделением переменных.
Если i(g) обозначает сколемовскую функцию, которая дает инверсное значение какого-то элемента у、то мы имеем
+ /g(y), У, e) и +/з,,匂),e),
но здесь также обе переменные у являются независимыми и их следует разделить.
Теперь нам необходимо выразить ассоциативность правила о среднем члене пропорции в соответствующих обозначениях. Это выполняется в два этапа. Вначале рассмотрим ассоциативность слева
х 3) (ху) z.(AG)
Располагая единственным предикатом равенства /, необходимо использовать промежуточный переход. Пусть ху = и, yz = и и хи = w. — являются гипотезами, тогда выражение (4G) имеет следующий смысл: при наличии этих трех Гипотез имеется также и uz = w. Этому выражению эквивалентно предложение в дизъюнктивной нормальной форме
(XA5AC)^Z)^(nXvnBV"lCVZ)),
170170глава з
170
170
С5 + С7.1{хб/хЗ, у5/хЗ, 〃В/е}С8 + С10.1 СИЛ + С1 С9+С7.4{尤6/а, z/6/b, ьб/с} {w7/b}{хЬ/Ь, об/a,侬5/с}С5 + С13.1С14.2Т С1С15 + С6.4{хЗ/b, у8/6,我8/е},z9/cj{〃4/b, z4/c, з4/а}С12 + С16.1 С17.1 + С5 С18+ С2{xlO/a, д10/с} {%3/с, vU/e} {x2/a}С5 + С7.1{хб/хЗ, у5/хЗ, 〃В/е}С8 + С10.1 СИЛ + С1 С9+С7.4{尤6/а, z/6/b, ьб/с} {w7/b}{хЬ/Ь, об/a,侬5/с}С5 + С13.1С14.2Т С1С15 + С6.4{хЗ/b, у8/6,我8/е},z9/cj{〃4/b, z4/c, з4/а}С12 + С16.1 С17.1 + С5 С18+ С2{xlO/a, д10/с} {%3/с, vU/e} {x2/a}оо12 3 4 5 6*1 11 11 и J 11 ссс ссс12 3 4 5 6*1 11 11 и J 11 ссс ссс7 8 9^007 8 9^00-/ (%6,之6, f6)--/ 3 26,切 6) ++ / (хб, иб,切6)—/ (e, b,切7) + / (a, c, w7)+ / (a,% b)-—/ (&, y8, u8)—-/ k8, г8, a)--/ ("8,之8, e)—/ (瓦 з9, о) — / (e, n9, с)—I (b, c, a)—八幻0, ylO, b)—-/(“0, c, rlO) 一—Z (xlO, ulO, a)—/ (c, c, ull) — / (a, ull, a)-/ (%6,之6, f6)--/ 3 26,切 6) ++ / (хб, иб,切6)—/ (e, b,切7) + / (a, c, w7)+ / (a,% b)-—/ (&, y8, u8)—-/ k8, г8, a)--/ ("8,之8, e)—/ (瓦 з9, о) — / (e, n9, с)—I (b, c, a)—八幻0, ylO, b)—-/(“0, c, rlO) 一—Z (xlO, ulO, a)—/ (c, c, ull) — / (a, ull, a)
С5 + С7.1
{хб/хЗ, у5/хЗ, 〃В/е}
С8 + С10.1 СИЛ + С1 С9+С7.4
{尤6/а, z/6/b, ьб/с} {w7/b}
{хЬ/Ь, об/a,侬5/с}
С5 + С13.1
С14.2Т С1
С15 + С6.4
{хЗ/b, у8/6,我8/е}
,z9/cj
{〃4/b, z4/c, з4/а}
С12 + С16.1 С17.1 + С5 С18+ С2
{xlO/a, д10/с} {%3/с, vU/e} {x2/a}
С5 + С7.1
{хб/хЗ, у5/хЗ, 〃В/е}
С8 + С10.1 СИЛ + С1 С9+С7.4
{尤6/а, z/6/b, ьб/с} {w7/b}
{хЬ/Ь, об/a,侬5/с}
С5 + С13.1
С14.2Т С1
С15 + С6.4
{хЗ/b, у8/6,我8/е}
,z9/cj
{〃4/b, z4/c, з4/а}
С12 + С16.1 С17.1 + С5 С18+ С2
{xlO/a, д10/с} {%3/с, vU/e} {x2/a}
о
о
12 3 4 5 6
*1 11 11 и J 11 ссс ссс
12 3 4 5 6
*1 11 11 и J 11 ссс ссс
7 8 9^00
7 8 9^00
-/ (%6,之6, f6)-
-/ 3 26,切 6) +
+ / (хб, иб,切6)
—/ (e, b,切7) + / (a, c, w7)
+ / (a,% b)-
—/ (&, y8, u8)—
-/ k8, г8, a)-
-/ ("8,之8, e)
—/ (瓦 з9, о) — / (e, n9, с)
—I (b, c, a)
—八幻0, ylO, b)—
-/(“0, c, rlO) 一
—Z (xlO, ulO, a)
—/ (c, c, ull) — / (a, ull, a)
-/ (%6,之6, f6)-
-/ 3 26,切 6) +
+ / (хб, иб,切6)
—/ (e, b,切7) + / (a, c, w7)
+ / (a,% b)-
—/ (&, y8, u8)—
-/ k8, г8, a)-
-/ ("8,之8, e)
—/ (瓦 з9, о) — / (e, n9, с)
—I (b, c, a)
—八幻0, ylO, b)—
-/(“0, c, rlO) 一
—Z (xlO, ulO, a)
—/ (c, c, ull) — / (a, ull, a)
Cl
+ / (е, xl, %1)
С2
+ / (х2,伉 %2)
СЗ
+ / 3 (贝),у1, e)
С4
+ / (学2, £ ①2), g)
С5
+ / (хЗ, %3, е)
С6
—/ (х4, у4,办4) — / (у4, z4, и4) — / (x4, u4,切4) + / (w4, z4.
С7
—/ (x5, “5, u5) — / (y5, z5, и5, — / («5,之5, a»5, + / (x5, u5,
С8
+ 八a,b, c)
С9
一 / 3,。,c)
Резольвенты
Подстановки
侬4)
侬5)
Родительские: предложения
Таблица 3.7. Доказательство коммутативности в группе, в которой V х х( х = е, методом Эрбрана или методом резолюции
что соответствует
—/ (居 У, 〃)一 / 匂,之,и) — / (х, и, w) + 7 (/ 2, ш). (AG) Аналогичным образом выводится и ассоциативность справа —/(х, у, и) —I (у, z, 〃)一 / (〃,乙切)+ / (х,力 ку). (AD)
Заданное свойство описывается выражением + /(х, х, е).
Наконец, отрицание заключения записывается в виде
(Vx) (v^) (V^)((切=z)二> ("=%)),
так как выражение
П(ЛОВ)^П("]ЛУВ)^П^ДДЯВ->ЛЛПВ
записывается в виде
(На) (36) (Зс) (ab = с)八(Ьа,с).
Элементы а, &, с рассматриваются как три константы. Доказательство должно привести к выводу о невозможности их существования. Это отрицание представляется в виде двух предложений
+ /@ Ь, с) и — I (6, а, с).
Общая схема доказательства методом резолюции приведена в табл. 3.7.
Анализ проведенных доказательств
Хотя приведенные доказательства не были вполне наглядными, тем не менее их легко перевести в обычную форму записи, начиная с заключения, например:
(Vy)tn^y ^ у^ 1г
b 重 h(рука не принадлежит человеку)
(Vy) b^y^y^h
/史儿Отсюда противоречие.
Множество других резолюций может быть выполнено, и много других путей ведет к пустому предложению. В общем случае выгодно иметь систему предложений с единственным предикатом, так как в этом случае увеличивается число возможных резолюций. Так, при рассмотрении второго доказательства можно обнаружить, что в конце концов оба предложения гипотез об инверсных i(x) не используются-, все этапы, содержащие резолюции с СЗ или С4, удалены. Программа, которая их не содержит, менее стеснена в выборе (например, необходимо более ста шагов, чтобы получить табл. 3.7). В доказательстве, отраженном в этой таблице, 'первым существенным этапом является этап С12, который утверждает, что наряду с гипотезами имеется и выражение ас = Ь. Этот результат представляет собой лемму, поскольку затем поиск вновь начинается в новом направлении, чтобы получить
С13: ((by = 〃)A (yz = a)) n (uz * с)
С16: ху = Ь^э х (ус) Фа
С17: а (сс) Ф а.
Это приводит к противоречию, так как сс = е.
Отметим, что умножение слева на с использовалось “ннтуии тнвно" в этой резолюции.
Стратегии
Важной проблемой, связанной с проблемой uкомбинаторного взрыва" числа резолюций, остается проблема соответствующего выбора предложений и литералов для унификации. Этот выбор должен выполняться так, чтобы пустое предложение достигалось наискорейшим образом. В данном случае также не имеется общего метода. На каждом этапе конкретный выбор зависит от текущего контекста задачи. Однако некоторые стратегии выбора вне зависимости от текущего состояния процесса решения задачи, приводящие к ограничению числа возможных резолюций, все же разработаны. Пользуясь ими, важно не потерять полноты метода, т. е. гарантию получения хотя бы каким-то одним способом необходимого доказательства. Ниже мы приведем несколько таких стратегий.
Стратегия унитарности. Одно из родительских предложений должно всегда иметь единственный литерал. Эта стратегия очевидно не является полной, так как если набор предложений не содержит предложения с единственным литералом, то работа программы заканчивается. Приведенные выше доказательства могли быть получены с помощью этой стратегии.
Стратегия исходных данных. В этом случае одно из предложений является одной из гипотез или отрицанием заключения. Данная стратегия была использована в первом примере доказательства методом резолюции.
Стратегия поддержки. Используются одно из родительских предложений и доказываемое заключение или одно из предложений, вытекающих из них. Систематически удаляются от результата резолюции, двигаясь от него в обратном направлении и пытаясь подняться по дереву решения к гипотезам, запрещая всякую резолюцию вне. исходной системы. Эта стратегия является полной, но очень длинной, так как она опирается на структуру, которая не всегда является эффективной.
Линейная стратегия. Одно из предложений является предложением предшествующей резольвенты, а другое — одним из ее “предков" или исходным предложением. Эта стратегия (улучшенный вариант стратегии исходных данных) является полной и одной из наиболее эффективных.
В литературе встречаются и другие стратегии. Следует отметить, что пересечение любых двух из описанных выше стратегий приводит к более ограниченному варианту, в частности результирующая стратегия может быть неполной, хотя исходные стратегии и были полными.
Теперь остается рассмотреть проблему выбора литералов. Они обычно выбираются вне родительских предложений, когда
возможны многочисленные унификации. В общем случае литералы задаются заранее и программы выбирают из них первую же пару, использование которой приводит к успешному результату. Когда нумерация литералов передана от «родителей» к резольвенте, получают стратегию, называемую стратегией замка (лок-стратегия), которая является полной и эффективной.
Преимущества и ограничения метода резолюции
Метод доказательства, основанный на принципе резолюции, представляет интерес, так как является систематическим. Большое число публикаций, трактующих вопросы ^автоматического доказательства*1, посвящено методу резолюции начиная со времени появления работ Эрбрана и реализации этой идеи Робинсоном в 1965 г. Невозможность определить эффективную стратегию решения для всех областей приложения приводит к следующему выводу: для заданного набора предложений либо доказательство получается очень быстро на ЭВМ, либо оно не получается вовсе. Однако эффективность программ резко падает с увеличением числа предложений. Проблема заключается в том, чтобы определить тот момент, когда надо остановить программу, поскольку при этом существуют две опасности: во-первых, взрывное увеличение числа предложений, а во-вторых, возможность преждевременного прекращения работы перед самым моментом получения решения.
Практическая значимость и оригинальность метода резолюции определяются его двумя свойствами, описанными ниже.
Управление движением по дереву И-ИЛИ, обычно необходимое при всяком доказательстве, в данном случае отсутствует. Эту функцию выполняет стандартизованный набор предложений, причем может быть определена очень простая процедура обработки ''выбор + унификация"'.
Гипотезы, предположение и промежуточные предложения играют здесь одну и ту же роль. Доказательства получаются при одновременном движении в двух направлениях: от гипотез к заключениям и от заключений к гипотезам, причем доказательство достигается, когда оба эти пути просмотра встречаются друг с другом (рис. 3.23)・
Существенным недостатком метода является то, что уже по построению он предназначен только для доказательства теорем. Он не пригоден для того, чтобы изобретать или придумывать некоторые предложения, а затем уже доказывать их, как это обычно делает математик. К тому же, если предположение не является теоремой, резолюция может привести к построению бесконечного дерева решения. Таким образом, метод резолюции
интересен благодаря простоте и систематичности, но, к сожалению, применим только для ограниченного числа случаев (доказа-
Рис. 3.23. Схема получения доказательства методом резолюции.
тельство не должно иметь большую глубину, а число потенциальных резолюций не должно быть большим).
Язык Пролог и применение метода резолюции
Начиная с 1972 г. А. Кольмрауер разрабатывал со своей группой сотрудников в г. Марселе систему автоматического доказательства, построенную на базе логики первого порядка и методе Эрбрана ——Робинсона. Для задания какой-либо задачи системе в терминах предикатов пользователь системы применял язык Пролог, причем система автоматически выдавала ответ (если он существовал), используя для этого унификацию и метод резолюции. Таким образом, Пролог может рассматриваться как декларативный язык, где единственными входными данными является формальное определение задачи. Так как пользователь заинтересован в эффективном решении своей задачи, то для него важно получение этого решения в явном виде и с этой точки зрения доказательство, основанное на опровержении специальным образом сконструированного предложения, получаемого методом резолюции, не является для него достаточным. Поэтому в 1969 г. для устранения этого недостатка Грин предложил ввести в исходный набор предложений "ответный" предикат, связанный с заключением:
~| заключение (%)V вывод (х), либо заключение (х) А вывод (х),
чтобы -система обеспечивала решение в явном виде и выдавала х пользователю. Покажем теперь на примере, что дает использование языка Пролог.
Предположим, что требуется произвести вызов некоторого лица по телефону. Наши данные будут представлены в виде четырех предикатов Т, V, А и JJ(p,九),т. е. надо соединить по телефону лицо Р по номеру телефона п, А (х, /). Лицо % находится в месте /, Т (/, т), причем место / имеет номер телефона 俏. Предположим, что Пьер хочет навестить своего друга Жана.
Тогда V(yt 2) означает, что лицо у посетило лицо z. Следовательно, мы имеем для начальной точки, что V = V (Пьер, Жан).
Теперь следует отразить полезные свойства используемых предикатов: если р посетило г и если z находится в е, то, следовательно, у также в е (предложение С2). Если Р находится в / и если / имеет номер телефона п, можно соединить по телефону Р с номером п (предложение. С1).
В языке Пролог знаки V не используются внутри предложений, а отрицания, как обычно, обозначаются знаком —. Пролог автоматически производит разделение переменных в ходе последовательных резолюций. Все предложения, относящиеся к одному и тому же заключению (и, следовательно, соединенные знаком +), должны следовать друг за другом. Пролог позволяет использовать только предложения хорновского типа, т. е. такие предложения, которые содержат по крайней мере один положительный литерал, причем он должен находиться во главе предложения. Приведенная ниже система предложений полностью удовлетворяет этим требованиям:
Cl: +J(居 ги) —力(%, 0-7(/, /и),
С2: + A (y, e) — V (у, г) —A(z, е),
СЗ: + Л (Жан, контора — Жан)
С4: I У (Пьер, Жан)
С5: + Г (контора — Жан, 46-54-32-10).
С6: —/(Пьер, и) —- вывод (п)!
Обработав эти предложения, Пролог непосредственно дает ответ 4654-32-10.
Приводимые ниже резолюции понятны пользователю. В них используется стратегия поддержки и замка. Пролог развертывает исследуемое дерево вначале в глубину, выделяя единственное отрицательное предложение. Остальные предложения обрабатываются в их естественном порядке. Литералы систематически исследуются, начиная слева направо. Для новой резолюции предпочтительно используется последняя полученная резольвента:
С6 + CL3 {х/Пьер, т/п}С7.1 +С2 {g/Пьер, е//}С8.1 + С4 {z/Жан}СЭЛ + СЗ {//контора — Жан}С10+ С5 {«/46-54-32-10}С6 + CL3 {х/Пьер, т/п}С7.1 +С2 {g/Пьер, е//}С8.1 + С4 {z/Жан}СЭЛ + СЗ {//контора — Жан}С10+ С5 {«/46-54-32-10}С7: — А (Пьер, /) — Г (/, л) — вывод (п) С8: - V (Пьер, 2)-4 ⑵ /) 一 Т (/, п) 一 —вывод (п)
С6 + CL3 {х/Пьер, т/п}
С7.1 +С2 {g/Пьер, е//}
С8.1 + С4 {z/Жан}
СЭЛ + СЗ {//контора — Жан}
С10+ С5 {«/46-54-32-10}
С6 + CL3 {х/Пьер, т/п}
С7.1 +С2 {g/Пьер, е//}
С8.1 + С4 {z/Жан}
СЭЛ + СЗ {//контора — Жан}
С10+ С5 {«/46-54-32-10}
С9: — Л (Жан, /) — Г (/, п) — вывод (п) СЮ:——Т (контора — Жан, %)——вывод (п) СП:-вывод (46-54-32-10)
Выходной предикат становится здесь единственным литералом, причем ответ печатается системой.
Ответ, выдаваемый Прологом, может быть не только константой, но и формальной переменной, как, например, в следующем случае: если 尤 является "отцом" для у и если 胃 является “дедом” для у (С1) и все имеют “отцом” (С2). Кто является “отцом” некоего %?
Здесь исходные условия представляются в следующем виде:
Cl: + GPQ, у) — Р(х, у)尸(匕 у)
С2: +Р(р(а),况)
СЗ: —GP (и, /) — вывод (у),'
что приводит к следующим резолюциям:
СЗ + ci {z/力 y/t]С4 + С2 {х/р 3), u/i}С5 +'С6 {v/p (〃),и/р (/)}СЗ + ci {z/力 y/t]С4 + С2 {х/р 3), u/i}С5 +'С6 {v/p (〃),и/р (/)}С4: — Р (х, f) — Р (г,尤)一вывод (у)
СЗ + ci {z/力 y/t]
С4 + С2 {х/р 3), u/i}
С5 +'С6 {v/p (〃),и/р (/)}
СЗ + ci {z/力 y/t]
С4 + С2 {х/р 3), u/i}
С5 +'С6 {v/p (〃),и/р (/)}
С5: — Р (и, р (0 — вывод (и)
С6: — вывод (р (р (/)))
вывод: р (р (/))
В этих примерах обнаруживается богатство возможностей системы, а также возможность.ее использования во всех пространствах, где деревья доказательства не слишком велики. Важной областью применения системы является реализация запросов к базе данных. В тех случаях, когда необходимо извлечь из базы показатели, имеющие желаемые атрибуты, язык логики обеспечивает необходимую мощность для языка запросов. Системы типа Пролога, получив запрос, тут же начинают отыскивать ответы на него без каких-либо специальных предварительных этапов.
Другой областью, где находит применение Пролог, является управление роботами. Здесь речь идет о роботах, которые способны решать задачи “в уме” и, исходя из этого, строить план действий. Тот же способ запоминания с помощью предикатов позволяет запоминать план, построенный с помощью резолюций. Робот может ходить, передвигать какой-то объект, влезать на ящик.
Пусть, например, Е (х, у, г, s) суть предикат, который имеет следующий смысл: иРобот — х, ящик — г, бананы — у определяют состояние Тогда
М(xl, у\, si)——состояние, достигаемое роботом, переходящим от х1 к yl, выходя из состояния si;
Р (х2, у2, s2) — состояние, достигаемое роботом, передвигающие ящик от 尤2 к у2, начиная с состояния s2;
G(s3)——состояние, достигаемое роботом, взбирающимся на ящик из состояния s3;
а, Ь, с — первоначальные позиции робота, бананов, ящика (состояние sO);
4 (s4) —предикат, отражающий тот факт, что робот может достать бананы из состояния s4.
Исходные предложения имеют следующий смысл. Робот может:
идти к ящику Cl: + Е (с, у, % М 亿 с, s)) — Е (/, у, с, s) двигать ящик С2: + Е (у, у, v, Р (х, и, w)) — £ (х, у, х, w) взобраться на ящик СЗ: + Е (%, у, х, G (s))——Е (%, у, х, s) (первоначальное состояние) С4: +£*(〃,b, с, sO) .
взяТь бананы C5:』/(G(%)) — E(b, b, b, G (г))
(отрицание цели) C6: — A (w) — вывод (Д (侬))
Пролог легко решает это упражнение, но ему приходится сделать для этого 〜50 унификаций. Решение можно получить гораздо быстрее, используя для этого следующую стратегию: идти от цели, не используя дважды одно и то же предложение в какой-то ветви дерева, а используя только последнюю резольвенту 京 исходные предложения:
Родительские предложения
Подстановки
Резольвенты
С5 + С6
{侬/G (z)}
C7: - E 3, b, b, G ⑵)一
—вывод (Л (G (z)))
С7 + СЗ ,
{尤/b, y/bt z/s}
C8: — £ (6, b, b, s)——
—вывод (Л (G (s)))
С8 + С2
{v/bt y/bt s/P (%,. &, w)}
С9: — В (х, b, х, ш)—
—вывод (4 (G (P (x, b,酬))))
С9 + С1
{x/c, y[b,侬/М (/, % s)}
CIO: — £ (f, b, c, 5)—
—вывод (Л (G (P (% b, AI (力
С10+С4
{//a, s/sO)
C, s)))))
СИ: — вывод (Л (G (Р (с, Ь、 м 3 С, s0)))))
Начиная с исходной позиции, робот идет (Л1) от а к ящику с, который он двигает (Р) в b под бананы, и теперь ему остается только взобраться на него (G).
Глава 4
КЛАССИЧЕСКИЕ МЕТОДЫ
РЕШЕНИЯ ЗАДАЧ
Введение
Существуют четыре основных способа решения какой-либо задачи:
Применение явной формулы.
Использование рекурсивного определения.
Использование алгоритма.
Метод перебора, метод проб и ошибок и др.
Несомненно, первый способ является "наилучшим'*: мы используем найденную и доказанную ранее формулу, которая во всех случаях дает решение поставленной задачи.
К подобному "лобовому" подходу сводится решение таких задач, как определение нулей квадратного уравнения, определение названия дня, соответствующего произвольной дате, определение силы тока в заданной электрической схеме. Собственно задача математики и состоит в том, чтобы найти явные формулы для решения как можно большего числа возможных задач. Если такая формула существует, сложность задачи оказывается связанной с эффективностью вычислений. По определению в формулу может входить только конечное число символов и операций, и это верно для любого числа параметров, включенных в эту формулу, т. е. для любой размерности п входной задачи. Следовательно, в этом случае сложность постоянна (не зависит от и) и равна 0(1). Мы предполагаем, что сложность любой операции (т. е. +* —, /, * и т. д.) не зависит от разряда чисел, над которыми она производится, т. е. сложность пропорциональна числу операций.
Примеры хороших алгоритмов
Пример 1. Подсчитайте сумму п чисел натурального ряда.
Вы знаете соответствующую явную формулу, обладающую постоянной сложностью: в ней используется одна операция сложения, одна операция умножения и одна операция деления:
£» = (〃*(% + 1))/2.
Пример 2. Подсчитайте сумму квадратов 九 чисел натурального ряда.
Возможно, вы знаете и умеете доказывать, что
i2 = (п * (п + 1) * (2п + 1))/6.
Пример 3. Подсчитайте сумму кубов п чисел натурального ряда.
Вы чувствуете, что перечень примеров можно продолжить... Но здесь у математики эстафету принимает информатика. Если только мн умеем определять конечный процесс вычислений, позволяющий прийти к решению, нас не испугает отсутствие эффективной формулы. В связи с заменой формулы на процесс возникает новый вопрос: через сколько этапов мы получим решение? Ответ на этот вопрос составляет цель данной главы.
.Часто, исходя из условия задачи, мы располагаем неявной формулой подсчета, в которой решение определяется рекурсивно, постепенно. Так, сумма S(m) п чисел натурального ряда определяется формулами
■s(n)=.S(n~l)+n и S(l) = l,
т, е. она описывается как процесс, легко представимый в хорошем языке программирования:
ПРОЦЕДУРА S(n): сумма п чисел натурального ряда
ЕСЛИ п^\ ТО SS) —S@-1) +孔
I
ИНАЧЕ S(n)<-1
КОНЕЦ “ЕСЛИ“
КОНЕЦ ПРОЦЕДУРЫ
Чтобы подсчитать S(5), система вызовет процедуру S с формальным параметром п, равным 5. Поскольку 5 =# 1, система знает, что для подсчета результата ей необходимо прибавить 5 к значению S(4), которое она опять-таки должна вычислить. Она снова вызывает процедуру S. Кроме того, система записывает в стековую память, что, когда она будет знать значение S(4), она должна прибавить к нему 5, чтобы получить тот ответ, который от нее требовался вначале. Эту информацию мы можем представить в виде
+5 s (4)
Следующий вызов процедуры разворачивает подсчет S(4), и мы получаем
+5+•4S(3)
и так далее вплоть до
+
5
+
4
+
3
+
2
S⑴
При этом вызове процедуры, наконец, S(l) может быть подсчитано по явной формуле: W(i)*L Системе не надо больше заполнять стек, и теперь, чтобы получить ответ, она освобождает полученный стек в обратном порядке. Интуитивно мы внднм, что описанный выше процесс эквивалентен итеративной схеме:
S ■*— О
ПОВТОРЯТЬ ДЛЯ ге[1, п]
iS7 + £
КОНЕЦ ЦИКЛА по i
В обоих случаях сложность вычислений составляет О (л), поскольку число операций сложения, которое нужно выполнить в каждом из них, является величиной такого порядка. Если но кать сумму квадратов 〃 чисел натурального ряда, оба приведенных алгоритма легко модифицировать. В общем случае сумма чисел степени р требует и——1 операций сложения и п операций возведения в степень р:
Отсюда следует, что для решения тех задач, для которых неизвестны эффективные явные формулы, необходимо уметь строить алгоритмы приемлемой сложности. В частности, классическим и довольно удобным способом является использование с самого начала рекурсивной записи, которую часто легко осуществить и которая всегда кратка и элегантна. Если же сложность соответствующего алгорйтма слишком велика, информатик должен последовательно, исходя из рекурсивной формулы, находить, все более явные формулы и так до тех пор, пока не будет получен алгоритм вполне приемлемой сложности.
Замечание. Теоретическая сложность, о которой здесь идет речь, подтверждается совершенно реальной сложностью, ощущаемой человеком, работающим за терминалом. Так что усилия информатиков-теоретиков по понижению сложности алгоритмов решения некоторых распространенных задач вполне обоснованны.
Пример 4. Предположим, что мы хотим узнать 30-е число Фибоначчи. Это число определяется как 尸(30) с помощью
формул
尸仇)=尸m一 1) +尸仇一2),
•尸⑵=1,*
I戶⑴=L、
Числа Фибоначчи, введенные Леонардом Пизанским, сыном Бо- наччи (1540 г.), входят в описания некоторых процессов, происходящих в природе (например, процесса воспроизводства населения; число F(n) при этом является количеством людей в момент времени п), и в описания некоторых областей математики (в частности, в доказательство неразрешимости десятой теоремы Гильберта о решении диофантовых уравнений).
Явная формула. Формальное решение и подсчет общего члена последовательности путем поиска линейной комбинации решений в виде г", где г — нуль трехчлена 尤2 ——х——1, приводят к точному выражению (к формуле Бине)
f (n)= [(1 + VDrt - (1 - 7Ю1/(2-75-).
Но мы можем не знать этого подсчета. Кроме того, эта формула относительно сложная. Для того чтобы убедиться в этом, достаточно подсчитать вручную 尸(3) или, тем более,尸(10). На самом деле задача даже полностью не решена, поскольку алгоритм использования формулы нужно еще уточнить. Осуществлять ли раскрытие внутренних скобок по формуле бинома? Как вести подсчет: формально ——с символом “5 или лисленно —— с величиной 2,236068... и d десятичными знаками (и какое значение установить тогда для d)? Очевидно, что, хотя результат должен быть целым, он не будет таковым, пока мы остаемся в рамках конечной арифметики независимо от того, как мы считаем ——на микрокалькуляторе или на большом компьютере. Следовательно, встает вопрос: до какого <(соседнегоп целого числа нужно округлять? Как быть абсолютно уверенным в результате?
Теперь рассмотрим два других подхода.
Рекурсивная форма. Для этой четко сформулированной задачи рекурсивное программирование является решением с непосредственной подстановкой:
ЛРОЦЕДУРА F (п): подсчет n-го числа Фибоначчи
ЕСЛИ п>2 ТО 尸®♦尸("一1) +尸仇一2) ИНАЧЕ
КОНЕЦ "ЕСЛИ"
КОНЕЦ ПРОЦЕДУРЫ
Но опять-таки, как и в первом решении, возникает одна сложность. Подобно тому как мы делали это при подсчёте суммы чисел натурального ряда, смоделируем развертывание рекурсивного алгоритма в информационной системе. Начало построения стека для подсчета 尸(30) выглядит следующим образом:
И так — вплоть до достижения одного из двух явно заданных результатов:
В этом конце стека удается осуществить успешные подстановки, и тогда система возвращается... к 尸(4), которое она снова разворачивает. Поскольку в любом случае единственные известные результаты (尸⑵ и Л(1)) равны 1, в конечном итоге система делает столько операций сложения, сколько единиц содержится в F(n). Так как 方(30) равно 832 040 и стек управления вызовом процедуры 尸 является величиной того же порядка, то здесь непосредственный рекурсивный метод непригоден. Очевидно, что объем памяти и время, необходимые для работы этого алгоритма, совершенно неприемлемы. Поэтому нужно перейти от сложности, составляющей。(尸(九))(т. е., по сути дела, экспоненциально зависящей от п, которое входит в явную формулу), к более разумной сложности.
Итеративные алгоритмы. Чтобы уменьшить эту дорогостоящую из-за большой глубины рекурсивность и избежать многократного повторения одних и тех же расчетов, можно преобразовать приведенную выше рекурсивную схему в рекуррентную. Иными словами, мы расчленим задачу, предположив, что она решена до определенной точки, т. е. до некоторого значения i из и. Затем мы выведем из него 尸(j) по крайней мере еще для
одного значения /. Для этого выдвигается гипотеза рекуррентности. В нашем случае естественно предположить следующее. Пусть 尸⑴,尸⑵,...,尸⑴ уже получены. Начнем с i = 2. При этом задача решена полностью, когда i =九.
Если 丿护孔,приведенная в определении формула 尸口+】) = =F(i) +尸(i——1) позволяет распространить рекуррентную гипотезу на одну ступень дальше; следовательно, нам известны 尸(1),尸(2),...,尸(i), F(i + 1). Более того, приведенная в определении формула показывает, что члены F(l), F(2), …,F(i—2) в данном рекуррентном соотношении не участвуют. Вся необходимая информация содержится в тройке [г,尸(i),尸(t — 1)]. Пусть в соответствии с гипотезой эта тройка известна; тогда мы можем вывести из нее следующую тройку:
U + 1, FC+1),戶(川三上+1,尸⑴+f«一1),尸⑴].
Тем самым мы упростили гипотезу рекуррентности и нашу схему подсчета. Итак, у нас есть искомый итеративный алгоритм.
Оказывается, нам не нужно было запоминать вектор. F[l, п] целиком, а достаточно было двух его значений. Назовем эти значения и и и: и соответствует 尸⑴,а и — F(i—1). Тогда от тройки [詳弘 v] мы можем перейти к тройке [1 + 1, u + v, и]
+ 1 {новое значение /}
{сохранение прежнего значения и}
и<—и+ и {новое значение и по приведенной в определении формуле}
V + з {новое значение и = прежнее значение и = F (/)}
Начальные условия и тест остановки программ уже были указаны, так что полный алгоритм рассматриваемого третьего типа записывается следующим образом:
Процедура Фибоначчи:- F (ri)
% —2; 〃 — 1; и 什 1;
{Рекуррентная гипотеза: [Z,尸«) = 〃 и 戶«—1) = и] известны}
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА i^n
I1; 3<-〃,〃~以+% u~w;
КОНЕЦ ЦИКЛА по i
РЕЗУЛЬТАТ и
Конец процедуры
Очевидно, что этот алгоритм имеет сложность порядка О(п) вместо прежней 。(尸(〃)). Для подсчета F(n) необходимо совершить п — 2 итерации, каждая из которых включает 1 тест остановки, 2 операции сложения и 4 присвоения значений. Таким образом, мы достигли приемлемой сложности и "хорошего**, т. е. полиномиального, вполне реализуемого алгоритма.
Разработка алгоритма не всегда столь проста: часто приходится манипулировать более сложными структурами, чем числа или обычные арифметические выражения. В следующем разделе рассмотренный выше* принцип развивается на более сложных примерах, для которых в конце концов удается получить полиномиальный алгоритм. Затем мы составим полный список "хорошо решаемых" на сегодняшний день задач. Однако для некоторых задач, по-видимому, невозможно найти хорошие алгоритмы. Этой проблеме посвящен разд. 4.4.
Пример 5. Произведите сортировку 孔 чисел с помощью сравнений.
В качестве чисел возьмем, например, регистрационные номера или индексы каталога. Операция сортировки неупорядоченных элементов чрезвычайно распространена в информатике. Сначала теоретически установим нижнюю границу сложности этой задачи. Разумеется, никакой явной формулы в привычном смысле этого слова здесь нет. Необходимо определить эффективный процесс упорядочения м заданных чисел, например в перекрестном порядке. Чтобы осуществить это, нам нужно тем или иным способом сравнить числа попарно. Основная элементарная операция здесь — тест на сравнение двух чисел: <1Что больше——а или 6?” Итак, заметим, что подлежащие упорядочению п чисел априори могут быть представлены на входе п! различными способами.
При этом t последовательно выполненных тестов позволяют различить на сбалансированном дереве высотой t в лучшем случае 2’ ситуаций, каждая из которых соответствует одному из листьев (рис. 4.1).
• Оказывается, что f элементарных операций позволяют изучить не более чем и чисел, где п такое, что
2'》献2'》献(4.1)
2'》献
2'》献
(4.2)(4.2)Если перейти к логарифмам и использовать формулу Стур- линга, по которой nl = /г^1^ Прй 江一> 8, мы увидим, что нижняя граница сложности t для сортировки методом сравнений со- :ставляет
(4.2)
(4.2)
t — nlog2n.
Следовательно, чтобы рассортировать множество из ^ элемен-- тов, нам потребуется по крайней мере О (n log2 м) тестов.
Теперь рассмотрим, как действует элементарный алгоритм, сортировки. При сортировке массива первой приходит мысль выбрать наибольший элемент, поместить его в начало и затем
Рис. 4.1. Дерево тестов для сортировки массива.
проделать то же самое для оставшегося массива, т. е. действовать по схеме:
ПОВТОРЯТЬ ДЛЯ 1《,&(м—1) {первые (/ — 1) элементов
.рассортированы}
ПОВТОРЯТЬ ДЛЯ (г+1)</<«
ЕСЛИ % V ' ТО h — i
КОНЕЦ ЦИКЛА по j
поменять Xi и xk
КОНЕЦ ЦИКЛА по i
Внутренний цикл дает (n— 1) тестов при каждой итерации, т. е. всего (п — 1) + (п — 2)十 ….+ 2 + 1 = "(%.」_ тестов для п подлежащих сортировке абсолютно произвольных чисел; следовательно, этот алгоритм обладает сложностью порядка О (п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. Пример сортировки первого типа.
Сэкономить на количестве сравнений можно за счет замены цикла ^повторить для『'на своего рода “турнир”: на некотором этапе мы сравниваем %『только с х; + 1, а затем “победителя” этой пары сравниваем с ^победителем" соседней пары. Если на входе стоят числа 20, 7, 84, 75, 45, 78, 30, 9, то получится картина, приведенная на рис. 4.3.
Таким образом мы, с одной стороны, уменьшаем число тес
тов, необходимых для нахождения максимального элемента, а с другой, получаем сведения, нужные для продолжения поисков. Теперь высота дерева составляет log2 п (неравенство (4.1)). Следовательно, в худшем случае требуемое число-операций в п раз больше, чем число тестов, необходимых для изучения дерева из п элементов, т. е.几 log2 M. Согласно соотношению (4.2), по крайней мере по порядку величины сложность этой сортировки является оптимальной.
(В действительности для реализации этой сортировки на компьютере надо уточнить способ управления деревом, запоминающим числа, и способ осуществления обменов между рассортированными и нерассортированными элементами. Поскольку сначала дерево не задано, все это имеет значение. К дереву мы приходим постепенно, проходя через стадию "упаковки"—
Рис. 4.3. Пример сортировки второго типа.Рис. 4.3. Пример сортировки второго типа.
Рис. 4.3. Пример сортировки второго типа.
Рис. 4.3. Пример сортировки второго типа.
структуры, в которой во всех вершинах, подчиненных некоторому узлу, стоят числа, не превышающие число, расположенное в данном узле.)
Как бы то ни было, мы имеем, таким образом, пример нетривиальной задачи, для которой можно представить оптимальный полиномиальный алгоритм.
Пример 6. С задачей найти кратчайший путь из одной точки в другую мы сталкиваемся в жизни ежедневно: путешествуя на автомобиле, в метро, а также при решении некоторых математических головоломок. Возьмем в качестве примера граф, изображенный на рис. 4.4; требуется попасть из точки 1 в точку 6 по такому пути, чтобы сумма расстояний, указанных на каждом ребре, была минимальной.
I Обычно говорят не о расстояниях между вершинами, а о стоимости ребер. По интуитивным соображениям полный пере-
бор всех возможных путей, ведущих из начальной вершины, в конечную, бесполезен. В самом деле, очевидно, что следует
ограничиться только элементарными путями, рые проходят через каждое ребро графа неограничиться только элементарными путями, рые проходят через каждое ребро графа не(при условии, что стоимости положительны). Кроме того, естественно использовать итеративный процесс распространения минимальных путей, начиная с вершины 1. Начав с вершин, соседних с вершиной 1, т. е. связанных с ней только одним ребром, мы будем постепенно подсчитывать эти пути так, чтобы в любой заданный момент времени для любой заданной вершины мы были уверены, что минимальное(при условии, что стоимости положительны). Кроме того, естественно использовать итеративный процесс распространения минимальных путей, начиная с вершины 1. Начав с вершин, соседних с вершиной 1, т. е. связанных с ней только одним ребром, мы будем постепенно подсчитывать эти пути так, чтобы в любой заданный момент времени для любой заданной вершины мы были уверены, что минимальноет. е. путями, кото- более одного разат. е. путями, кото- более одного разаРис. 4.4. Задача нахождения кратчайшего пути.Рис. 4.4. Задача нахождения кратчайшего пути.расстояние до вершины 1 израсстояние до вершины 1 известно точно и возвращаться назад не придется.вестно точно и возвращаться назад не придется.Иначе говоря,Иначе говоря,
ограничиться только элементарными путями, рые проходят через каждое ребро графа не
ограничиться только элементарными путями, рые проходят через каждое ребро графа не
(при условии, что стоимости положительны). Кроме того, естественно использовать итеративный процесс распространения минимальных путей, начиная с вершины 1. Начав с вершин, соседних с вершиной 1, т. е. связанных с ней только одним ребром, мы будем постепенно подсчитывать эти пути так, чтобы в любой заданный момент времени для любой заданной вершины мы были уверены, что минимальное
(при условии, что стоимости положительны). Кроме того, естественно использовать итеративный процесс распространения минимальных путей, начиная с вершины 1. Начав с вершин, соседних с вершиной 1, т. е. связанных с ней только одним ребром, мы будем постепенно подсчитывать эти пути так, чтобы в любой заданный момент времени для любой заданной вершины мы были уверены, что минимальное
т. е. путями, кото- более одного раза
т. е. путями, кото- более одного раза
Рис. 4.4. Задача нахождения кратчайшего пути.
Рис. 4.4. Задача нахождения кратчайшего пути.
расстояние до вершины 1 из
расстояние до вершины 1 из
вестно точно и возвращаться назад не придется.
вестно точно и возвращаться назад не придется.
Иначе говоря,
Иначе говоря,
на каждом этапе множество вершин разделено на два подмножества S* и S, такие, что
для каждой вершины из S* известно минимальное расстояние до вершины 1;
для каждой вершины из S это расстояние неизвестно.
Рис. 4.5. Доказательство алгоритма: путь w.Рис. 4.5. Доказательство алгоритма: путь w.
Рис. 4.5. Доказательство алгоритма: путь w.
Рис. 4.5. Доказательство алгоритма: путь w.
Вначале множество S* сводится к вершине 1. Переход некоторой вершины из подмножества S в S* произойдет тогда, когда мы сможем доказать, что никакой другой путь из еще непроверенных не окажется короче, чем уже известные пути. Так, в нашем примере из вершины 1 на первом шаге мы можем попасть в вершины 2 и 3; поскольку стоимость пути до вершины 3 строго больше стоимости пути до вершины 2, расстояние между вершинами 1 и 2 (оно равно 4) является минимальным независимо от того, какие неизвестные пути позволят нам вернуться из 3 в 2 (рис. 4.5).
Чтобы построить полный алгоритм, уточним и систематизируем приведенные рассуждения для графа с произвольными положительными стоимостями. Обозначим 力* (z) расстояние между вершиной 1 и вершиной i, iwS*; D(i) (на заданном этапе) наилучшее известное расе^рянне от вершины 1 до вершины i, iwS; /(/', /) стоимость ребра (/, /), На любом этапе множества S* н V характеризуются следующим свойством:
Если iwS*, то D(i) = Q*(i).
Если i^S\ т i^S п О ⑴=MIN [D (々)+ / (財 /)], ' h е S*,(々,t)丘 U
где U — множество ребер графа.
0(,) является минимальным известным расстоянием от вершины 1 до вершины L
Итак, вначале S* = {1} при D* (1) — 0 и。(力)=+ 8 для всех вершин, отличных от 1; таким образом, все они попадают в S.
Теперь мы, сохраняя введенные обозначения, обобщим представленную выше (для вершин 2 и 3) аргументацию и сформулируем следующее утверждение.
Утверждение. Пусть j 已 S, причем / такое, что Q(j) является наименьшим из цсех 0(i), где iwS.
Тогда D(j) является минимальным расстоянием от 1 до /. Таким образом, для jwS: D (/) = MIN [D (Z)] D(j) — D* (/), 心
т. e. при этом условии (на каждом этапе ему обязательно удовлетворяет по крайней мере одно /) мы имеем право перевести / из S в S*.
Чтобы доказать это свойство, нам нужно доказать, что не существует более короткого пути из. 1 в 厶 чем уже имеющийся путь с зафиксированной суммарной стоимостью £>(/).
'Рассмотрим путь 侬,ведущий из 1 в /. Пусть Wi является частью w и идет из вершины 1 в первую из вершин, не принадлежащих S* (она обозначена через &);切? является при этом до- полнением к 侬i (см. рис. 4.5).
Общая длина w равна сумме длин путей w\ и 5з Следовательно, по построению, длина W\ больше или равна £)(左),которое в рассматриваемый период является минимальным расстоянием от 1 до k. Но, согласно нашему утверждению, которое нужно доказать, D(k) > D(j). Кроме того, длина пути w2 неотрицательна. Следовательно, длина w в целом не может быть меньше Q(j). Тогда вершина / переходит из S в S*. Таким образом, если число вершин равно п, этот процесс завершается после п——1 итераций и полученный алгоритм имеет следующий вид:
{Инициализация}{U ——множество ребер графа}
О—>D(1); [2,3,... ,n]->S {n — число вершин графа} ДЕЛАТЬ V/, iwS: ЕСЛИ (1,,)WU ТО l(l,i)^D(i)
ИНАЧЕ + оо fD(i)
{Итерация}/
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА S 0: {Определение выходной вершины} ВЫБРАТЬ у S; такое, что Z)(j) = =MIN 0(9,
S S — {/}
{Определение расстояний Q} ДЕЛАТЬ Vx, t е S и (j,i)三。
D«)~MIN[D(9, 0(j) + Z(jJ)]
КОНЕЦ ЦИКЛА
СОНЕЦ
Теперь развернем этот алгоритм на примере графа, приведенного на рис. 4.4.
• Инициализация:
123456
0
4
11
ОО
ob
ОО
Кратчайшему пути из вершины 1 в вершину 6 соответствует суммарная стоимость 10.
Можно заметить, что в приведенном алгоритме порядок перехода вершин из 5 в S* зависит одновременно и от вхожде- ния/невхождения ребер во множество U, и от их стоимости: модификация стоимостей меняет порядок перехода даже без изменения графа. Кроме того, этот алгоритм выдает минимальные расстояния от вершины 1 до других вершин единым блоком (по крайней мере если мы не остановим работу алгоритма в момент, когда выбранная конечная вершина ——в нашем примере 6 — вдруг перейдет в S* до его полного завершения, как это могло бы произойти). Наконец, мы можем оценить число элементарных операций, необходимых для выполнения этого алгоритма: поскольку ребро графа по определению связывает две вершины и на этапе выявления расстояний D(i) анализируются две вершины (вершина, только что перешедшая в S*, и некоторая другая вершина из S), то в данном случае каждое ребро рассматривается только один раз. Если т ——число ребер графа, на этап выявления расстояний для всего множества итераций потребуется m сложений и т сравнений.
Кроме того, если множество S представлено характеристическим вектором, при выборе минимального значения Dn(j) для определения выходной вершины нужно |S| сравнений, т. е. на всем множестве алгоритма мы получаем £ (〃一左), или n(n——1)/2 сравнений. Следовательно, предложенный алгоритм требует порядка (п2 + т) сравнений и т сложений. Учитывая, что операции сравнения и сложения выполняются в сопоставимое время и что в любом графе по определению m ^ п2 (поскольку ребро связывает две вершины), мы можем сказать, что данный алгоритм обладает сложностью О(п2). Этот алгоритм впервые был предложен в 1957 г. Моором, затем в 1959 г. Дейкстрой, а его варианты были разработаны Данцигом (I960), Уайтингом и Хиллиером (I960).
Хотя мы рассматривали пример, в котором связи между вершинами, называемые ребрами, могут проходиться в обоих направлениях, иногда ситуация навязывает однонаправленность прохождения; такой граф называется ориентированным. Направление прохождения связи обозначается в этом случае стрелкой, а ориентированная связь называется дугой. Все выводы, полученные выше, остаются в силе, поскольку направленность прохождения связи в рассуждениях не участвовала; достаточно определить U как множество дуг.
Если дуга (i, /) принадлежит множеству U, мы назовем i пр едшествующим j, а / — следующим за
Пример 7. Задача упорядочения.
В мастерской по сборке автомобилей работа разбита на определенное число операций известной длительности. Эти операции должны следовать друг за другом во времени с учетом отношений логического следования, которые обусловлены физическими условиями. Информация, которой мы располагаем, сведена в табл. 4.1.
Таблица 4.1
ОперацияОперацияКодоперацииКодоперацииДлительностьв ЧасахДлительностьв ЧасахОтношения следования.Отношения следования.
Операция
Операция
Кодоперации
Кодоперации
Длительностьв Часах
Длительностьв Часах
Отношения следования.
Отношения следования.
ABC DEFGH1JK LABC DEFGH1JK LЕ'h-llЕ'h-ll
ABC DEFGH1JK L
ABC DEFGH1JK L
Е'h-ll
Е'h-ll
Штамповка корпуса Закрепление шасси
Установка коробки скоростей и мотора
Сборка
Установка руля
Кабель и электропроводка
Закрепление колес
Установка дверей
Окраска
Стекла
Отделочные работы и оборудование салона
Проверка и контрольные измерения
Какова минимальная длительность сборки, если предположить, что в нашем распоряжении имеется квалифицированная рабочая сила, способная обеспечить параллельное выполнение операций там, где это возможно?
Для ответа на поставленный вопрос мы обозначим каждую операцию точкой и проведем между точками связи, соответствующие отношениям следования. Мы получим таким образом граф, причем на этот раз ориентированный (поскольку отношение “i предшествует является асимметричным и отражается дугой, ведущей от i к /). Кроме того, обозначим длительность операции х как стоимость соответствующей дуги. Добавив две фиктивные операции (а, отмечающую начало сборки, и ①,соответствующую концу работы), мы получим граф, приведенный на рис. 4.6.
Из этого графа видно, что по построению(о следует за операциями G, К и L. Кроме того, он содержит в сжатой и доступной форме всю информацию, необходимую для решения
поставленной задачи. Условия, связанные с отношениями логического следования (такие, как “С раньше Е”, “В раньше С", ^А раньше В"), выстраиваются в заданном порядке в цепочки; на графе им соответствуют различные пути (в нашем случае путь аАВСЕ). Найти минимальную длительность сборки озна-
Рис. 4.6. Ориентированный граф для задачи упорядочения.
чает то же самое, что определить на графе с заданными стоимостями, соответствующими продолжительности операций, путь от вершины а до вершины со, обладающий максимальной суммарной стоимостью. Здесь нужно - искать именно максимум: в этом случае все остальные пути обладают не более чем равной длительностью и поэтому максимум соответствует минимальной возможной длительности реализации множества операций.
Отметим, что, поскольку стоимости здесь по-прежнему положительны, а мы ищем максимум, то искомый путь мог бы ока、 заться бесконечным. Действительно это было бы так, если бы существовало подмножество дуг, такое, что
U1 %2), (%2, %з), • • •「(х”1,Хр), где хр = хъ.
т. е. подмножество вершин, где мы могли бы ходить по кругу неопределенно долго. Такое подмножество вершин в теории графов называется циклом. Однако подобная ситуация в рассматриваемой задаче упорядочения невозможна: в самом деле, тогда получилось бы, что операция %i = хр является предшествующей по отношению к самой себе, а это в системе логически обусловленного следования было бы аномалией и соответствующая работа не могла бы быть выполнена.
Если учесть отсутствие циклов, рассмотренный в предыдущем разделе алгоритм можно улучшить. Поиск максимума, а не минимума, роли не играет. Мы снова ограничимся элементар- ными путями (т. е. будем брать каждую дугу не более одного раза). Основная идея остается прежней: вес D(i), присвоенный произвольной вершине, постепенно уточняется с помощью соот-
ношения вида
D (г) МАХ [О (/) + ;(/, /)],
пока он не перестанет меняться. Однако при специальном выборе порядка вершин можно свести процедуру- к одному этапу Для графа, приведённого на рис. 4.6, максимальное расстояние от а до Л и В известно. Если мы знаем расстояние до 8, то нам в свою очередь известны максимальные расстояния от а до С, D и Н. Сравнивая D(H) +/(〃,/) и /(D, /), можно определить максимальное расстояние от а до I и т. д. Вершины графа можно рассматривать также в таком порядке, чтобы мы попадали в произвольную вершину /, когда все предшествующие ей вершины уже проверены. Этот алгоритм может эффективно работать благодаря следующему свойству:
Свойство. Ациклический граф обладает по крайней мере одной вершиной, которой не предшествует никакая другая вершина; такая вершина называется корнем.
В самом деле, предположим, что это не так, и отметим какую-нибудь вершину. По предположению %】не является корнем, и существует по крайней мере одна входящая в нее дуга (%2, ^i). Теперь отметим вершину %2 и повторим разметку, начи- ная с х2. Эта процедура задает, таким образом, бесконечную последовательность вершин (%ь %2, х3, ..., х*, ... ). Но поскольку число вершин в графе конечно, эта последовательность должна содержать повторяющийся цикл, что противоречит исходному предположению.
Данное свойство, позволяющее запустить алгоритм, мы будем использрвать неоднократно: действительно, достаточно исключить из множества дуг U те дуги, которые выходят из предшествующего корня, чтобы затем определить новую, не имеющую предшественников вершину, максимальное расстояние которой от а может быть вычислено непосредственно. Докажем теперь более строгую теорему.
Теорема. Граф G=(X, U) не имеет циклов в том и только том случае, если существует взаимно однозначное отображение V множества вершин X в интервал целых чисел от 1 до п, где п = \Х\ такое, что V(xi, х2), (хь%2)三 U; ”(%i) < v(x2).
Другими словами, с помощью взаимно однозначного отображения V мы можем перенумеровать все вершины так, чтобы все предшествейники некоторой произвольно . выбранной вершины имели меньшие номера.
Во-первых, очевидно, что, если G включает цикл (%i, Х2, .,.,хй), мы не сможем построить подобного отображения, поскольку в противном случае, согласно предположению, имело бы
Ж.-Л. Лорьер
Рис. 4.7. Перестроенный граф для задачи упорядочена兄.
место соотношение:
■V (%!)< V (х2) < . . . < V (х^ < V (%!),
что вообще невозможно.
И наоборот, если граф О не содержит циклов, существует корень, которому мы придадим номер 1: v(S) — 1. Теперь удалим из G эту вершину и все выходящие из нее дуги. Новый граф, полученный в результате такого удаления, очевидно, не содержит циклов: в нем есть корень с номером 2 и т. д.
Если бы в какой-нибудь момент существовала некоторая дуга (хь 也)из U, ¥(%i) < v(x2), где 也一корень, в то время как 尤1 еще принадлежит остальной части графа, то получилось бы противоречие. Следовательно, функция v действительно существует, и у нас есть эффективное средство для ее построения.
Алгоритм построения функции классификации вершин
В этом алгоритме каждая дуга из множества U рассматривается только один раз, поэтому он обладает сложностью порядка 0(加).В соответствии с предложенной процедурой мы можем перестроить граф задачи упорядочения из нашего примера. На рис. 4.7 изображены множества %, называемые также пластами.:
Инициализация:
Построение:」
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА ТВ 0:
{厶一 множество вершин,
не имеющих предшест-
•венников}
ДЕЛАТЬ V,,2 三九:
pf v(,); Р 十 1 f Р
ДЕЛАТЬ V/, «J)wU:
Исключить 0,j) из U, '
Т-几fТ; k+l^k'
КОНЕЦ ЦИКЛА
КОНЕЦ■
Первый пласт, несомненно, а, второй ——Д, третий — В; дуги Ac, BD, ВН исключаются, и тогда С, D и Н принадлежат пласту У4. Дуги CG и СЕ, DF и DI и, наконец, HI исключены. У6 состоит из единственной вершины 尸;исключаем FJ и 尸К; следовательно, У7 состоит из / и К. Наконец, последние пласты У8 и Уд составляют вершины L и со.
Замечание. Когда перед глазами имеется рисунок, нумерация не является обязательной; поэтому на рис. 4.7 мы ее опустили.
Теперь мы получаем:
/)*(1) =0* ⑵=0.
Затем: / = 3,
D* (3)
==0 + 1 = 1;
7 = 4,
”4)
=1+2 = 3;
j = 5,
D* (5)
==1 +2 = 3;
j = 6,
0(6)
= 1 + 2 = 3;
j = 7,
D* (7)
=МАХ [3 + 1; 3 + 3] = 6;
j = 8,
D* (8)
= 3 + 2 = 5;
7 = 9,
犷⑼
=3+2 = 5;
/=10,
£)*(10)
= МАХ [3 + 3;
5+ 2] = 7;
j = U,
0*(11)
= Маx [6+2;
7+ 5] = 12;
j = 12,
/)*(12)
= МАХ [6 + 2;
7 + 5]=12;
/=13,
0*(13)
= 12 + 1 = 13;
12 + 4; 13 + 2] = 16.
j = 14,
0*(14)
= МАХ [5+1;
Таким образом, длина
максимального пути на графе для
задачи упорядочения (рис. 4.6) составляет 16 единиц. Чтобы
обнаружить путь,
во время каждой итерации мы отмечаем
предшествующую
вершину, которая дала реальный максимум
при подсчете Q*. Идя в обратном направлении от(о, мы снова берем эти данные и получаем в конце концов путь aABCEFKs.
Использованный нами метод известен под названием метода потенциалов', он был введен Бернардом Роем в 1960 г. Более распространенный, но более трудоемкий американский вариант метода для решения этой задачи называется методом PERT (Program Evaluation and Review Technique); он был разработан в NASA и в RAND в 1954 г.
Эти методы постоянно используются для реального решения конкретных задач, главным образом в строительной индустрии, а также в различных отраслях машиностроения (в автомобилестроении, кораблестроении и самолетостроении).
Помимо вычисления минимального срока выполнения проекта, эти методы позволяют получить список так называемых tlкpитичecкиx,, операций, т. е. операций, лежащих (при графическом представлении) на самом длинном из возможных путей. По определению всякое увеличение длительности любой из критических операций обязательно отразится на сроках поставок. Другим полезным следствием нашего алгоритма является информация о распределении в процессе сборки объема работ, выполняемых представителями различных профессий.
В перестроенном таким образом графе для определения максимального пути мы располагаем следующим тривиальным алгоритмом:
{Инициализация} О* ⑴—0; Z)* ⑵—/(1,2).
ПОВТОРЯТЬ ДЛЯ /, 3</<n Q* (j) — MAX [Q* ⑴ + / & /)]
КОНЕЦ ЦИКЛА
Действительно, новые численные обозначения таковы, что (i,/)三 U 今 i V /• Таким образом, все пути, приводящие в /, могут проходить только через вершины, номера которых меньше / и для которых Q* уже вычислено. Пригодность алгоритма доказывается с помощью индукции ПО J. .
Для каждого отдельного значения итерация требует / ——1 сложений и / — 2 сравнений, поэтому в конечном итоге в данном алгоритме используется и(п——1)/2, т. е. О(п2) элементарных операций. 一
Нумерация v(x) вершин графа, иллюстрирующего рассматриваемый пример (рис. 4.6), приводится в следующей таблице:
Имя вершины
а
Л
8
С
Q
Е
尸
G
Н
/
К
厶
3
V (х)
1
2
3
4
5
8
10
9
4
7
12
И
13
14
Наконец, поскольку в этом классе задач данные никогда не известны точно, для отслеживания критического пути и общей длительности в случае^ когда длительности операций параметризованы и колеблются в заданных интервалах по известным вероятностным законам, были разработаны вспомогательные способы подсчета.
Подробное рассмотрение всех этих способов не входит в задачи данной главы. Здесь мы хотели показать на конкретных примерах суть алгоритмических действий: анализ задачи.
с целью ее перевода в сжатую и удобную форму (граф); изучение в выбранном ограниченном пространстве новой задачи и проверку на каком-нибудь примере метода, основанного на простых идеях; обобщение, а затем оформление и доказательство алгоритма.
Пример 8. Топологическая задача
Рассмотрим знаменитую задачу об "зйлеровом цикле” на графе. Она состоит в том, чтобы узнать, существует ли на графе определенной вида (таком, как изображен на рис. 4.8) цикл, который проходит по каждому ребру только один раз и возвращается в исходную точку.
Разумеется, необходимым условием является связанность графа, т. е. существование цепочки ребер, позволяющей пройти из Одной произвольно взятой точки графа в другую. Еще одно необходимое условие касается числа ребер, привязанных к каждой вершине: поскольку мы не можем дважды пройти по одному и тому же ребру, нужно, чтобы всякому входу соответствовал выход.
Чтобы в связанном графе существовал эйлеров цикл, в нем не должно быть вершин нечетной степени (степень ——число ребер, выходящих из данной вершины).
Как мы докажем ниже, это условие фактически является до- статочным. Для ответа на вопрос о существовании эйлерова цикла это условие предлагает полиномиальный алгоритм, и.
кроме того, для реального построения этого цикла в случае его существования оно дает алгоритм, совпадающий по порядку сложности с числом ребер на входе.
Необходимое условие. Оно является очевидным. Поскольку цепочка, проходящая через все ребра, входит в каждую вершину и выходит из нее, то для возвращения в исходную вершину нужно, чтобы все лежащие на нашем пути вершины имели четное число ребер.
Достаточное условие. Оно является менее очевидным.
Мы будем рассуждать по индукции для т, где m — число ребер графа.
В соответствии с нашим предположением составим последовательно цепочку Ф, выходящую из произвольной вершины s. Чтобы быть уверенными, что мы не пройдем дважды по одному и тому же ребру, условимся вычеркивать из графа каждое пройденное ребро. Пока Ф ведет в некоторую вершину %, отличную от s, мы всегда можем продолжить цепочку по крайней мере на одно ребро. В самом деле, в начальный момент каждая вершина обладает некоторым четным числом ребер и в текущей вершине х из этого числа обязательно сохраняется некоторое нечетноехисло (т. е. по крайней мере одно ребро), потому что при каждом прохождении через данный пункт вычеркиваются два ребра.
Если мы не можем продолжить цепочку Ф, это означает, что мы вернулись в s. Если в этот момент все ребра исходного графа были пройдены, теорема доказана. Если нет, то у нас осталось некоторое подмножество ребер, распределенных по нескольким связанным компонентам (здесь, разумеется, не рассматриваются компоненты, которые сводятся к изолированным вершинам).
Обозначим эти компоненты связности через Gi, G2,… ...,Gh. Поскольку с самого начала предполагалось, что граф G связанный, то цепочка Ф пересекается с каждой из этих компонент по крайней мере в одной точке. Пусть gi, g?,gk一一 такие точки пересечения для каждой компоненты G”
Так как при любом i подграф G/ является связанным и обладает по построению менее чем т ребрами и вершинами четных степеней, он допускает в соответствии с индуктивной гипотезой эйлеров цикл Ei. Исходя из этого соображения, мы строим, причем именно в указанном порядке, новую цепочку, включающую
цепочку Ф от вершины s до вершины gi;
эйлеров цикл £1 в подграфе Gi от вершины gi до вершины gi;
цепочку Ф от вершины gi ао вершины ^2 и т. д. При этом мы все время остаемся уверенными в том, что с помощью цепочки Ф мы сможем вернуться из gk в s, где s w G辰 И наконец, доказательство, , втгерйые проведенное Леонардом Эйлером в 1736 г.» завершается утверждением того, что петля на единственной вершине образует эйлеров цикл.,
Проверить приведенные необходимые и достаточные условия в каждой вершине нетрудно, причем суммарная сложность составляет О (п). Чтобы реально построить эйлеров цикл, запишем сначала процедуру Эйлера Е(з), которая задает для произвольного графа эйлеров цикл с началом в вершине 您:
процедура Эйлера: Е (w)
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА и 方叫
{Пусть (u,V)— первое, еще не отмеченное, ребро, выходящее из вершины м}
Отметить (〃卩)
① + ①U (〃,〃){продолжить цепочку Ф)
КОНЕЦ ЦИКЛА
КОНЕЦ ПРОЦЕДУРЫ Эйлера
Теперь легко записать полный алгоритм получения эйлерова цикла.
Следуя доказательству теоремы, мы будем строить цепочку, постепенно ее дополняя:
Ф £ (s) {Исходная цепочка}
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА в графе G существуют
.неотмеченные ребра:
{Пусть Л ™ вершина, расположенная одновременно на цепочке Ф и на неотмеченных ребрах}
二 Провести конкатенацию цепочки, заданной с по- ;.:мощью процедуры Эйлера £ (Л) и цепочки Ф
КОНЕЦ ЦИКЛА
В этом алгоритме процедура Эйлера £(з) обрабатывает каждое ребро графа G не более одного раза. Следовательно, выбирая, как указано, подходящую вершину Л, мы освобождаемся от реального построения связанных компонент. Тогда в худшем случае каждое ребро будет проверяться дважды. Сложность обобщенного алгоритма, таким образом, совпадает
по порядку величины с числом ребер исходного графа, т. е. составляет О(т). Итак, мы имеем прекрасный линейный алгоритм решения задачи Эйлера.
Замечание. Ниже мы рассмотрим задачу, близкую задаче Эйлера. Эту задачу изучал Гамильтон, и в его честь она получила название задачи Гамильтона; она состоит в поиске на произвольном графе цикла, проходящего на этот раз не через все ребра, а через все вершины (гл. 5, задача о коммивояжере). Оказывается, что эта новая задача вовсе не относится к тому же классу, что и предыдущая. Многие, математики, в течение нескольких веков занимавшиеся задачей Гамильтона, так и не смогли построить для нее, как это удалось сделать для задачи Эйлера, хороший (т. е. полиномиальный) алгоритм.
Другими словами, мы не умеем решать обобщенную задачу определения цикла, проходящего через все вершины графа.
Список хорошо решаемых задач
(полиномиальные алгоритмы)
Итак, мы убедились, что всякий раз, когда для решения некоторой задачи нам известна явная математическая формула, сложность задачи оказывается постоянной (не зависящей от данных); разумеется, это случай идеальный.
В этот класс задач попадают, 'например, решение невырожденных систем линейных уравнений, подсчет заработной платы и большая часть классических задач из школьного курса физики, сводимых к системе уравнений.
Ниже мы дополним этот список рядом задач, требующих привлечения других типов данных.
Вначале напомним две последние задачи:
Рассортировать множество из п чисел. (Сложность порядка О (п log и).)
Найти эйлеров цикл на графе из т ребер. (Сложность порядка О(т).)
Для других типов задач также были получены результаты, которые мы приведем без их доказательств.
Обнаружить в тексте длиной и некоторое слово. (Сложность п-О(п).)
Здесь речь идет о том, чтобы найти, например, в архиве все случаи вхождения одного или нескольких заданных слов — дескрипторов или ключевых слов в библиографических ссылках. Очевидный алгоритм, включающий две петли на буквах текста, а затем на буквах слова, здесь непригоден, поскольку его сложность слишком велика (она составляет O(n X число букв в слове)). Он был улучшен, и его сложность перестала зависеть от
длины искомого слова: в любом случае каждая буква текста анализируется только один раз. Это удалось осуществить путем “обмена пространства на время”: мы избегаем бессмысленных проверок, помещая в память слова в виде ^диаграммы пе- реходов1'.
Построить покрывающее дерево минимальной стоимости (т ——число ребер) и сложностью О(т log т) (Kruskal, 1956; Prim, 1957; Tarjan, 1977).
Здесь речь идет, например, о построении в небольшом городе сети водоснабжения. Возможны некоторые сочленения» каждому соответствует своя стоимость строительства; каждая вершина (клиент) должна быть подключена к сети. Источник, подсоединенный к сети, обеспечивает необходимое давление воды в сети. Если водопровод проходит по всем точкам (ипо- крывающая" сеть) и не образует циклов (“дерево”),к сети будут подключены все клиенты. Итак, нужно построить дерево с минимальной общей стоимостью сооружения сочленений. Ока^ зывается, что в данном случае тривиальный алгоритм, состоя、 щий в выборе ребра с минимальной стоимостью, не образующего циклов с уже отмеченными ребрами (и так до тех пор, пока не будут достигнуты все вершины), во-первых, дает опти- мальное дерево, а, во-вторых, обладает минимальной сложностью.
Многие другие задали из теории графов также решаются за полиномиальное число шагов. Перечислим главные из них.
Кратчайший путь на графе, состоящем из п вершин и m дуг. (Сложность О(т -»n).) (Ford, 1965; Dijkstra, 1959; Dant- zig, 1960; Floid, 1962.)
На заданном графе с проставленными стоимостями мы отыскиваем путь, связывающий два фиксированных пункта, для которого сумма стоимостей ребер минимальна. Обратная задача поиска максимального пути обладает той же степенью сложности.
Связанные компоненты. (Сложность О (孔2).) (Tremaux, 1882; Tarjan 1972.)
Речь идет об определении подмножеств вершин (связанных компонент), таких, что две вершины, принадлежащие одной и той же компоненте, всегда связаны цепочкой дуг. Именно так мы определяем, например, в некотором проекте подмножества операций, не зависящих друг от друга.
Транзитивное замыкание. (Сложность 0(歩).)(Nolin, 1964; Warshal, 1965; Roy, 1965.)
Для каждой вершины находим множество вершин, с которыми она связана. Алгоритм поиска аналогичен предыдущему.
Максимальное паросочетание. (Сложность O(n5/2).) (Berge, 1962; Edmonds, 1965; Gabow, 1973; Bartnik 1978.)
На произвольном графе нужно найти максимальное подмножество ребер, не встречающихся друг с другом ни в одной вершине. Одна из теорем Клода Берже содержала необходимое и достаточное условие максимальности некоторого множества. Однако доказательство того, что это условие может быть проверено за полиномиальное время, удалось провести Джеку Эдмондсу уже позже. Кроме того, для любого немаксимального множества он предложил эффективное улучшение; в своей известной статье "Пути, деревья и листья1* он придумал термин “хороший алгоритм,> и продемонстрировал его значимость.
Задача о паросочетанйи относится к многочисленным задачам класса распределений, или, иначе, к задачам дизъюнктивного упорядочения (операции, взаимно исключающие друг друга в пределах одного и того же интервала времени: организация смен экипажей, транспортных средств, расписаний рабочего времени).
Максимальный поток. (Сложность O(n3). (Ford и Fulkerson, 1950; Gondran и Minoux 1978.)
Речь идет о том, чтобы пропустить между двумя пунктами максимальный “поток”, если известно, что каждая дуга обладает некоторой максимальной пропускной способностью, превысить которую мы не можем. Эта модель используется для оптимизации загрузки судов, иногда поездов и самолетов.
Благодаря настойчивой работе исследователей с годами удалось достичь уменьшения степени сложности некоторых задач из теории графов. Приведем только один пример.
Проверка планарности графа. (Сложность О ⑺•)
Граф является планарным в том и только в том случае, если мы можем изобразить его на плоскости так, что его ребра имеют общие точки только в вершинах.
В 1930 г. для выполнения этого теста Куратовский предложил метод, сложность которого составляла О(п6). До 1970 г. было получено несколько полиномиальных методов понижающихся степеней сложности ——вплоть до О(п2). В 1970 г. Хопк- рофт и Тарьян разработали метод сложностью порядка O(n log и), и наконец, в 1974 г., улучшая его, они добились минимальной сложности О(п).
Еще более необычно обстоит дело с задачами, для которых в течение продолжительного времени не было известно полиномиального алгоритма, и при этом никто не мог Доказать ни того, что такого алгоритма не существует, ни того, что данная задача является необходимо сложной в силу эквивалентности
задачам этого класса. Именно таким статусом долгое время обладало линейное программирование.
Линейное программирование.
Речь идет о решении в пространстве Кл системы линейных уравнений вида
АХ = Ь,
где Л — матрица размером т^п с заданными элементами; X ——вектор, состоящий из п положительных действительных неизвестных, X 三 Rn; b — вектор из т заданных свободных членов.
В случае необходимости множество решений X сокращается с сохранением тех решений, которые минимизируют какой-либо (также линейный) функционал вида сХ, где с ——вектор с п заданными коэффициентами.
Такая формулировка позволяет моделировать огромное число задач большой размерности и большой значимости (в плане ожидаемой материальной выгоды), причем из различных областей: сюда относятся управление производством, доставка грузов, оптимизация перегонки нефти, производство и распределение электрического тока. Вот уже 25 лет линейное программирование способствует успеху в области исследования операций; оно принесло известность Г. Данцигу — создателю метода, используемого сегодня для решения этого класса задач.
Однако алгоритм Данцига, называемый симплекс-методом, базируется на некоторой эвристике использования градиента (т. е. локального оптимума), если его достижение обеспечивается выпуклостью пространства поиска и может получиться так, что мы попадем туда только после того, как пройдем экспоненциальное (зависящее от m н 枕)число точек или итераций.
Итак, вот уже в. течение 20 лет симплекс-метод, постоянно дополняемый и улучшаемый, используется ——и весьма эффективно!——во всем мире. Даже для задач большой размерности (например, т = 1000, п = 40 000) при теоретической сложности порядка О(%т) на практике отмечалась сложность порядка 0(吟.
Затем в 1979 г. Хачиян предложил для задачи линейного программирования полиномиальный алгоритм, существенно отличающийся от симплекс-алгоритма. И хотя он объясняет экспериментальный успех симплекс-метода, у него мало шансов “свергнуть” его с трона окончательно: при решении реальных задач симплекс-метод вполне пригоден.
Основное достоинство алгоритма Хачияна состоит в следующем: наконец, установлено, что некоторое семейство алгоритмов
вычислительной математики сходится с заданной точностью за полиномиальное число этапов.
Кроме того, алгоритм Хачияна завершает список полиномиальных, т. е. хорошо решаемых, задач: ведь в действительности они очень немногочисленны!
Разумеется, перечисленные выше задачи не исчерпывают всего многообразия формулировок для существующих частных случаев. Для некоторых задач (например, для проблемы изоморфности двух произвольных графов), как и для линейного программирования до открытия Хачияна, не существует полиномиального алгоритма, хотя их эквивалентность каким-либо экспоненциальным задачам не доказана.
Очевидно, что класс задач; не решаемых за полиномиальное время, намного больше, чем класс полиномиальных задач. Даже если не учитывать задач, для которых время подсчета заведомо должно быть экспоненциальным, у нас остается обширный загадочный класс, включающий задачи, теоретически допускающие ио.нтомиальную сложность, но пока еще не имеющие хорошего j - м:ч1 гма решения.
Классификация задач по степени сложности
Как показывает опыт, любое более или менее близкое знакомство с той или иной областью формирует у каждого из нас иинтуитивное представление” о том, что одна задача является “более трудной^, чем другая. Это чисто субъективное понятие не может нас удовлетворить. Однако можем ли мы определить истинную сложность задачи?
Понятию сложности и классификации вытекающих из него задач посвящен этот раздел.
Сначала поговорим о различии между математикой и информатикой: в информатике недостаточно высказать утверждение о существовании некоторого объекта в теории и даже недостаточно найти конструктивное доказательство этого факта, т. е. алгоритм. Мы должны учитывать противоречия пространства и времени, навязываемые нам миром, в котором мы живем: необходимо, чтобы решение можно было вычислить, используя объем памяти и время, приемлемые для человека или машины.
Поскольку любой метод разрабатывают для решения нескольких однотипных задач с различными исходными данными, естественным критерием качества метода в целом является решение наихудшего из всех возможных случаев, допускающих применение рассматриваемого метода. Говоря конкретно, опре^ деляющим в конце концов является общее число элементарных
операций. Для наглядности нужно выразить это число через размерность входных данных решаемой задачи.
Таким образом, сложностью процедуры называется выраженная 8 виде функции от размерности входных данных верхняя граница числа операций, необходимых для выполнения этой процедуры.
Сложность задачи ——это сложность наилучшего алгоритма, известного для ее решения. Следовательно, она зависит от уровня развития методов решения. По существу здесь возникают два основных вопроса:
До какого состояния можно улучшать данный алгоритм? Известны ли для отдельных случаев методы оптимальной сложности? Каково число задач, которые хорошо решаются, т; е. задач невысокой степени сложности (например, п или п2, где и —— размерность входных данных)?
Приводит лли учет степени сложности к иной классификации задач и предлагаются ли какие-нибудь методы для перехода из одного класса в другой, от “трудной” задачи к более **простойп?
Ниже будут даны ответы на эти два вопроса. Они показывают, что для решения многих задач "классических" алгоритмических методов явно недостаточно и что перспективными являются исследования в области искусственного интеллекта.
Три класса задач
Самыми лучшими являются линейные алгоритмы, которые обладают сложностью порядка (а*п = Ь) и называются также алгоритмами порядка О (и) (где п — размерность входных данных).
Такие алгоритмы реально существуют. Например, подсчет суммы чисел, состоящих из ni и Пг цифр, способом, с которым все знакомятся в начальной Школе, требует подсчета не более п1( + ^2 одноразрядных чисел и не более чем max(«i, пг) запоминаний.
Перемножение двух одноразрядных чисел, прибавление числа и запоминание — все это элементарные операции, которые может выполнить любая машина. Таким образом, данный алгоритм сложения в целом имеет сложность порядка О(п\ + + п2); при этом, разумеется, приведенное выражение показы- вает только порядок величины: постоянные факторы в нем не учитываются (вот почему исчезают подсчеты, связанные с запоминаниями).
Другие хорошо известные алгоритмы — деление, извлечение квадратного корня, решение уравнений второй степени——
в результате обобщения этой линейности попадают в первый класс — класс полиномиальных алгоритмов.
Класс Р: полиномиальные алгоритмы
Мы называем “хорошей", или принадлежащей классу Р, задачу, для которой известен алгоритм, сложность которого составляет полином заданной, постоянной и не зависящей от размерности входной величины п степени.
Класс Е: задачи, экспоненциальные по природе
Экспоненциальной по природе считается задача, сложность которой не менее порядка fn (где f ——константа или полином от и), например, в случае, когда число ожидаемых ответов уже само по себе экспоненциально.
К этому классу относятся задачи, в которых требуется построить все подмножества некоторого множества, все клики (т. е. полные подграфы) некоторого графа или же все поддеревья некоторого графа. Действительно, можно доказать, что число выходов в этом случае представляется в виде (полином от п)п. Имеются некоторые задачи со сложностью, которую можно описать формулой
2“
2
2
где п ——размерность входной величины, т. е. зависит от данных. К ним относятся задачи распознавания правильных выражений на языках, имеющих относительно несложные алфавиты и правила построения единиц.
Заметим, что при небольших значениях п экспоненциальный алгоритм может быть более быстрым, чем полиномиальный.
Однако различие между этими двумя типами задач велико и всегда проявляется при больших значениях п.
На практике существуют задачи, которые заранее не могут быть отнесены ни к одному из рассмотренных выше классов (ни к классу Р, ни к классу f). В их условиях не содержатся экспоненциальные исчисления. Однако для многих из них до сих пор не разработан эффективный (т. е. полиномиальный) алгоритм.
Задачи, не попадающие ни в класс Р, ни в класс Е
К этому классу относятся следующие задачи:
Решение систем уравнений с целыми переменными (Dio- phante, 410).
Определение цикла, проходящего через все вершины некоторого графа (цикл Гамильтона) (Hamilton. 1870).
Существование среди заданных подмножеств некоторого избранного семейства, покрывающего данное множество.
Составление расписаний (и соответственно раскрасок), учитывающих определенные условия (и соответственно бинарные отношения).
Существование множества значений логических переменных, которые позволяют сделать значение произвольного заданного логического выражения ИСТИННЫМ (Cook, 1971).
Оптимизация пути коммивояжера через сеть городов.
Отбор файлов при запросе в информационный банк данных для получения информации с наименьшей стоимостью.
Размещение обслуживающих центров (телефон, телевидение, срочные службы) для максимального числа клиентов при минимальном числе центров.
Оптимальная загруака емкости (рюкзак, поезд, корабль, самолет) при наименьшей стоимости.
Оптимальный раскрой (бумага, картон, стальной прокат, отливки), оптимизация маршрутов в воздушном пространстве, инвестиций, станочного парка.
Диагностика (болезни, поломки, дефекты печатных схем).
Этот список можно продолжить.
Проблема состоит в следующем: можем ли мы надеяться, что какие-либо из этих задач попадут в класс Р?
К сожалению, в настоящее время ни для одной из этих задач не найдено полиномиального алгоритма.
Более того, для всех перечисленных задач была доказана взаимная эквивалентность, т. е. если все-таки удастся представить для одной из этих задач хороший (т. е. полиномиальный) алгоритм, то все они автоматически будут решены.
Наиболее удобный класс Р ——множество полиномиальных задач ——уже обсуждался выше в разд. 4.2, где мы отметили, что этих задач слишком мало: формальные задачи, которые люди сегодня умеют решать хорошо (т. е. алгоритмически и полиномиально), образуют весьма небольшое семейство. Все остальные задачи являются трудными и по определению относятся к области искусственного интеллекта.
Наконец, отметим, что, даже если для сформулированной на обычном йзыке задачи полиномиальный алгоритм существует» необходимость узнать это, сформулировать и смодели^ ровать условия задачи так, чтобы ее можно было обработать
хорошим алгоритмом, опять приводит к неполиномиальной сложности.
Класс NP: недетерминированные полиномиальные задачи
4.4.1. Два семейства машин
Когда для решения задачи мы не располагаем ни явной формулой, ни рекурсивным выражением приемлемой сложности, нам остается два последних способа: построение действенного алгоритма подсчета или метод перебора. Если мы говорим, что сложность задачи полиномиальна, это означает, что в любом случае, не прибегая к перебору, мы достигнем решения за полиномиальное число шагов.
Абстрактной моделью такого полиномиального алгоритма является черный ящик, умеющий выполнять только заданное множество элементарных операций: +, —, *, /, ИЛИ, И, ЧИТАТЬ, ПИСАТЬ, ЕСЛИ... ТО…,ПОВТОРЯТЬ. В заданный момент этот автомат находится в строго определенном состоянии; за один шаг он совершает единственное действие, обусловленное этим состоянием. Затем он переходит в следующее состояние, и все начинается сначала. Такой автомат называется также детерминированной машиной Тьюринга (ДМТ).
Механизм перебора, т. е. продвижения на ощупь, совершая предварительные попытки (а в некоторых задачах без этого обойтись нельзя), можно смоделировать с помощью другой, тоже весьма абстрактной, машины Тьюринга, называемой недетерминированной (НДМТ).
Помимо обычного набора инструкций в такой машине существует специальная инструкция "ВЫБОР [Е] *\ которая создает столько копий текущего состояния, сколько существует элементов во множестве Е. По соглашению машина останавливается в тот момент, когда одна из возникших ее копий достигает инструкции КОНЕЦ.
Опишем на этом новом языке недетерминированные алгоритмы для двух простых задач.
Задача 1. Разрешимость логического выражения
Пусть дано логическое выражение Е. Оно включает символы V (ИЛИ), А (И), ~] (НЕ) и логические переменные %, 92, ..., д〃. Нам нужно так подобрать значения q〃 чтобы при этих значениях выражение E(gi, 〃2, ..., q〃) было ИСТИННЫМ. Например, если
£(91 V П <72 V П <7з) A Si V ?2 V 〃)А (?з V П 衣)А (~1 %), то подойдет множество (ЛОЖЬ, ИСТИНА, ЛОЖЬ, ЛОЖЬ).
Алгоритм для НДМТ запишется в следующем виде;
ПОВТОРЯТЬ ДЛЯ 1^[Цп]
IВЫБОР [ИСТИНА,ЛОЖЬ]
КОНЕЦ ЦИКЛА по /
ЕСЛИ Е (力,ТО УСПЕХ; КОНЕЦ
ИНАЧЕ неудача.
Итак, этот алгоритм создает 2Л = 16 копий самого себя, и, в частности, двенадцатая копия приводит к успеху. В таком случае выражение £" называется разрешимым.
Задача 2. Раскраска географической карты в 3 цвета.
Речь идет о раскрашивании на плоской карте стран Р】, Р2, ..., Рп с помощью трех карандашей различных цветов, причем любые два граничащих друг с другом района должны быть раскрашены различно.
Недетерминированный алгоритм:
цвет (Pt) <-с{ {раскрасить страну так же, как смежные страны}
ПОВТОРЯТЬ ДЛЯ г^[1,п]
ЕСЛИ Р[ смежна с 修 ТО цвет (PJ с2
ХОНЁЦ ЦИКЛА по Z
ПОВТОРЯТЬ ДЛЯ k^[ltn\ ДО ТЕХ ПОР ПОКА существуют нераскрашенные страны ЕСЛИ страну Pk можно раскрасить только в цвет /
ТО цвет (РА) <- у
КОНЕЦ ЦИКЛА по 々
ЕСЛИ все страны раскрашены ТО КОНЕЦ
ИНАЧЕ: пусть Ртщ ~ страна с наименьшим индексом, которую можно раскрасить либо в цвет /ь либо в цвет /2: цвет (Pmin)<-ВЫБОР U”%]
Видно, с какой легкостью НДМТ позволяет записывать алгоритмы перебора. Она освобождает программиста от какого бы то ни было управления возвратами. Все происходит так, как если бы копии текущего состояния, каждая из которых в конечном итоге является продуктом детерминированной машины, работали параллельно, никак не затрагивая проблему технической осуществимости этого. Число таких детерминированных машин на самом деле произвольно. Поскольку это число
экспоненциально по природе, очень быстро происходит “взрыв” (см. два предыдущих случая).
Замечание 1. В предыдущих случаях каждая отдельная копия является детерминированной, а число шагов ——следовательно, и сложность каждой копии — полиномиально (в двух предыдущих случаях оно фактически линейно). Если обобщить сказанное выше, всякий алгоритм, который может быть выполнен за полиномиальное время на недетерминированной машине Тьюринга, мы будем называть недетерминированным полиномиальным алгоритмом, или сокращенно NP. Следствие, которое непосредственно вытекает из этого определения, можно записать в виде
Р и NP、
т. е. множество задач, полиномиальных на ДМТ, входит в NP, поскольку ДМТ является частным случаем НДМТ.
Замечание 2. Для того чтобы перейти из NP в Р, нужно “совсем немного''. Так, во второй задаче, если мы допускаем только два цвета, предыдущий алгоритм дает ответ (возможно или невозможно), не используя ту петлю, в которой фигурирует ключевая инструкция “BblBOP”. Вывод о характере ответа достигается за О(п) шагов без какого бы то ни было возвращения назад: НДМТ сводится к ДМТ. В первой задаче множество возможных значений с самого начала ограничено двумя элементами. Однако в этом случае простота вычисления зависит от числа логических переменных внутри одной пары скобок. В самом деле, предположим, что их число не более двух и подлежащее оценке выражение приведено к нормальному виду
п
A(Q V S)
где г( и Si обозначают либо 力,либо ~|例.Поэтому, когда мы фиксируем значение первого терма, например в данной паре скобок —力,эта пара скобок может сразу принять значение ИСТИНА, и тогда мы перейдем к (i + 1 j-й паре. Если, получить решение на первом же шаге не удалось, вид второго терма, т. е. Si, позволяет сразу, т. е. не прибегая к инструкции иВЫБОР,\ а исходя из условия, получить то. значение, которое должна принять эта соседняя переменная. Если вплоть до г = п данный процесс распространения ограничений проходит успешно, алгоритм сразу выдаст ответ в виде вектора (д【,令2, •.., д%); в противном случае рассматриваемое выражение неразрешимо.
Итак, граница между классами Р и NP является резкой, причем проходит она по очень близким значениям: п — 2 и п —^- 3. .
Однако, остается вопрос, являются ли недетерминированные машины заведомо более мощными» т. е. могут ли они решить больше задач, чем детерминированные, или же, более коротко, равны ли Р и NP?
ИИили.или.р = РНр = РН
И
И
или.
или.
р = РН
р = РН
В настоящее время ответа на этот вопрос пока нет.
Список задач класса NP
В этот список попадают следующие задачи:
Разрешимость логического выражения.
Трехцветная раскраска графа.
Построение клики из k вершин на неориентированном графе.
Покрытые множеств: пусть давно семейство 尸 подмножеств Et некоторого множества Е; требуется найти подсемейство G из F, такое, что
У = У
Разбиение множества: то же условие, что и в предыдущем случае, но, кроме того, обязательно требуется
Ei П £/ = Ф (для всяких £/, Е/, принадлежащих G).
Существование гамильтонова цикла на неориентированном графе.
Задача о рюкзаке: для переменных х:, принимающих значения 0 и 1, найти решение уравнения
^йуХу — Ь (& н b — заданные целые числа).
В более общем виде это решение диофантова уравнения (т. е. уравнения в целых числах).
Разбиение на две части: пусть дано п чисел у/ из множества N; требуется разбить их на два непересекающихся подмножества /1 и /2, таких, что
Существование на ориентированном графе такого имеющего вид цикла маршрута коммивояжера, общая стоимость которого меньше заданного- числа Ь.
Данный список можно продолжить: большая часть современных задач фактически относится к классу NP. Кроме того, не следует забывать, что названные задачи являются модельными. Каждой из них соответствует несколько реальных формулировок условий задачи, таких, как упорядочение операций; распреде«пение персонала; оптимизация перевозок, ректификации, размещения предприятий; управление производством; проектирование в области электроники или архитектуры.
Чтобы доказать, что некоторая задача из данного списка принадлежит классу NP, достаточно выписать недетерминированный алгоритм, который решает ее с полиномиальной сложностью. Например, рассмотрим задачу существования на ори-
ентированном графе G меньшей или равной Ь.%一1S {2,m}ентированном графе G меньшей или равной Ь.%一1S {2,m}гамильтонова цикла со стоимостью,
ентированном графе G меньшей или равной Ь.
%一1
S {2,m}
ентированном графе G меньшей или равной Ь.
%一1
S {2,m}
{Пункт отправления}
{Множество вершин, которые нужно посетить}
стоимость — Опи — 1ПОВТОРЯТЬ ДО ТЕХстоимость — Опи — 1ПОВТОРЯТЬ ДО ТЕХ(Общая стоимость}
стоимость — О
пи — 1
ПОВТОРЯТЬ ДО ТЕХ
стоимость — О
пи — 1
ПОВТОРЯТЬ ДО ТЕХ
{Число уже посещенных городов}
ПОР ПОКА преемник (t^J 声 0:
{Преемник (匕%J обозначает допустимое (не содержащее паразитных циклов) множество городов, в которые можно попасть из vnv}
vnv_] ВЫБОР (преемник (%/)
тги + 1
стоимостьстоимость + стоимость (дуга (vnv_^ vnu)) КОНЕЦ ЦИКЛА
ЕСЛИ nv—nW стоимость &b ТО успех: КОНЕЦ ИНАЧЕ неудача
Каждая копия этого алгоритма действительно приводит к полиномиальному числу шагов, точнее 冷,причем независимо от значения Ь; следовательно, задача существования цикла стоимостью, не большей Ь, попадает в класс NP.
Замечание. Задача об оптимальном гамильтоновом цикле не попадает в класс NP. В самом деле, в качестве подзадачи в нее входит доказательство несуществования циклов, по стоимости превышающих Ь. Следовательно, к классу NP эта задача не относится. Она является дополнительной по отношению
к рассмотренной выше, так как теперь мы отыскиваем те циклы, которые не являются решениями той задачи. Однако нельзя утверждать, что если некоторая задача Q принадлежит классу NP, то и дополнительная к ней задача Q тоже входит в NP.
На первый взгляд такое положение не соответствует иин- туициим, поскольку в классе Р аналогичное утверждение является справедливым. Но перейти к дополнительной задаче в классе NP означает поменять местами в соответствующем недетерминированном алгоритме все случаи успехов и неудач. Для задачи Q конечный успех означает неудачу во всех ветвях исходного недетерминированного алгоритма. Следовательно, для получения ответа нужно подождать, пока закончат работу все ДМТ. Сложности суммируются, а поскольку число ДМТ не обязательно полиномиально, ничто не обеспечивает того, чтобы Q 三 NP при Q 三 NP.
В частности, для задачи существования на графе G гамиль- трнова цикла стоимостью, не меньшей Ь, нам не удается написать соответствующий недетерминированный алгоритм; следовательно, данная задача не относится к классу NP и главным образом потому, что разность между & и реальной стоимостью некоторого гамильтонова цикла заранее может быть сколь угодно велика (она не. ограничена полиномом, зависящим от числа городов, которые нужно посетить). Итак, задача об оптимальном маршруте коммивояжера не попадает в класс NP.
Из задач на оптимизацию в класс NP попадает только задача поиска существования решения с заданной стоимостью. В общем случае задача оптимизации в настоящее время не может быть отнесена к какому-либо классу.
Изучение задач типа NP
с помощью классов эквивалентностей
Сначала мы докажем, что задачи, имеющие различные условия, но относящиеся к классу NP, на самом деле эквивалентны.
Приводимые ниже определения позволят в первую очередь уточнить, что мы понимаем под эквивалентными задачами.
Определение 1. Задача Q сводится к задаче R тогда и только тогда, когда для всякого решения s задачи R существует функция g(s), которую можно вычислить полиномиально и которая является решением задачи Q..
Тогда Q является Частным случаем R и можно записать:
Q f
Это, кроме того, означает: если мы умеем решать R, то мы умеем решать и Q.
Определение 2. Если одновременно Q + Rh R->Q, то мы говорим, что Q и R эквивалентны.
Определение 3. Задача называется ^P-cлoжнoй тогда и только тогда, когда к ней сводима любая задача из класса NP.
Замечание. Утверждение, что задача является ^P-cлoжнoй, не обязательно означает ее принадлежность классу NP.
Полезность этого определения подтверждается следующей теоремой, которая служит исходным пунктом при установлении многочисленных отношений эквивалентности между задачами.
Основная теорема (Cook, 1971)
Задача разрешимости логического выражения является NP-сложной.
Итак, данная теорема утверждает, что решение любой задачи из класса NР (т. е. такой задачи, которую можно обработать на НДМТ за полиномиальное время) может быть получено из решения задачи разрешимости с помощью некоторой трансформации, которая тоже полиномиальна. Или, иначе, для решения произвольной задачи класса NP достаточно уметь решать задачу разрешимости:
Любая задача класса NP -> задача разрешимости.
Этот результат впервые получен Куком (1971 г.) в связи с изучением вопросов автоматического доказательства теорем и является более тонким математическим результатом по сравнению с классическими теоремами о неразрешимости в формальных системах [Church, 1932; Godel, 1931; см. гл. 3].
При доказательстве этой теоремы, которое мы приведем ниже, нам придется уточнить формальную модель НДМТ.
Недетерминированная машина Тьюринга (НДМТ) состоит из считывающе-записывающей головки, регистрирующей л-енты, разделенной на ячейки, в которых записаны символы 5,。2, или s・ Она характеризуется конечным множеством внутренних состояний F и семью свойствами:
в каждый момент времени головка имеет доступ только к одной ячейке регистрирующей ленты;
в любой момент времени каждая клетка содержит один символ;
в данный момент допускается только одно состояние;
изменять можно только ячейку, находящуюся под головкой;
остальные действия (перемещение головки, изменение внутреннего состояния, инструкция “ВЫВбР”) могут быть выполнены только с помощью функции Def^, определяющей машину М;
исходным состоянием может быть любое возможное состояние;
конечным называется состояние, связанное с первым успехом (по отношению к последней неудаче).
Теперь, когда задана недетерминированная машина Тьюринга М, описываемая по предложенной выше схеме, и, помимо этого, задача Q произвольной размерности п, которую можно решить на этой машине, мы построим в явном виде логическое выражение Ем, q, такое, что
Ем, q разрешимо <=>Q можно решить на М за полиномиальное время.
Важным моментом является то, что доказательство разрешимости выражения Ем, q можно проводить с помощью любого полиномиального алгоритма. “Q можно решить на М за полиномиальное время” означает, что существует по крайней мере одна Последовательность состояний Оо, &, 02, .. ., 9m, где
• б/ ^ Def^(0z-i) {0(——является “законным ходом”};
0о — исходное состояние;
0т — конечное состояние, причем т W р (п), где р — неко- 一 торый полином;
никакая другая законная цепочка состояний 0О, 0ь ..., 8走 не имеет больше чем р(п) ячеек, т. е. в ней не более р(п)1 Шагов.
выражение EMl <?, которое мы построим ниже, будет имитировать цепочку 0о, 01, …,0m. В него войдет ряд переменных. Каждое присваивание значений этому множеству 7переменных соответствует не более чем одной последовательности законных состояний. И наконец, значение ИСТИНА данное выражение принимает тогда и только тогда, когда существует набор значений, который соответствует последовательности, приводящей к успеху.
Используем такие переменные, которые допускают точное описание рассматриваемой НДМТ; они бывают трех типов.
f (i, 0) = 1 тогда и только тогда, когда считывающё-записы- вающая головка установлена на ячейку i в момент времени 0 (1 W i V /и, 1 W 8 W 九).
«(/, 0) == 1 тогда и только тогда, когда в момент времени 0 машина М находится в состояний /, причем это состояние является единственным (1《j W А где f — число возможных состояний из множества 户;1 W 6 & m).
u(t,比 8) = 1 тогда и только тогда, когда в момент времени 0 i-я ячейка на регистрирующей ленте машины М содержит 左-й символ (1 ^i^m, iW^Wr и, наконец, 1 & 8 W ® •
Число символов г постоянно и не зависит от /г, так что число введенных логических переменных составляет 〜т?, т. е. является полиномом, зависящим от задачи, размерность которой на входе составляет п.
Теперь свойствам машины М 1—7 мы поставим в соответствие семь логических выражений (А) — (G).
Головка проверяет одновременно только одну ячейку,
V9, ]&8《也
m丄 m
£ / 亿 9) = 1 и, следовательно, II X f 亿 8) = L
I,0=1 i=l
Это выражение содержит т термов; следовательно, условие А записывается с помощью т2 термов.
В любой момент времени в каждой клетке имеется только один уникальный символ.
V0, 1 <0^т,
Vi, 1 ^Z^m, £ обозначает ячейку с номером /.
Мы получаем 2 у (Л 瓦 8)= 1.
Поскольку г не зависит от п, условие В записывается с помощью т2 термов.
.С. М может находиться в данный момент только в одном состоянии.
ve, 1《8《团,
£〃亿 8) = 1.
Условий С записывается с помощью т термов, так как число состояний f не зависит от машины Л4.'
D. На ленте может изменяться только ячейка, находящаяся под головкой.
V/, l^i^mt
VA [《后&Г,
Ve, 1<0<т,
® (/,瓦 8) = 1) е ((/ (厶 0)= 1) V (?亿后 8 + 1) = 1)),
т, е ес』н i-я ячейка находится под считывающей головкой машины М, и в ней содержится символ kt то
либо головка считывает i-ю ячейку в момент времени 9;
либо в момент времени 8 + 1 i-я ячейка все еще содержит ^-й символ.
Это хорошо согласуется с условиями А и В. Условие D записывается с помощью 0(加2) символов, поскольку г — константа.
Каждое новое состояние может быть получено только с помощью функции DefM, определяющей машину М, т. е. в момент времени 6:
ЕСЛИ t-я ячейка содержит символ /,
ЕСЛИ головка считывает ячейку Z, а М находится в состоянии 財 ТО следующее состояние является одним из состояний Def^C,/, k).
Это утверждение типа % # у мы будем записывать в виде ~lx V у или в данном случае после преобразования трех посылок:
е 亿“,8) = 0) V(U (/, » = 0) V С 亿 0) - 0) V [V & 拓,0+1) = =1 A u(/z,0+l)=l M(ih 0+ 1) = 1],
где / обозначает произвольное состояние из DMm (厶 /,々)・
Поскольку машина М является недетерминированной, для любой тройки (I, /,左)существует более чем одна тройка DefM(i, /, fe), но при этом таких троек всегда конечное число.
Таким образом, для фиксированных t, / и й независимо от п приведенное выше выражение имеет ограниченную длину. Поскольку число состояний f само является постоянным, условие Е записывается с помощью О(т2) термов.
Исходное состояние является законным, т. е. когда мы обозначаем с помощью индекса 1 состояние в момент времени 1, самая левая ячейка автоматически получает номер 1:
(и(1,. 1) = 1)Д(/(1, 1)=1).
Кроме того, ячейки с номерами от 2 до n + 1 содержат исходное условие Q, а другие ——пусты, т. е. если пустой символ закодирован единицей, то
( А (у (г, /;> 1) = 1)W А (”,1, 1) = 1)).
Следовательно, условие F имеет длину О(т).
尸曰((〃,1, 1)=1)八((小,1) = 1)( д ?&"1) = 1)х
义(А 认小,1)=斗
\n+2< i<m/
Свойство 7 утверждает, что в конечном счете существует искомое состояние Д, представляющее собой успешное завершение работы алгоритма.
Допуская, что начиная с этого момента машина остается в данном состоянии (конкретно М будет находиться в состоянии Л в момент времени /п = р(м)), мы получим и (Л, т).
Полное условие " для решения задачи Q с помощью машины М записывается в виде
H = A/\B/\C/\D/\E/\F/\G.
По построению данное условие выражается с помощью не более чем О(т3) термов, причем оно является выполнимым тогда и только тогда, когда машина М решает задачу Q. Действительно, если последовательность состояний 0ь 02, ..., 0т ведет к 0а, тем самым определены те значения переменных t, 〃,厂,которые присваивают Н значение ИСТИНА. И наоборот, если значения переменных известны, через функцию DUm они соответствуют последовательности законных состояний.
Так как мы не накладывали на нашу недетерминированную машину М никаких ограничений, мы доказали, что любая задача, которую можно решить на М (любой язык, понимаемый машиной М), полиномиально сводима к задаче разрешимости логического выражения.
Класс Л/Р-полных задач
С помощью теоремы Кука для всех задач Q се NP одновременно устанавливается отношение сводимости UQ-алогическая разрешимость”. Но отношение сводимости является транзитивным. Поэтому если нам удастся доказать, что логическая разрешимость сводима к некоторой задаче Qi, которая сама сводится к Qz, и т. д, то мы получим класс эквивалентных задач.
Это фактически заставляет уточнить границы класса III путем разбиения его на две части в зависимости от того, смогли ли мы доказать принадлежность/непринадлежность задачи классу NP
Определение. Задача называется “Р-полной в том и только в том случае, если она является ^P-cлoжнoй и попадает в класс NP.
Для лучшего понимания проблемы рассмотрим рис. 4.9.
Получение результата Р = NP сегодня кажется невероятным. Для большинства действительно сложных классических задач была доказана принадлежность к классу ЛгР-сложных. Но, что еще более удивительно, почти все они попадают в класс NP, т. е. являются Л^Р-полными, и, следовательно, в этом смысле
вс皂 они эквивалентны. Если бы мы научились решать одну из них за полиномиальное время, то мы бы смогли решить все задачи данного класса за промежуток времени того же порядка величины. *
Напомним два других свойства А/^-полных задач: мьт не знаем, являются ли они неполиномиальными, и не знаем для их
NPn У^-сложныеNPn У^-сложные.NP- полные.NP- полныеР ♦Р ♦X ¥" сводится•NP-r^oww/eX ¥" сводится•NP-r^oww/eлюбая задачалюбая задачаиз NPиз NP3adawt которые можно решить падино^иа/76 - ное время на ДМТ Задала, которые -можно решить за палино/гиаль - ное брема на %”3adawt которые можно решить падино^иа/76 - ное время на ДМТ Задала, которые -можно решить за палино/гиаль - ное брема на %”
NPn У^-сложные
NPn У^-сложные
.NP- полные
.NP- полные
Р ♦
Р ♦
X ¥" сводится•NP-r^oww/e
X ¥" сводится•NP-r^oww/e
любая задача
любая задача
из NP
из NP
3adawt которые можно решить падино^иа/76 - ное время на ДМТ Задала, которые -можно решить за палино/гиаль - ное брема на %”
3adawt которые можно решить падино^иа/76 - ное время на ДМТ Задала, которые -можно решить за палино/гиаль - ное брема на %”
Прочиезадачи
Рис. 4.9. Пример сортировки первого типа.
решения детерминированного полиномиально ограниченного алгоритма.
Приведем для примера несколько доказательств эквивалентности.
Идея состоит в том, чтобы перевести задачу из одного класса задач в другой. Трудность заключается в том, что. мы не умеем как следует решать основную задачу — задачу логической разрешимости. Но принципы моделирования и преобразования условий могут успешно использоваться в конкретных случаях.
В действительности при изучении этих проблем никогда не следует упускать из виду, что даже если теоретическая принадлежность некоторой общей задачи Q к классу ?/Р-полных доказана, любая конкретная задача с уточненными данными может быть все-таки решена. Не является невозможным решение этой уточненной задачи за полиномиальное время. Единственное, что утверждает теория: для общего случая не существует единого полиномиального алгоритма.
Несколько доказательств эквивалентности задач
В настоящее время получено доказательство эквивалентности обширного семейства задач. Сводимость задач, о которых вначале было известно, что они принадлежат классу NP, к задаче Кука была доказана либо непосредственно, либо косвенно (с помощью транзитивности) с использованием дерева, изобра- женного на рис. 4.10.
Чтобы доказать, что задача Q является ^P-пoлнoй) мы каж- дый раз должны доказывать, что:
Q попадает в класс NP;
Q является .VP-сложной.
Однако, поскольку Кук доказал, что для всякого Qr NP Q сводится к задаче разрешимости логического выражения, остается доказать, что логическая разрешимость сводится к Q. Иначе
Разрешимостьлогического выражения
КликаКликанощност^ю *нощност^ю */ Существование гамильто-/ Существование гамильто-ПокрытиеПокрытиеРазрешимость тренпитерсмь - ноео логического выраженияРазрешимость тренпитерсмь - ноео логического выраженияРазрешимости системы урав' нений в целых числамРазрешимости системы урав' нений в целых числамнова цикланова циклаГамильтоновциклУпорядочениес К-илтрасрамиГамильтоновциклУпорядочениес К-илтрасрамиРюкзцк «Разбиение на施 частиРюкзцк «Разбиение на施 частиРаскраскаРаскраскаРазбиениеРазбиение
Клика
Клика
нощност^ю *
нощност^ю *
/ Существование гамильто-
/ Существование гамильто-
Покрытие
Покрытие
Разрешимость тренпитерсмь - ноео логического выражения
Разрешимость тренпитерсмь - ноео логического выражения
Разрешимости системы урав' нений в целых числам
Разрешимости системы урав' нений в целых числам
нова цикла
нова цикла
Гамильтоновцикл
Упорядочениес К-илтрасрами
Гамильтоновцикл
Упорядочениес К-илтрасрами
Рюкзцк «
Разбиение на施 части
Рюкзцк «
Разбиение на施 части
Раскраска
Раскраска
Разбиение
Разбиение
К-разрезка
Рис. 4.10. Доказанные отношения сводимости в классе jVP-полннх задач.
говоря, необходимо и достаточно построить полиномиальное преобразование, которое позволяет перейти от задачи разрешимости к задаче Q, причем это преобразование должно быть таким, чтобы любому решению задачи Q можно было поставить в соответствие некоторое решение задачи разрешимости логического выражения.
Сначала докажем, что задача разрешимости логического выражения——даже гораздо более простого по форме, чем общий случай, рассматриваемый в теореме Кука,——является тем не менее эквивалентной задаче в общем виде.
Пример 1
Задача разрешимости логического выражения, приведенного к нормальной конъюнктивной форме (НКФ), является TVP-полной.
Задача разрешимости логического выражения, приведенного к НКФ и имеющего не более трех литералов в одном операторе, является Л^Р-полной.
Некоторое выражение является приведенным к НКФ, если оно записывается как логическое произведение (операция Л) сумм (операция, V) элементарных единиц, называемых лите-
ралами; каждый литерал — это либо д, либо ~|д, где q обозначает логическую переменную. Выражение из условия " в доказательстве теоремы Кука может быть приведено к НК①.В самом деле, если перейти от переменных-, принимающих значение О и 1, к логическим (1 -<=> ИСТИНА, 0-<=> ЛОЖЬ), то суммы
X 8)= 1
is/
могут быть записаны в виде
f V /亿 8) A (F& 8) VF(j, В))»
Первое заключенное в скрбки выражение (или оператор) содержит информацию о том, что по крайней мере одна из переменных истинна; во втором операторе утверждается, что в каждой из j/|X(R| ~ 0/2 пар не могут быть истинными обе переменные одновременно.
Таким образом, условия А, В и С приводимы к НКФ. Стандартизация условия D достигается благодаря тому, что во всех случаях осуществляется замена символа-<=>:
力^=>д заменяется на (Пх V z/) А (л V ~ly)t т. е. на выражение, приведенное к НКФ, общая длина которого а в худшем случае удваивается. Условия £,尸,G приводятся к НКФ с .помощью замены типа переменных — с булевых (0 — 1) на логические (ИСТИНА — ЛОЖЬ).
Итак, длина выражения Н была умножена на константу, и поэтому результат Кука сохраняет свою значимость и для выражений, приведенных к НКФ. Следовательно, в дальнейшем мы можем ограничиться рассмотрением множества выражений, приведенных к НКФ.
Среди них первыми очевидными кандидатами в задачи класса NP являются выражения, содержащие не более трех литералов в одном операторе (так называемые «3-НКФ»).
Задача о разрешимости 3-НКФ попадает в класс NP、потому что очевидно, что для НДМТ можно установить некоторый алгоритм, число этапов в котором постоянно и равно 3: !1ОВТОРЯТЬ ДО ТЕХ ПОР ПОКА существует необработанный оператор & {С尸 f (х, у, е)}
х — ВЫБОР [ИСТИНА, ЛОЖЬ]
уВЫБОР [ИСТИНА,ЛОЖЬ]
гВЫБОР [ИСТИНА,ЛОЖЬ]
ЕСЛИ Ci — ЛОЖЬ ТО неудача
КОНЕЦ ЦИКЛА
ЕСЛИ все операторы обработаны ТО успех; КОНЕЦ
Задача разрешимости произвольного логического выражения сводится к задаче разрешимости 3-НКФ.
Приводимое ниже преобразование позволяет перейти от произвольного оператора, включающего i литералов, к трехлитеральному оператору; после введения / — 3 новых переменных у выражение (%i V Х2 V … V х() принимает вид
Ui V 尤2 V %) А (/ V Т 払 V 42)A (х4 V П //2 V %).八(尤5V「禽 V
V p4)…,(修一2 V "1 勿一4 V Pi_3)Л (尤i - l V %i V "1 4i_3),
Как можно легко доказать индукцией по f, эти два выражения формально эквивалентны.
Пусть имеется некоторое решение выражения, записанного в иксах, например х^ = ИСТИНА. Зададим теперь
у, = ИСТИНА для j 久办一2,
у{ = ЛОЖЬ для / > z0 ~ 2.
Тогда выражение, записанное в иксах и игреках, тоже имеет значение ИСТИНА.
Наоборот, если существует множество значений у,, придающих этому выражению значение ИСТИНА, значение по крайней мере одного 修 должно быть ИСТИНА, так как значение первого оператора непременно ИСТИНА. Следовательно, мы получаем
ЕСЛИ ух = ЛОЖЬ ТО 修 или х2 ИСТИНА и тогда КОНЕЦ;
ИНАЧЕ {払=ИСТИНА}
ЕСЛИ у(_з ~ ЛОЖЬ ТО Xi или x^i ИСТИНА
и тогда КОНЕЦ;
ИНАЧЕ {山=ИСТИНА,
'〃一з = 〃О氷Ь}
ТО обязательно существует /0, ] & % & i — 4 такое, что z/Zo = ИСТИНА, г//0+1 = Л°ЖЬ; следовательнб,
х,.0+2 = ИСТИНА
КОНЕЦ УСЛОВИЯ
КОНЕЦ УСЛОВИЯ
Так, например, при t = 4 и указанном преобразовании выражение (%1 V х2 V %з V х4) приобретает вид (%i V х2 V у\) А д (хз V х4 V ~lz/i), причем оба выражения эквивалентны.
Поскольку новое выражение содержит ровно i —2 трехлитеральных операторов на каждый оператор,, включающий первоначальное число литералов (I ^ 4) , общее число термов в новом выражении менее чем в 3 раза больше исходного.
Итак, мы можем задачу разрешимости произвольного логического выражения свести за полиномиальное время к задаче разрешимости 3-НКФ.
Пример 2. Задача существования К-клнкн на произвольном графе является Д'Р-полной.
{Клика ——подмножество попарно связанных вершин; К-кли- ка — клика мощностью К}
Эта задача принадлежит классу NP, поскольку каким бы ни был граф, существует Cf (т. е. полиномиальное число) подмножеств, состоящих из К вершин. В каждом цз них достаточно проверить существование ребра между авум兄 произвольными вершинами. Следовательно, нужно выполнить О (X2)- тестов.
Задача разрешимости сводится к задаче существования К-клнки.
Пусть дано произвольное выражение £, приведенное к НК① и содержащее К операторов:.
,)■
где & = V Xij, а %” 一 переменная или ее отрицание.
В соответствий с этим выражением построим граф, каждая< вершина которого соответствует паре (х, /), где х является литералом f-ro оператора С( из выражения Е, и дуга которого связывает (х„ /) и (у, j) тогда и только тогда, когда
耍/, т. е. этим двум вершинам соответствуют различ-^ ные операторы;
尤耍 ~1 У, т. е. эти два литерала не являются отрицанием друг друга.
Перед тем как продолжить доказательство, изобразим пример такого графа. Если выражение £ имеет вид
(X! V П ^2 V ~| х3) A Ui V х2 V 夠)А(Хз V Т м) А ( Т 修), результирующий граф имеет девять вершин ——столько же, сколько литералов содержится в Е. Ребро связывает два литерала, входящие в различные операторы, причем значение этих литералов может быть одновременно ИСТИНА (рис. 4.11).
Существование в этом графе К・клнкн соответствует, следовательно, случаю, когда для выражения £ существует множество из К литералов, принадлежащих К различным операторам
Рис. 4.11. Окончательный граф для задачи о К-клнке.
(т. е. в данном случае всем) и способных одновременно принимать значение ИСТИНА.
И наоборот, если выражение разрешимо, т. е. если для переменных существует множество истинностных значений, таких, что каждый оператор принимает значение ИСТИНА, то в каждом из К операторов существует по крайней мере один литерал, имеющий значение ИСТИНА. По построению этому множеству литералов в нашем графе соответствует множество из К принадлежащих к разным операторам и взаимно не исключающих друг друга — а в силу этого связанных друг с другом — вершин, т. е. К-клнка.
В рассматриваемом случае К = 4, н мы получаем клику (Пх3С1, %2。2, ~1х4С3, HxiG) или же клику (~1х2, &, %4。2, %зСз, »i&), поскольку (FC) присутствует всегда.
Пример 3. Задача о существовании решения системы уравнения в целых числах (УЦЧ) является А^Р-полной.
Эта задача относится к классу NP, поскольку она может включать лишь конечное число различных выборов (число значений переменных).
Задача разрешимости логического выражения сводится к задаче УЦЧ с помощью полиномиальной трансформации.
Действительно, построим УЦЧ вида Ax — b с п булевыми неизвестными %〃 находящимися во взаимно однозначном соответствии с неизвестными из исходного выражения £(х; = 1 в УЦЧ ч=> xi — ИСТИНА в Е) с К условиями, если Е. содержйт К операторов. Пусть для элементов ац из Л (l《iWK, 1W
w jw〃):
в том й только том случае, если X/ является литералом Cz;
ai} — —1 в том и только том случае, если Г%/ является литералом Cf;
О в остальных случаях.
Отсюда следует, что i-му условию, накладываемому на УЦЧ, соответствует i-й оператор, если в качестве второго члена bi этого условия мы возьмем
^z = 1 — I {//i ^/— литерал из CJ|.
Очевидно, что & будет удовлетворено в том и только в том случае, когда по крайней мере один «положительный» литерал (соответствующий значению •。订=1) имеет значение ИСТИНА или когда по крайней мёре один «отрицательный» литерал (т. е. @了 = — 1) имеет значение ЛОЖЬ.
Это двойное условие записывается также в УЦЧ:
Z/一z х/》仇,
где /^ = {〃%厂一литерал из CJ,
7Г = {,//~] X; — литерал из Cz}.
В сортветствии с определением bi последнее неравенство можно также записать следующим образом:
%/ + ]%」^1+ ^xi/1\
Следовательно, если Е удовлетворено, то по крайней мере один X/ из Jf равен 1 или же один 打 из /『равен 0 для любого i, 1 W" V А. В самом деле, если %九=1, где /о входит в /, то справедливо выражение (1), поскольку во всех случаях
/е/г х/ меньше, чем . I/Г |.
В другом случае, когда xlo — Q, где /0 входит в /力 это предполагает в первую очередь, что |/『|》1; так как сумма х; для / е //■ является положительней^ неравенство (1) выполнено, поскольку
]厶 |— 1》2
е/-
8 Ж.-Л. Лорьер
Таким образом, с помощью указанного полиномиального преобразования всякому решению УЦЧ можно поставить в соответствие некоторое решение задачи разрешимости логического выражения.
В частности, для того же выражения £, которое рассматривалось выше при установлении отношения эквивалентности классов задач Е =(修 V ~1 £2 V 尤з)八(%; V х2 V х4) A (х3 V V П ^4)A (~1 Xi), определяемая выше система уравнений в целых числах имеет вид
%i —也一%з》一1 {оператор &},
%i + %2 + %4》1 {оператор С2},
%з —/》0 {оператор С3},
—{оператор С4}.
Очевидное решение этой УЦЧ (из-за {С4}) является Xi = 0. Сумма {Ci} + {C2} в этом случае дает х< — х3 ^ 0 ——условие, из которого при объединении с {&} получаем 也一х3 = 0. После этого имеем
~ х2 — х3^ — I{&},
%2 + %4》1{С?}・
Отсюда в зависимости от значения х2 мы получаем два решения: (0, 1, 0, 0) и (0, 0, 1, 1).;
Очевидно, что они могут быть в свою очередь поставлены в соответствие двум кликам мощностью 4 из предыдущей задачи.
Главй 5
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА
Методы перебора традиционно применяются при решении большинства задач. Им посвящена большая дастн данной главы, а также последующие гл. 6 и 7.
Решение задач с помощью перебора
Класс комбинаторных задач
Сущность любой комбинаторной задачи можно сформулировать следующим образом:
«Найти на множестве X элемент х, удовлетворяющий совокупности условий К (%), в предположении, что пространство поиска X содержит некоторое конечное число различных точек».
Подобные ситуации возникают всегда, когда мы имеем дело с дискретными по природе элементами: логические голово- ломки; проблемы пополнения запасов на складе; выбор решения из множества возможных; выбор места расположения нового завода; прохождение пути по графу; доказательство теорем. Во всех этих случаях пространство поиска X является конечным и дискретным. Последнее означает, что все точки X отделены друг от друга. Именно при решении таких задач могут использоваться методы перебора.
Метод полного перебора
Когда требуется найти элемент, принадлежащий некоторому конечному множеству, мы можем перебирать все элементы, пока не найдем подходящий. Этот метод надежен, прост и прекрасно работает, если мощность множества не превышает 103 для ручного подсчета или Ю9 при подсчете на машине. Схема действий следующая:
Взять первый еще не рассмотренный элемент х0 из множества X.
Проверить совокупность условий К (х0).
Если какое-либо условие не выполнено, ^начать сначала.
Если выполнены все условия, х0 является решением (если нужны все решения, вернуться к п. 1).
Такой метод явного перебора можно легко усовершенствовать: вместо рассмотрения всего элемента %。 можно ограничиться некоторым его фрагментом, достаточным для проверки выполнения/невыполнения условий К(%). В 1891 г. Э. Люка
Рис. 5.1. Прохождение лабиринта.
в «Математических досугах» описал метод решения задач о прохождении лабиринта, представленного на рис. 5.1.
Метод Люка состоит в следующем:
Из клетки, в которой мы находимся, надо идти по еще не исследованному пути.
Если все пути, ведущие из этой клетки, уже исследованы, надо вернуться на один шаг назад по тому пути, которым мы пришли в данную точку.
Итак, вместо порождения всех подмножеств данного множества X (X — клетки лабиринта) мы рассматриваем лишь подмножества, образующие допустимые пути, и останавливаемся, когда встречаем тупик. Систематизация этого метода привела к появлению наиболее общей схемы решения задач, комбинаторных по природе: речь идет об имплицитном переборе. Наиболее благоприятным случаем перебора является случай, когда мы можем определить градиент.
Градиентные методы
Градиентные методы часто используются при решении конкретных задач: суть состоит в том, что для скорейшего достижения вершины надо продвигаться по самому крутому склону. Если мы на автомобиле хотим пересечь город с севера на юг, мы стараемся сохранить это направление как можно дольше, а когда условия движения заставляют нас отклониться от него, мы стремимся сделать это отклонение как можно меньшим. Стратегия градиента, или «подъема в гору», заключается в попытке достичь главного оптимума через последовательность ло-
кальных оптимумов (рис. 5.2). Как показывает опыт, эта стратегия вполне удачна, хотя, когда поисковое пространство не является выпуклым, она становится малоэффективной.
Каждой конкретной ситуации ставится в соответствие некоторая числовая оценка, достигающая экстремума в той вершине, к которой мы стремимся, и на каждом шаге выбирается
Рис. 5.2. Метод градиента.Рис. 5.2. Метод градиента.Вогнутее пространс/пбоВогнутее пространс/пбо
Рис. 5.2. Метод градиента.
Рис. 5.2. Метод градиента.
Вогнутее пространс/пбо
Вогнутее пространс/пбо
то действие, которое дает максимальное приращение оценочной функции по сравнению с текущим состоянием. К градиентным методам относятся симплекс-метод в линейном программировании (разд. 5.3), 4*-процедура (разд. 5.4), методы последовательных приближений в численном анализе, минимаксные
Рис. 5.3. Задача о стрелках.Рис. 5.3. Задача о стрелках.
Рис. 5.3. Задача о стрелках.
Рис. 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 означает возвращение к исходному положению, достаточно рассматривать лишь последовательности элементарных действий. Если в качестве оценочной
функции ситуации S мы решим выбрать функцию f(S), означающую число стрелок, находящихся в правильном положении, то мы получим: f(So) = f(0б0101) = 2 и f(Se) = /(111111) = 6. Действие а позволяет перейти от So к Si = (110101), где f(Si) = =4. Действие d позволяет перейти от Si к S2 = (110011), где f(S2) = 4, и, наконец, действие с позволяет достичь цели — положения Sb (очевидно, что порядок действий не имеет значения) .Отметим, что на втором шаге мы были вынуждены пройти
Рис. 5.4. Примеры неудачного применения метода градиента.
через уровень, на котором значение функции f(S) оставалось постоянным.
Однако наш маршрут тесно связан с характером оценочной функции, и поэтому, если бы мы взяли в качестве f(S) функцию, выражающую максимальное расстояние между двумя неверно расположенными стрелками, этот маршрут был бы иным, поскольку тогда f(So) = 4, f(Si) = 2, f(S2) = 1.
Метод градиента не гарантирует получения решения (за исключением случая, когда пространство отображения f(M) является выпуклым), так как могут возникнуть ловушки трех типов: второстепенные вершины, гребни и плато (рис. 5.4).
В последнем случае, который часто встречается в различных задачах, при подходе к решению в самом конце обнаруживается огромный срез, по которому неизвестно, как продвигаться дальше, и из-за этого приходится пересматривать саму оценочную функцию. Но для случаев, когда пространство f (S) является выпуклым, при удачном выборе оценочной функции решение достигается быстро и легко. Например, это верно для алгоритмов, рассмотренных в разд. 4.1, где f(S) — минимальное расстояние до исходной точки (в задаче поиска наикратчайшего пути) и f(S) — число сортируемых элементов (в задаче о сортировке).
Линейное программирование
Рассмотрим систему неравенств вида АХ ^ 6, где XeR方 Л — матрица размерностью т^п с действительными элементами, X — вектор-столбец размерностью (1 X п) > состоящий из неизвестных действительных чисел, а b — заданная вектор-строка размерностью (m X !)• В общем случае /п < « и система является неопределённой. Решения находятся по значениям некоторой функции дохода, т. е. по специальному фактору, значение которого должно быть максимальным.
Пример. Мастерская по производству нестандартной мебели получила одновременно два заказа. Для изготовления одного комплекта первого тйпа нужно одиннадцать заготовок и 3 ч работы, для второго — 4 заготовки и 5 ч работы. В распоряжении мастера имеется 46 заготовок и 32 ч времени; кроме того, он знает, что в первом заказе он получит* 14 фр. за каждую вещь, а во втором —только 7. фр. Как он должен организовать свою работу?
Если Xi и х2―число предметов мебели, сделанных по каждому из заказов, мы получаем
1 Ixj + 4х2 ^46 (условие по фурнитуре),
ЗХ] + 5х2 ^ 32 (условие по времени),
Z=14xi + 7%2 (условие максимума).
Пусть имеется некоторая система линейных неравенств типа АХ ^ 6 при МАХ[С-Х]. Поскольку равенствами манипулировать проще, чем неравенствами, обычно вводят вспомогательные переменные у\ и 勿,называемые невязками, с помощью которых нашу систему можно записать в следующем виде:
15 + ©2 + у】=46,
Зх] +" 5 左2 ~|_ у?=== 32,
max "4修+ 7%)
нлн, если использовать матричную запись,
Идея состоит в том, чтобы, исходя из очевидного решения 修=0, Х2 = д* Ух — 46,力= 32, улучшить его за счет макси' мально возможного увеличения значения той переменной» которая дает наибольшее приращение функции дохода Z.
• Используемый нами градиент в данном случае задается непосредственно последней строкой, и очевидно, что на первом этапе наиболее «доходной» : является переменная хь Итак, запишем
修= 46/11—(4/11) %2 —("И)班
или, в матричной форме,
4/111/11 0 -
Г-46/11-
0 5— 12/11-3/11 1
* X =
32 г- (3 • 46)/11
_0 7-56/11 -14/11 0 _
_—644/11_
Следовательно, функция дохода Z равна 644/11, когда х{ стремится к своему максимальному значению, т. е. 46/11, х2 остается равным 0, a z/2 = 32 —(3-46)/11 ==214/11. На самом деле мы осуществили обычное перемещение вдоль оси 修,которое показывает, что Z может продолжать увеличиваться — на этот раз при возрастании %2, чей градиент^.составляет 7 ——56/11 = 21/11.
Теперь коэффициент при 也 во втором уравнении равен 5 — —12/11, или 43/11, и мы получаем
%2 = 214/43 + (3/43)^ -(1/43)>2.
В матричной форме имеем,
г 1 0 1/11 + 4-3/11 -43-4/43-
О 1 -3/4311/43*Х=[
.0 О -1.4/11 + 3-21/11 - 43: -21・43 二
г 46/11 - 4-214/11 -43-1
=214/43”
_-14 • 46/11- 21 • 214/11 • 43」;
Это новое преобразование и вытекающие из него линейные комбинации показывают, что всеградиенты, все относительнйе выигрыши в Z・(последняя строчка предыдущей матрицы) отрицательны или равны нулю. Таким образом, оптимум достигнут; он составляет, •. 一
Z* = MAXZ= 14 • 46/11 + 21 - 214/11 • 43 === 68,033
при ^ = 102/43 = 2,371 н %2 = 214/43 = 4,977.'
В двумерном пространстве 修 X %2 можно непосредственно изобразить пространство поиска и интерпретацию этого градиентного алгоритма (разработанного Данцигом (1959) и известного как симплекс-метод (рис. 5.5)).,
/ ВЙйДя из начала координат (точка 0:打==*2 === 0), мы следуем по лийии ёамого крутого склона (в Соответствии с выражением Z 联 14xi + 7%2)Н попадаем в точку Р\, а затем в точку 「2, которая является допустимой, удовлетворяет уравнениям АХ ^ b и находится на максимальном расстоянии рт начала прямой Z.
Система уравнений имеет решение только в действительных числах. Приемлемое для мастера решение получается только
Рис. 5.5. Симплекс-метод в линейном программировании.
в том случае, если заказы первого и второго типов повторяются достаточно часто, чтобы разумно округлять получаемые количества предметов мебели до соответствующих целых: %『=2 и %2 = 5. В противном случае задача, в которой xf могут быть только целыми числами, существенно отличается от предыдущей, поскольку пространство поиска не является в этом случае непрерывным и вряд ли может быть выпуклым. Принципиально Другие методы, используемые для задач последнего типа, рас- “смОтрены в「гл. 8. 「
В матричной форме симплекс-метод легко может быть распространен на случай произвольного числа переменных и уравнений. Процедура сводится к последовательности линейных комбинаций, которые выбираются по результатам проверки значений градиентов. Когда ойи все становятся отрицательными, процедура завершается.
Формализация симплекс-алгоритма
二: Симплекс-алгоритм,1 слбжйоеть которого не является поли- номиальнрй, исполЬзует нескол|>ко простых свойств, выполняющихся дл^ линейных зздач.
L Неравенства a\X\ -f- ^2X2 + ... + anxn ^ b определяют ограниченные гиперплоскостями замкнутые выпуклые подпространства на Rz
На пересечении некоторого конечного числа выпуклых подпространств образуется выпуклое тело, которое мы будем называть полиэдром, если оно ограничено, и политопом ——в противном случае. .
Любая точка некоторого полиэдра может быть описана как линейная комбинация вершин, или точек-экстремумов, которые являются пересечениями исходных гиперплоскостей. Число этих точек конечно и не превышает С„ в R" (если мы имеем m гиперплоскостей (неравенств)).
Оптимум не может быть достигнут в точке, расположенной строго внутри политопа (см. определение выше), потому что тогда мы могли бы с помощью линейной комбинации построить на границе полиэдра точку, в которой функция дохода Z принимала бы более высокое значение. Если задача не вырождена, т. е. если ранг (детерминант) матрицы Л не равен т, то значение Z может быть улучшено за счет продвижения по гиперребру до следующей вершины.
Мы будем называть базовой квадратной матрицей матрицы Л любое подмножество индексов из множества [1, т], которому соответствует базовая квадратная матрица В, выделенная из 4 и имеющая ранг п. Сказанное выше эквивалентно утверждению: «Оптимум системы линейных неравенств Ах W b может быть достигнут при решении уравнения с базовой квадратной матрицей матрицы Л». Если матрица Л разбивается на матрицы В и N и система записывается в виде
Вхв + NxN = b,
то базовое решение определяется единственным способом: xN = 0 и Вхв — Ь.
Симплекс-алгоритм работает только с базовыми квадратными матрицами, имеющими решение (т. е. с такими, в которых Хв》0), и переходит от одной вершины к другой, используя метод градиента. На каждом этапе из базовой квадратной матрицы, удаляется один индекс: одна из переменных обращается в нуль, а другая попадает в базовую квадратную матрицу, т. е. произвольная переменная принимает ненулевое значение. Сходимость обеспечивается конечностью числа вершин политопа.
5.4. Градиентные методы в теорий графов 1 ,
Иногда метод градиента позволяет получить вполне определенное решение «в лоб》. Рассмотрим пример такой задачи из
области теории графов. В ней моделируются некоторые конкретные ситуации: проектирование телекоммуникационных или вычислительных сетей, обработка анкет, автоматическая классификация. Задача формулируется следующим образом:
Задан связный граф со стоимостями дуг G=(X, U). Требуется построить частичное дерево 4=(Х, V*), имеющее минимальную общую стоимость.
Дерево — это связный ациклический граф А = (Х, Р); по формуле Эйлера он содержит \Х\-1 ребер.
Если использовать метод градиента, по которому нужно рассматривать дуги графа, G в порядке возрастания стоимостей, то получается первый алгоритм решения этой задачи, предложенный Крускалем в 1956 г:
Алгоритм построения минимального дерева
—Расположить ребра графа G в порядке возрастания стоимостей;
У①
— До тех пор пока существуют необработанные ребра:
[
ЕСЛИ первое из них не образуют цикла с,
ТО добавить его к V.
Конец.
Замечание. Данный алгоритм содержит \Х\ этапов.
Доказательство алгоритма Крускаля
Обозначим стоимость дерева (X, У), полученную в результате последней итерации описанного выше алгоритма, через L. Докажем, что не существует дерева, имеющего стоимость меньше L. В самом деле, пусть среди множества деревьев имеется дерево (X, V*), стоимость которого L* является наименьшей. Деревья (X, V*) и (X, V) имеют по (\Х\ — 1) ребер каждое. Пусть ребро vt (1 W,W 九—1)—первое из числа ребер, входящих в У и не входящих в V* (если такого ребра не существует, то результат доказан). Добавление s в V* должно привести к образованию цикла. На этом цикле непременно существует ребро и。,которое не входит в У. Но тогда граф (X, V* + и( — и。)также является деревом, поскольку содержит (п——1) ребер и не имеет циклов. При этом добавление и。в граф (X, {偉卜 “2,
,.,и—}) не приводит к образованию цнк〃а* поскольку этот граф является поддеревом дерева V*, а это означает, что стоимость (ао)> стоимость ®). (Здесь мы без потери общности предполагаем, что все стоимости различны.)
линий элек-линий элек-системысистемыРис. 5.6. Граф тропередач.Рис. 5.6. Граф тропередач.
линий элек-
линий элек-
системы
системы
Рис. 5.6. Граф тропередач.
Рис. 5.6. Граф тропередач.
Из этого мы, наконец, получаем, что стоимость дерева (X, U* + 内一ио), равная £* + стоимость (⑺一стоимость (加), меньше, чем предположительно оптимальная стоимость L*, что противоречит исходному предположению.
Тип алгоритма, выбирающий объекты в том порядке, в котором они задаются оценочной функцией, получил название «жадного». Он приводит к ус-
пеху во всех тех случаях, когда задача может быть сведена к определению пересечения двух семейств, принадлежащих к не зависящим друг от друга частям одного и того же множества, называемым мат- роидами (Gondran и Minoux, 1979).
Пример. Во французской системе высоковольтных линий электропередач обнаружить дерево, имеющее минимальную ■ сумму расстояний, если все исходные данные представлены в графе, изображен-
t 'ном на рис. 5.6.
Ребра расположены в порядке возрастания следующим образом: AC, FG, EF, ЕН, IJ, CD, GJ, DG, ВС, CF, FI, HI, BE, BF, CH. Алгоритм Крускаля позволяет последовательно сохранять ребра AC, FG, EF, ЕН, IJ, CD и G/, и ребро AD исключается, поскольку оно образовало бы цикл с уже включенными в дерево ребрами АС и CD. Затем добавляются ребра DG и ВС. Как можно заметить, все вершины уже достигнуты и минимальное дерево получено..
Распространение данного алгоритма на случай обобщенных поисковых задач приводит нас в область искусственного интеллекта, к методам, получившим название «эвристического
поиска».
Эвристический поиск
Широкий класс задач можно разрешить следующим способом:
Этап 1. Выбрать из множества возможных действий некоторое действие.
Этап 2. Осуществить выбранное действие и изменить текущую ситуацию.
Этап 3. Оценить ситуацию.
Этап 4. Отбросить бесполезные ситуации.
Этап 5. Если достигнута конечная ситуация — конец; если нет, выбрать новую исходную ситуацию и начать сначала.
До сих пор для этапов «принятия решений» (этапы 1, 3 и 5) мы использовали одну и ту же численную функцию. Теперь уточним эту схему. В табл. 5.1 перечислены общие идеи и стратегии поиска, которые используются человеком и/или существующими программами.
Таблица 5」.Методы эвристического поиска
Этап 1. Выбор действия
с учетом соответствия цели:
—— уменьшение некоторого нежелательного различия,
——непосредственное решение той или иной подзадачи;
с учетом опыта:
——повторение прошлого,
——обнаружение ключевого действия;
с учетом необходимых условий:
——решение, обусловленное анализом ситуации,
——исключение неосуществимого варианта;
с учетом фактора случайности:
」предпочтение отдается разнообразию.
Этап 3. Оценка ситуации
по аналогии:
——известна сама задача,
—известна подзадача;
по величине расстояния до цели:
—расстояние между двумя ситуациями,
—количество усилий, затрачиваемых на поиск;
по математическому критерию:
——составление перечня необходимых и/или достаточных для получения данного решения характеристик,
——численная оценочная функция,
——верхние и нижние границы,
——сумма стоимостей, выбранных подходящим способом;
по ожидаемому выигрышу (критерий, связанный с прошлым опытом):
—простота ситуации,
—коэффициент расширения поиска,
——любой другой критерий (сложность задачи, затрачиваемое на ее решение время и т. д.).
Этап 5. Выбор следующего шага
двигаться только вперед:
——систематическое развитие последней порожденной ситуации;
выполнять все действия параллельно:
—поочередное выполнение всех действий;
в качестве исходной выбирать самую многообещающую ситуацию:
— в отношении оценочной функции,
—в отношении незначительного числа входящих в нее действий;
идти на компромисс между:
— глубиной поиска, —оценкой ситуации.
Если в соответствий с табл. 5.1 в некоторой задаче на обнаружение дерева с минимальным весом мы решаем на каждом шаге добавлять в искомое дерево по одному ребру, на первом этапе выбрать ребро с минимальной стоимостью, а на пятом этапе вернуться по дереву, следуя по пути его формирования, то тогда мы имеем дело с доказанным выше алгоритмом Кру- скаля. Однако возможны и другие варианты этого алгоритма, которые, как можно доказать, также приводят к решению: в процессе построения дерева (X, V) мы можем как прибавлять ребра, так и отбрасывать их; на первом этапе можно отказаться от сортировки ребер и взять первое попавшееся; на третьем этапе, если в V имеется цикл, мы исключаем из X принадлежащее этому циклу ребро, обладающее наибольшей стоимостью; на пятом этапе мы исходим из текущего дерева (X, V). Если учесть свойство связности, получим другие варианты. Даже если все эти алго-. ритмы сходятся, они не обязательно предполагают одно и то же число элементарных операций. Первый из них имеет сложность порядка О(п3); второй (без сортировки) фактически имеет такую же сложность; лучший из известных алгоритмов обладает сложностью 0(九2).
Симплекс-алгоритм также попадает в класс методов, определяемых по табл. 5.1: действие соответствует включению в базовую квадратную матрицу одного индекса и исключению из нее другого. На первом этапе мы выбираем индекс наибольшего градиента (тогда на втором этапе, чтобы сохранить принадлежащее полиэдру решение, непременно появляется выходной индекс); на пятом этапе мы снова исходим из текущего решения. .
Отметим, что в общем случае при таком типе поиска нет никакой гарантии, что на пятом этапе не возникнет снова ситуация, уже рассмотренная на одном из предыдущих шагов и данный алгоритм даст эффективное решение, если оно существует. Оба замечания учитываются в более изысканной версии общего метода градиента, разработанной Хартом; Нильсоном и Рафаэлем (1968 и 1972) и известной под названием «алгоритм А*».
Алгоритм А *
Всякой ситуации 5, полученной из исходной ситуации в результате определенной последовательности действий, придается численная оценка
f(S) = g(S) + A(S),
где g(S) — реальная текущая стоимость ситуации S, /i(S) —эвристическая функция, которая оценивает стоимость наилучшей
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИИ И ПЕРЕБОРА 239 последовательности дейстний, начинающейся с S и заканчивающейся решением. Следовательно, f(S) является мерой стоимости решений, «подчиненных» ситуации 5, т. е. решений; включающих то же подмножество исходных действий, что и S. Так, например, когда каждому действию соответствует элементарная стоимость С(51,5г,а), представляющая собой стоимость перехода нз Si в S2 c помощью действия а, подсчитать функцию g(S) очень просто: она равна сумме стоимостей действий, которые надо выполнить, чтобы дойти до данной точки от исходной ситуации S. Так как стоимости предполагаются положитель* ными, функция g(S) будет строго аддитивной.
Алгоритм Л*
Этап 0. Создать поисковый граф R~(Et Л), в котором
S0<~E {исходная ситуация}
f(SJ —° {в дальнейшем Е разделяется на два подмножества ситуаций; О (открытые) и F (закрытые)} 。7;
;尸+0.
ДЕЛАТЬ ДО ТЕХ ПОР ПОКА 0*0: Этап 1. На множестве О выбрать ситуацию S, такую, что f (S) минимально:
О •—S; F F + S
ЕСЛИ S является решением, ТО конец.
Этап 2. ЕСЛИ S не является решением, ТО развёртывать ситуацию S путем построения ситуаций S; (0&iW^s),полученных из S путем выполнения возможных действий.
Этап 3. Для каждой порожденной ситуации подсчитать f (S。: ftS^gtSd + hiSd {П^
Этап 4. Включить в О не входящие ни в О, ни в 尸 ситуации вместе с соответствующими значениями оценочной функции; для тех St, которые уже входят в О или 尸, установить:
f (Sz)<-min (f(Sz) — старое, HS;) — новое);
В случае принадлежности к 戶: сделать F<^F — Sh 0^-0+Sh КОНЕЦ ЦИКЛА ^до тех пор пока" КОНЕЦ К
В алгоритме Д* в отношении функции Л предъявляется сле^ дующее основное свойство: если 加(S) является минимальной стоимостью всей последовательности действий, позволяющей получить решение, исходя из ситуации S, то h(S) является нижней границей /i*(S); кроме того,九(S) должна быть положитель* ной. Таким образом,
O^h(S)^h*{S).
Следовательно, функция f(S) является оценочной для оптималь- ной функции f*(S), определяемой выражением
广(S) = g*(S) + "(S),
где f*(S)——наилучшая стоимость решений, проходящих через S, g*(y)—наилучшая стоимость пути от So ДО 5, A*(S)—наилучшая стоимость пути от 5 до цели.
Теорема. Алгоритм А* приводит к цели за конечное чисЛо шагов, если существует конечная последовательность действий, которая ведет от исходной ситуации к решению.
Доказательство. Сначала заметим, что если число возможных действий для каждой ситуации всегда конечно и число самих ситуаций тоже конечно, то алгоритм А* заведомо сходится. В,самом деле, ведь каждая итерация вычеркивает из множества О одну вершину и добавляет в него некоторое конечное число новых; при этом поисковый граф останется конечным, и его проверка потребует лишь конечного числа итераций.
Итак, допустим, что поисковый граф бесконечен и условия нашей теоремы выполняются. Будем рассуждать от противного и предположим, что алгоритм А* работает неограниченно долго. Это возможно только при условии, что само множество О возрастает ' бесконечно. Покажем, что й этом случае наименьшее из значений f(S) также оказалось бы бесконечным и тогда, следовательно, йе могло бы существовать решения за конечное число шагов. Пусть для всякой ситуации S u*(S) — минимальное число действий, необходимых для того, чтобы попасть из So в S (алгоритм А* не обязательно достигает стоимости u*(S), и поэтому она остается неизвестной). Несмотря на это, поскольку любая дута имеет строго положительную стоимость, для оптимальной стоимости g*(S) мы получаем
g*(S)>e・Q(S)..
Тем самым реальнее значение . g (S), вычисляемое алгоритмом Л*, удовлетворяет неравенству
g(S)^g*(S)>eu*(S)・
Поскольку эвристическая функция й(5) ^ 0, из этого также вытекает, что
"(S))g£)>eu*(S).
Таким образом, если °*(S)f оо, f(S) также становится бесконечным и никакой конечной последовательности действий не существует.
Докажем теперь, что на каждом этапе работы алгоритма вплоть до его остановки в множестве О обязательно присутствует вершина S2, такая, что
Л(52)<Г(Хо).
Пусть существует конечная последовательность действий и ситуаций, ведущая от So к цели. Тогда S2 ——первая из входящих в эТу последовательность ситуаций, которая принадлежат также множеству О. Такая вершина S2 существует до тех пор, пока алгоритм 4* не завершит работу. Как и для любой другой ситуации, f(S2)= g(S2)+似S2), но здесь ^r(S2) == ^*(S2) (так как по определению S? все предыдущие ситуации принадлежат F). Крх)ме TorOj по построению алгоритма А* выполняется неравенство /r(S2)W /i*(S2). В конце концов мы получаем
f ⑹)W 広⑸ + /Г (SJ, Т. е. f ⑹)& 广(&)•
В частности, если исходная последовательность была оптимальной, то f
fis^^ns^.
Итак, предположение о бесконечности f и тем самым о бесконечности работы алгоритма Л* оказалось противоречивым (при условии, что существует решение с конечным расстоянием даже для локально бесконечных графов). Кроме того, найденное решение обладает оптимальной стоимостью. Если бы алгоритм Л* остановился в узле S3, для которого f (S3) > f*(So), то в соответствии с приведенным выше доказательством получилось бы, что существует узел S2, такой, что f(S2) ^ f*(So), и, следовательно, на этапе 1 был бы выбран не узел 5з, а узел S?・ В самом деле, любой узел S, полученный в результате работы алгоритма Д*, имеет стоимость f(S), которая не превышает f* (So), поскольку в противном случае S либо был бы узлом-решением, либо не был бы выбран.
Конечно, значения функции f;'должны быть как можно ближе к значениям /*(5о), оставаясь при этом меньше их. Алгоритм будет тем эффективнее, чем больше значение /i(S), Действительно, легко доказать, что если h2(S) > hi(S)t то любая вершина, полученная с помощью функции 7i2/ может быть получена
и с помощью Ль Если функция Л обладает свойством монотонности по отношению к локальным стоимостям, т. е. если
h^^htS^ + CiS^ S2, а),
мы можем доказать, что для каждой полученной вершины алгоритм Л* уже построил оптимальную последовательность, заканчивающуюся в этой вершине.
При этом последовательность значений функции f(S) для полученных вершин может быть только неубывающей, что обеспечивает быструю сходимость алгоритма.
Последний случай является вариантом алгоритма Моора — Дейкстры (1957) поиска кратчайшего пути на графе (разд. 4.2). Несомненно, большим недостатком этого алгоритма является его поведение при отсутствии решения поставленной задачи.
Пример применения алгоритма 4*
Рассмотрим знаменитую головоломку, которую изобрел гениальный Сэм Лойд, — игру в 8.
На 9-клеточном поле перейти от конфигурации
2 8 312 3
So = 1 6 4 к конфигураций 5ь=₽8 □ 4
7 □ 57 6 5
(Символ 口 обозначает пустую клетку: за один ход на ее место можно поставить фишку, стоящую в любой клетке, соседней по горизонтали или вертикали.) Число ходов должно быть минимальным.
Выберем в качестве оценочных функций: g(S) —число ходов от So 厶。Sb и й(5) —число фишек, расположенных не на своих местах.
Итак, мы имеем
^(5)<g*(5) (по построению g),.
A (S) ^ ft* (S) (по условию задачи).
Монотонность h ничем не гарантирована. На рис. 5.7 представлено поисковое дерево, полученное с помощью алгоритма Л*, причем f(S) — g(S) + h(S); справа от каждой ситуации приводится пара значений — g(S) и h(S).
Было предложено несколько вариантов этого алгоритма. Так, наиболее общая форм^;функЦйй f(S) была определена в работе (Pohl, 1970):,.一
f(s)= U-^g(s)4:^^.
где а ——действительна константа, выбираемая на отрЬзке от 0 до 1. Таким образом здесь указывается определенный баланс
tl.3J
217
8 6 7
3
4
CO. 43
£^£2.3]
2 8 3 1 6 4
2 □
1 8
U 6
3
4
5
2 8 1 □ 7 6
t2,3]
2 8 1 4 7 6
a
5 【2,4]
3
4
2 3
1 6
7 6
□ 45
3
-2 8 6
3 4 5
3
4
7 6
[3.4J
£3.33
7 8□ в
3 4
5
1 с 7-
-2 8 6
в 7
2 a 6
Рис. 5.7. Алгоритм А* для игры в 8: дерево поиска.
в оценке между бесспорной составляющей g(S) и составляющей эвристической Л(S). Алгоритму Л* соответствует значение a == 1 /2. Случай a = 1——чисто градиентный метод. Другой крайний случай ——a = 0 ——ведет к методу полного перебора.
В действительности коэффициент а не обязательно должен оставаться постоянным в течение всего поиска: можно уменьшать. его значение по мере нашего продвижения вперед, когда эвристическая оценка теряет свою значимость; для некоторой конкретной задачи наилучшие значения а могут быть приняты апостериори для минимизации числа получаемых ситуаций с помощью определенной программы. Наконец, поиск может идти в двух направлениях: вперед от исходной ситуации, а также одновременно от целевой ситуации через инверсию возможных действий; поиск останавливается, когда одна и та же ситуация встречается в обоих поисковых графах.
Критические замечания. Алгоритм Л*, как и другие градиентные алгоритмы, рассмотренное,а;力данной главе, является строго численным, поэтому исключается формальный анализ каждой ситуации. Алгоритм основан на рценке стоимости некоторого решения. Но существует большое число задач, для которых эта оценка не имеет смысла, потому что, например, в них необходимо найти единственное осуществимое решение. Он не
дает способа подсчета интеграла, решения системы уравнений или установления медицинского диагноза. Нельзя заранее обнаружить тупики и петли. Так, если в игре в 8 (рис. 5.7) заменить верхний ряд исходной ситуации на (823), то чтобы доказать, что эта задача не имеет решения, алгоритм А* должен будет исследовать абсолютно все возможные случаи и поэтому оказывается бесполезным. Следовательно, рассматриваемый тип алгоритма может использоваться только при решении задач, возникающих в малоизвестных пространствах, т. е. там, где мало информации (плохое знание контекста, недостаток опыта, отсутствие формальных аргументов).
Задача о взвешивании
На обычных рычажных весах найти из двенадцати шариков один, не совпадающий по весу ни с одним из одиннадцати оставшихся (мы не знаем, существует ли такой шарик и является ли он легче или тяжелее). Число взвешиваний должно быть минимальным.
Эта задача довольно известна, но нас сейчас интересует, каким именно образом приступить к ее решению. Конечно, мы можем сравнивать шарики на весах попарно. Поскольку от других отличается не более чем один шарик, мы может быть уверены в том, что получим ответ не более чем за 12 взвешиваний (И сравнений шарика № 1 со всеми остальными +1 определение характера различия). Если, наоборот, мы решим начать со взвешивания "шесть против шести”,то мы, очевидно, ничего не узнаем. Таким образом, первый вопрос, который возникает в данной ситуации, как определить число шариков в каждой чашке в^срв при первом взвешивании (естественно, рассматриваются только взвешивания равного числа шариков).
Ответ на этот вопрос можно получить, определив оценочную функцию и ее градиент. Каждое взвешивание должно увеличивать имеющуюся информацию о множестве шариков. Следовательно, речь идет о том, чтобы сделать как можно меньшим математическое ожидание числа неизвестных шариков (здесь имеется в виду вероятностное ожидание, так как до последнего шага мы ни в чем не уверены). Итак, если мы начинаем с b шариков (26 W 九)на каждой чашке, то коромысло либо покажет равенство (и тогда, останется (12 ——2b) шариков с неизвестным весом), либо наклонится в одну сторону (и тогда (12 ——2b) шариков обязательно имеют стандартный вес, а из взвешенных шариков 2 шариков являются более легкими либо более тяжелыми, причем эти два случая, разумеется, исключа- чают друг друга). Допустим, что b шариков обладают неизвестным весом.
В качестве оценочной функции f(b), вычисляющей, насколько выгодно начать взвешивание с 2& шариков, естественно выбрать в каждом случае число шариков неизвестного веса, умноженное на вероятность появления этого случая. Поскольку существует способов выбора k объектов из т, вероятность получить равенство составляет C:i/C:2, так как для этого мы должны были бы оставить нестандартный шарик, а выборку производить из оставшихся 11 шариков. Вероятность отклонения коромысла в ту или иную сторону является дополнительной к 1 по сравнению с предыдущей. Так как C*_i = ((/n —々)/m)cM, оценочная функция f.(b} имеет вид
〃Ь)=中(12-26)+(1-中)』
= /[(12 —26)2+ 2 炉].
Минимум функции можно получить путем дифференцирования, так как f(±oo)=oo; следовательно, Ь должно удовлетворять уравнению —2-2(12 — 2b)十4匕=0, т. е. 6 = 4 (в общем случае, если имеется п шариков, b = п/3).
Конечно, данное значение лишь указывает 'на наилучший путь к решению, не использующий интуицию. Следуя по нему, легко получить решение за три взвешивания. Интересно, что эти взвешивания можно задать заранее независимо от результатов каждого из них. Обозначив шарики буквами от Я до L, мы получаем, например, следующую схему:
1-я
чашка
2-я
чашка
1)
Л
BCD
Е
F G Н
2)
А
ВСЕ
D
/ / К
3)
В
Е G I
С
〃 К L
Он2 позволяет различать 12-2 = 24 возможности.
В самом деле, легко доказать, что 3 является минимальным числом взвешиваний. Поскольку в результате каждого звеши- вания возникают три возможности, два взвешивания позволяют различить только 3-3 = 9 случаев, а этого недостаточно. Следовательно, метод градиента привел здесь к оптимуму.
Неявный перебор с распрос1^анением ограничений
Решим методом Люка одну классическую задачу, условие которой существенно отличается от условия задачи о лабиринте: расположить на шахматной доске размером n X п наиболь-
шее возможное число ферзей так, чтобы никакие два ферзя не попадали под удар.
Поскольку известно, что ферзь может бить по своей горизонтали, своей вертикали и обеим диагоналям, очевидно, на такой шахматной доске можно расположить не более п ферзей. Но существует ли такое расположение в действительности?
Первый способ решения
Рассмотрим горизонтали по очереди. Пусть имеется доска размером 4X4. Поместим первого ферзя в первой клетке первой горизонтали (рис. 5.8).
Очевидно, что в этом случае с учетом заданных ограничений ни в одном решении второй ферзь не может стоять на пересече
С1
С2
СЗ
С4
С1
С2
сз
С4
• □
L1
□
L2
L2
□
L3
L3
L4
L4
Рис. 5.8. Задача о размещении
»ер・ Рис. 5.9.
Выбор
ПОЛЯ
Для
второго
зей на шахматной доске..
ферзя.
нии первой вертикали и второй горизонтали (иначе одно из условий К (%) оказалось бы невыполненным), а также второй вертикали и второй горизонтали. Для второй горизонтали первым не приводящим сразу же в тупик вариантом является размещение второго ферзя в третьей вертикали (рис. 5.9). Выбрав
□
□
С1 С2 сз С4С1 С2 сз С4эти два варианта, мы не можем поместить третьего ферзя на третьей горизонтали: на пересечении с вертикалями 1 и 3 из-за первого ферзя, а на пересечении с вертикалями 2 и 4 — из-за второго. Это частичное решение, при котором уда-
С1 С2 сз С4
С1 С2 сз С4
Рис. 5.10. Второй вариант „выбора 鼠ся разместить лишь двух поля для второго ферзя 伙<^а焉廿® ферзей, не может составить о^четырех ферзях.:■ ?》mn часть полного решения, по-
у скольку мы не сумеем найти место для ферзя на третьей горизонтали. Следовательно, мы должны пересмотреть допрос о размещении второго ферзя. Поставим его на четвертую вертикаль (рис. 5.10) ,
户
Поскольку размещение третьего ферзя 'на переселении с первой вертикалью нарушает условия К(х), мы поставим его на вторую вертикаль. Размещение четвертого ферзя на вертикалях 1, 2, 3 или 4 вступает в^ противоречие с заданными условиями. Следовательно, нужно вернуться, к последнему разветвлению, когда мы выбирали место для второго ферзя.' Но при
Cl С2 . СЗ С4Cl С2 . СЗ С4□□□□Cl С2 СЗ С4Cl С2 СЗ С4Рис. 5.11. Третий вариант размещения двух первых ферзей.Рис. 5.11. Третий вариант размещения двух первых ферзей.□□□□□□□□Рис. 5.12. Решение задачи о четырех ферзях.Рис. 5.12. Решение задачи о четырех ферзях.
Cl С2 . СЗ С4
Cl С2 . СЗ С4
□
□
□
□
Cl С2 СЗ С4
Cl С2 СЗ С4
Рис. 5.11. Третий вариант размещения двух первых ферзей.
Рис. 5.11. Третий вариант размещения двух первых ферзей.
□
□
□
□
□
□
□
□
Рис. 5.12. Решение задачи о четырех ферзях.
Рис. 5.12. Решение задачи о четырех ферзях.
этом не осталось ни одной вертикали, на которой можно было бы егр' разместить. Следовательно, на самом деле нужно вернуться к вопросу о размещении первого ферзя. Поставим его на пересечении первой горизонтали со второй вертикалью. Размещение второго ферзя на пересечении с первой, второй и третьей вертикалями невозможно; поэтому поставим его на четвертую вертикаль (рис. 5.11).
На третьей горизонтали условиям удовлетворяет первая клетка, а nJ-за невозможности расположить четвертого ферзя на 1 и 2 вертикалях место для него остается только на четвертой вертикали (рис. 5.12). :
Итак, одно решение нашей задачи мы получили. На самом деле мы получили нх все. Действительно, ведь мы рассмотрели все решения, в которых первый ферзь стоит на первой или второй вертикали, а другие решения, соответствующие размещению этого ферзя на третьей или четвертой вертикали, выводятся из двух1 предыдущих благодаря наличию симметрии по вертикальной Оси. Таким образом, в целом на доске размером 4 X 4 для нашей задачи существуют только два решения. ■
Чтобы распространить этот метод на .решение других задач, введем одно обозначение. Для ййНДОЙт горизонтали, т. е. для каждого ферзя, у нас заранее имеются п вариантов размещен йия. Каждый из них соответствует одной из вертикалей шахматной доски (в данном случае h =^= 4). :1
Итак, обозначим каждое частичное решение, содержащее 归 ферзей, которые расположены йа k перШх горизонталях, через
вектор и:
D=®1,У2力),’'
1?де yi обозначает номер вертикали, на которой помещён t-й ферзь. Поиск, который мы вели, фактически сострит в прохождении по дереву в соответствии со схемой, изображённой на рис. 5.13..':宀
Сначала мы шли по этому дереву в глубину. Мы спускались все ниже и ниже, причем двигались все время слева направо,
Рис. 5.13. Дерево поиска для случая неявного перебора.
до тех пор, пока нам не попадался какай-лйбо тупик. Отметим, что одно и то же дерево, может быть использовано как для получения одного решения (тргда мы останавливаемся, как только оно будет найдено), так и для получения всех возможных решений.
Каждый раз, когда пространство поиска X будет иметь структуру шахматной доски, для решения -Такой задачи (она Имеет вид [х? % 三 X, К (%)]) мы сможем вести поиск по дереву данного типа. Если говорить более точно, то использованный нами характер структуры шахматной доски, о бу с ловл ива ^пхий введенное векторное обозначение и тип поиска, обладает своМ- «твамн декартова, произведения. Поскольку мц рассматриёМли шахматную доску кайн6бъёд)<нёнйё 九 одинаковых строк (горй- зонталей), пространство X является ничем иным, как пронз-
ведением
X = Ki X ^гХ'—Х^п,
в котором У/ обозначает "ю горизонталь шахматной доски, включающукэ И клеток. Тогда неявный перебор сводится к выполнению, следующего алгоритма:小
Общий алгоритм неявного перебора: ENUM二;
Enum•
{Принцип: мы перечисляем все элементы множества X;
X является декартовым произведением множеств У,,
у[1,同.
Множества Уг выбираются в естественном порядке от Г до п}
z1;Подсчитать %.
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА/>1 Проверить элементы • ' множества X
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА 匕,пустое мно-
:;жество
〉],Проверить все
, элементы мно
жества 匕
Выбрать из множества Y{ некоторый элемент у,;
九*匕一仞}
{чтобы больше не рассматривать ту же ситуацию, мы исключаем выбранный элемент 弘 из 匕}
ЕСЛИ/<п
ТО В соответствии с К (х) подсчитать 匕” i^i-^ \ {Продвигаемся дальше по X}
、、ЕСЛИ НЕТ напечатать решеиие У^У2^ • - ^Уп
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по Г£
г . {Возврат назад}.削
I,■ ?.力一1) dTiiqoao'
『КОНЕЦ ЦИКЛА по 7「 ЛХЕШ Idqg;. .■
КОН^Ц Enumк
В задаче о восьми ферзях эта. схема принимает вид, описанный
-ниже. .'
Восемь ферзей. Первый вариайт ,
Шахматная доска является декартовым произведением из 8 строк Yi (i меняется от 1 до 8). Поиск ведется по i, возрастающему от 1 до 8. В произвольный момент времени на любой горизонтали соЦ1) обозначает текущий элемент У:, т. е. первую Вертикаль:
{еще не проверенная вертикаль по Z-й горизонтали}
z<- 1; {показатель горизонтали} ‘「-
тсо/") — 1
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА z > 1
* Проверка: ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА
[col (/) ^ 8] col (г)col(£)+1'
Проверка на совместимость с предшествующими ‘
'размещениями:'
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА zp [1, г — 1]
ЕСЛИ ферзь 亿 col(i)) находится под ' ударом ферзя
-鼠e。"力):
ТО вернуться к узлу "Проверка {частичная неудача: проверяется , следующая вертикаль}
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по J ЕСЛИ /<8
ТО со/(Z + 0^0 {частичный успех} .
,i <— / + 1
ЕСЛИ НЕТ напечатать решение col (/)
■ . {полный успех}
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по col
{Возврат назад) — 1
КОНЕЦ ЦИКЛА по /
КОНЕЦ задачи о восьми ферзях
Теперь мы улучшим этот алгоритм двумя способами.
Импликации, связанные с выбором места для ферзя
Среди фигурирующих во множестве К (%) условий К/ (х), где j = 1, 2, ..., m, могут быть условия, содержащие небольшое число неизвестных, т. е. достаточно простые для того, чтобы знание первых координат “i, у% ум уже позволило точно вывести необходимую информацию о выполненности/невы- полненности К (х) при фиксированном значении переменных (f/ь уч, ..., Ук). Эта информация касается различных возможных значений для тех неизвестных, которым значения еще не присваивались (т. е. для у», где £ > 左).
Так, в задаче о четырех ферзях выбор значения у】=1 влечет за собой следующую информацию: у2 ^ 3, уз=/=1, Уз ¥= 3, у4 #= 1 и 玖力 4. Выбор значения 力=3, из которого вытекает, что уз =/= 2 и уз =# 4, заводит в тупик, поскольку, объединив импликации, мы видим, что для размещения четвертого ферзя не осталось никаких возможностей. Именно благодаря этим соображениям возникает вторая идея о том, как улучшить метод перебора.
Второй способ решения
Чтобы избежать сложных тестов, нужно постепенно вводить в рассмотрение эти импликации и, выбрав вариант размещения очередного ферзя, выявлять ' возможные значения 尼-й переменной из области ее определения У. Кроме того, мы должны иметь возможность вернуться назад. Для этого каждому множеству удобно поставить в соответствие вектор, в котором одновременно перечисляются допустимые и недопустимые значения, причем при последних указывается номер ферзя, являющегося причиной запрета. Обозначим через Lk вектор такого типа, содержащий перечень возможностей выбора для множества У左.Вначале для всех k 厶+ 0. На последующих этапах запись &(j)=0 означает, что / — одно из еще допустимых значений для у^ запись 厶月(力=厶 где i положительно, означает недопустимость значения / для множества Yk с указанием на первый по счету номер ферзя, являющийся причиной запрета. Таким образом, в задаче о . четырех ферзях мы . получаем последовательно
l]=L2 =厶=L4 = (0,0, 0, Q),…
^1 = 1.
Импликации, связанные с первым выбором:
3 = (1, 1, 1, 1),
А2 = (1, 1, 0, 0),
% = (1, 0, 1, 0),
厶= (1, 0, 0, 1).
Тогда 力=3 (непосредственно вытекает из того, что 1 и 2 запрещены из-за 厶).
Импликации, связанные со вторым выбором:
厶= (1, 1, 2, 2),
%=(1, 2, 1, 2),
& = 3 0, 2, 1).
На данном этапе вектор 厶 указывает на отсутствие возможностей для размещения третьего ферзя. Нужно вернуться назад. Это несложно сделать: мы возвращаемся к моменту размещения второго ферзя (при этом £2 = (1, 1, 1, 0)), одновременно уничтожая импликации, связанные с предыдущим вариантом выбора:
厶=3 0, 1, 0),
0 = (1, 0, 0, 1).
Заметим, что мы записываем L2 =(1, 1, 1, 0), так как мы теперь знаем, что все происходит так же, как если бы значение у? = 3 было запрещено вследствие размещения первого ферзя. Следовать такому алгоритму очень легко: проверьте это, например, на шахматной доске, закрывая "запрещенные" клетки жетончиками с номерами. Векторам L в этом случае будут соответствовать горизонтали, в которых разрешенные клетки свободны, а на запрещенных лежат жетончики.
Теперь алгоритм проверки метода неявного перебора при- нимает описанный ниже вид.
Восемь ферзей. Второй вариант
Если в первом варианте мы проверяли выбранные значения на совместимость уже после Того, как выбор был сделан, то здесь используются априорные импликации; как только выбирается место для какого-либо ферзя, все свободные, но находящиеся под ударом клетки становятся запрещенными. В векто-
ре возможных значений они отмечаются номером соответствующего ферзя.
У u е [1,8],Vu е [1,8] lib (u, v)*-0 {все клетки свободны}
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА >1
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА col(/)<8
lib 亿 col (/)) = Оlib 亿 col (/)) = Оcol (z) — первый элемент множества £\ такой, что
lib 亿 col (/)) = О
lib 亿 col (/)) = О
col (/)<—первый нуль из lib (ij); если их нет, col (Z) == 9 j <- col (i) {проверка на совместимость заменена действенными запретами}
lib(itj)^i
ПОВТОРЯТЬ ДЛЯ 々三卩+ 1, 8]
ПОВТОРЯТЬ ДЛЯ ie [1, 8]
ЕСЛИ Ub 也,/) = 0 ТО
ЕСЛИ клетка (生 Z) находится под ударом ферзя, стоящего в клетке (/, /), ТО lib (^,
КОНЕЦ ЦИКЛА по /
КОНЕЦ ЦИКЛА ПО k
ЕСЛИ z < 8 ТО Z<—f + 1 {частичный успех}
ЕСЛИ НЕТ напечатать решение [col (i)]
КОНЕЦ ЦИКЛА по col
{Возврат назад}
ПОВТОРЯТЬ ДЛЯ /г е [г + 1, 8] {Восстановить
свободные клетки}
ПОВТОРЯТЬ ДЛЯ /е [1, 8]
ЕСЛИ lib (k, /) = г ТО Ub 也,/)*0
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по I
КОНЕЦ ЦИКЛА по /г
пьa, coi(i))^i-i и, …
力一一1 {теперь клетка (f, col (г)) запрещена из-за (Z — 1) ферзя}
КОНЕЦ ЦИКЛА по t
Теперь для решения нашей задачи мы имеем способ, очень похожий на метод Люка прохождения лабиринта (рис. 5.14).
Выбор порядка расстановки ферзей
После первой модификации метода оказалось, что принятый порядок расстановки ферзей, при котором множества %,…,Yn рассматриваются последовательно в естественном порядке, не обязательно является оптимальным. Очевидно, возможно, что некоторое множество 匕(i > k) не будет содержать ни одного подходящего элемента, хотя в соответствии с приведенным выше алгоритмом мы должны продолжать перебор до уровня
Если вектор Li содержит только один нуль, то, каким бы ни было значение i, надо приравнять значение 执 индексу этого нуля и вывести из полученного значения новые импликации. Кроме того, предлагаемая модификация метода имеет обязательное следствие: если степень свободы У* (т. е. число нулей в Lk) равняется не 1, а 2, то множество У* является хорошим кандидатом для продолжения поиска.
Итак, можно сказать, что подобный метод перебора наводит на мысль о следующем способе решения.
Третий способ решения
Ферзи надо размещать в горизонталях с наименьшими степенями свободы. Речь идет о том, чтобы на каждом этапе рассматривать такое множество 匕,в котором осталось наименьшее число вариантов размещения ферзей. Окончательный вид алгоритма приводится ниже.
Свободные клетки в каждом множестве 匕,как и прежде, отмечаются в векторах %•. Поскольку по определению порядок размещения ферзей ужё*Уё является естественным (1, 2,л),
для запоминания реального порядка вводится специальный вектор выбора ферзей. В декторе V записываются особые элементы у® которые были выбраны в каждом из множеств У*. Кроме того, здесь учитываются все вынужденные значения перемен-
МЕТОДЫ РАСПРОСТРАНЕНИЯ ОГРАНИЧЕНИЙ И ПЕРЕБОРА 255 ных, т. е. все ситуации, в которых при некотором, заданном 々 запрец^нь! все у, за исключением одного. Таким образом, выбор одного местоположения может повлечь за собой цепочку из нескольких вынужденных значений. Все эти значения запоминаются в специальном стеке, который представляет собой вектор, пустой в начале работы, постепенно заполняемый индексами всех множеств Y臣,для которых мы запоминаем вынужденные значения. Степень данного стека, т. е. число входящих в него элементов, обозначается переменной т, И наконец, при возврате назад свободные клетки восстанавливаются, и стек опустошается именно до той степени, которой он обладал перед выбором мёстоположения последнего ферзя.
Восемь ферзей. Третий вариант
По сравнению со вторым вариантом главный принцип 以” стоит в том, чтобы рассматривать горизонтами шахматной дреки не в «естественном» порядке, а каждый раз в зависимо^ сти от того, какая горизонталь обладает наименьшей степенью свободы, т. е. в какой из горизонталей содержится наименьшее число свободных клеток.
п*-0 {сколько раз был осуществлен выбор местоположения}
0 {ЧИсло размещенных ферзей} t■
V/ [1, 8], col(/)<— 0 {выбранная вертикаль на горизонтали /} V / е [ 1, 8], Lib @, j) 0 {обнуление свободных клеток}
ПОВТОРЯТЬ ДО ТЕХ ПОР ПОКА / >1 {новая горизонталь} И<- индекс горизонтали, содержащей наименьшее число нулей {обозначим это число через nz(ii)}
ЕСЛИ пи (ft) > 1
ТО ЕСЛИ nz^^\ ТО i —i+ 1,说⑴*"
КОНЕЦ УСЛОВИЯ {новый выбор местоположения} 1 {размещен еще один ферзь}
ео/ (н)^ первый нуль из числа^рбо^р^х клеток lib (Ut /) {иногда единственный}^
Ub (/х, col (и)) *- / {импликации/ связанные с данным .выбором местоположения)
ПОВТОРЯТЬ ДЛЯ k^[i+ 1, 8]
ЕСЛИ col (^) = О ТО
ПОВТОРЯТЬ ДЛЯ /^[1, 8]
ЕСЛИ 〃匕候,/) = 0 ТО
ЕСЛИ клетка (月,/) находится под ударом ферзя, стоящего в клетке (z, j) ТО lib (^, /) —i {отмечаем при последнем выборе местоположения} КОНЕЦ УСЛОВИЯ
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по /
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по 力
ЕСЛИ /и = 8 ТО напечатать решение 匕4(川;КОНЕЦ УСЛОВИЯ
ЕСЛИ НЕТ {Возврат назад: по крайней мере на одной горизонтали нет ни одного нуля}
ПОВТОРЯТЬ ДЛЯ k^[i+ 1, 8]
ЕСЛИ col(k)=-0 ТО
ПОВТОРЯТЬ ДЛЯ Z^[l, 8]
ЕСЛИ lib (ft, /) = / ТО lib (fe, /) — 0
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по /
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по k
lib (Z, col (i)) <— i — ]; j <i — /
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА по г
КОНЕЦ третьего варианта алгоритма для задачи о восьми ферзях. Последнинй вариант алгоритма позволяет улучшить качество решения настолько, что случай обычной шахматной доски может быть обработан вручную целиком всего за несколько часов. Продемонстрируем, с какой скоростью поисковое пространство может быть проверено с помощью данного метода. Во-первых, отметим, что сове^йпенно ^ie обязательно начинать рассмотрение с первой горизонтали и первого ферзя. Итак, начнем, например, с четвертой горизонтали. Допустим, что на некотором этапе поиска мы решаем, можно ли расположить первого ферзя на пересечении вертикали с и горизонтали IV, а второго —■
на пересечении вертикали f и горизонтали Ш: у=(., ., f, с,., .,.). На рис. 5.15а представлена шахматная доска, на которой отмечены соответствующие запреты и импликации. Значения степеней свободы для оставшихся горизонталей соответственно равны 4, 3, затем 3, 4, 5 и, наконец, 4. Для вертикалей степени свободы равны: 3, 4, *, 4, 4, *, 4, 4. Таким образом, одним из трех рядов, обладающих наименьшей степенью свободы, является горизонталь V; место для третьего ферзя мы будем искать именно на ней. Если мы решим поместить третьего ферзя в вертикали а (в первой свободной клетке данной горизон- Тали), наша шахматная доска примет вид, представленный на рис. 5.156.
Для четвертого ферзя можно было бы поискать место на рторой горизонтали, в которой насчитываются лишь две свободные клетки. Однако, чтобы лучше учесть импликации, мы должны рассматривать и вертикали: в вертикалях due мы также располагаем только двумя свободными местами. В каждой вертикали, как и в каждой горизонтали, может находиться только один ферзь. (Здесь на частном случае задачи о восьми ферзях мы видим, как проявляется косвенное воздействие условий ^(x), которые позволяют выдвигать разумные предположения.)
Итак, одна из свободных клеток на вертикали d — клетка (VII, d)—заставляет нас вернуться назад, поскольку она налагает запрет сразу на обе оставшиеся клетки в вертикали е. Следовательно, при данном расположении размещение четвертого
9 Ж.-Л. Лорьер
ферзя является вынужденным. Так как при этом блокируетсяодна из двух свободных клеток в вертикали е, размещение
IIII3123[211312221112.回2211□11111回1113232131123211213213123[211312221112.回2211□11111回111323213112321121321а Ь с d е f g hа Ь с d е f g hVIVilVIIIVIVilVIIIРис. 5.156. Задача о восьми ферзях (продолжение).Рис. 5.156. Задача о восьми ферзях (продолжение).
II
II
3
1
2
3
[
2
1
1
3
1
2
2
2
1
1
1
2.
回
2
2
1
1
□
1
1
1
1
1
回
1
1
1
3
2
3
2
1
3
1
1
2
3
2
1
1
2
1
3
2
1
3
1
2
3
[
2
1
1
3
1
2
2
2
1
1
1
2.
回
2
2
1
1
□
1
1
1
1
1
回
1
1
1
3
2
3
2
1
3
1
1
2
3
2
1
1
2
1
3
2
1
а Ь с d е f g h
а Ь с d е f g h
VI
Vil
VIII
VI
Vil
VIII
Рис. 5.156. Задача о восьми ферзях (продолжение).
Рис. 5.156. Задача о восьми ферзях (продолжение).
Рис. 5.16. Полное решение.
Цифры в кружках обозначают местоположение Z-го ферзя; цифры в квадратиках —вынуж* денное местоположение /-го ферзя.
пятого ферзя в клетке (VIII, е) также неизбежно. Клетка (II, Ь) уже была обязательной, а клетка (VII, h) становится таковой. Эти два вынужденных значения неизбежно приводят
к размещению следующего ферзя в клетке (I, g): такое положение является единственным еще разрешенным и совместимым со всеми остальными. Поскольку этот ферзь — восьмой, мы получили одно из двенадцати основных решений данной задачи (рис. 5.16).
Сохраняя только показатели вертикалей при естественном порядке горизонталей, мы можем сокращенно обозначить это
Рис. 5.17. Невозможность продолжения поиска после выбора местоположения третьего ферзя.
решение как (g, b, Д с, a, d, %, е), Данное решение определяется только выбором местоположения для первых четырех ферзей, поэтому, если мы хотим получить все решения нашей задачи, нужно вернуться к каждому из этих выборов по очереди.
Вернувшись вначале к выбору местоположения третьего ферзя, мы запретим занимать клетку (V, а), отметив ее цифрой 2, поскольку теперь эта клетка связана с выбранным вариантом размещения второго ферзя. Поместим ферзя в следующую свободную клетку (V, е) . Отметив запреты, мы увидим, что на этой стадии клетка (II, d) является обязательной, а в восьмой горизонтали при таких условиях нам не подойдет ни одна клетка. Эта ситуация показана на рис. 5.17.
Вернемся еще раз назад. Последний вариант размещения третьего ферзя при фиксированном положении ферзей 1 и 2 — клетка (V, g). В этом случае мы получаем несколько горизонталей со степенью свободы, равной 2. Если поместить ферзя 4 на горизонтали II в клетке (II, 6), то размещение ферзя 5 в 9*
Рис. 5.18. Завершение поиска после выбора местоположения для двух ферзей.
клетке (VII, а) является вынужденным, но эти два варианта закрывают все возможности в последней вертикали. Выбор другой свободной клетки на горизонтали II—(II, h) влечет за собой такие размещения- (VI, 6), (I, а) и (VII, J), но тогда все остальные клетки уже оказываются под запретом, и мы не можем получить решения (рис. 5.18). Итак, мы доказали, что после осуществления двух первых выборов (VI, с) и (III, f) существует единственное решение, и оно соответствует частичному решению у =(.,.,厶 с, ., ., ., .). Данная конфигурация была выбрана произвольно. Исходя из этого, мы можем оценить усилия, необходимые для построения всех решений. Как только мы фиксируем положение первого ферзя, для второго —- если он стоит на соседней горизонтали — остается пять возможностей (кооме случаев, когда п.ервый стоит в одной из крайних клеток: тогда для второго существует шесть вариантов размещения) .Учитывая симметрию шахматной доски (а следовательно, и симметричность решений по отношению к вертикальной оси симметрии), мы можем рассматривать только те четыре случая, когда первый ферзь стоит слева от данной оси. Так что в конечном счете нам придется вести поиск, примерно эквивалентный тому, который мы провели для конфигурации (IV, с), (III, f); число вариантов равно 6 + 5 + 5 + 5 = 21. Следует отметить, что это число невелико. Итак, при удачных критериях выбора и эффективном управлении импликациями и возвратами для вывода о пригодности данной конфигурации
практически достаточно выбрать местоположение для трех ферзей.
Для размещения третьего ферзя имеются в среднем только три возможности; следовательно, общее число ситуаций будет составлять 3-21 = 63 (почти каждая из них дает вариант решения), в то время как вначале речь шла о числе перестановок. Мы перешли от 8! = 40 320 случаев к 63, т. е. выиграли в 640 раз. Если мы захотим сохранить только основные решения, тогда в конце нужно рассортировать полученное множество и отбросить все решения, которые могут быть сведены к некоторым другим за счет горизонтальной симметрии или вращения. Тогда, наконец, останется двенадцать решений, среди которых полностью симметричным является только первое.
Алгоритм, к которому мы в конце концов пришли, осуществляет неявный перебор поискового пространства У, которое разбито на составляющие У1, У2, У*, ..., Ул; выбор на множествах 匕 происходит в нефиксированном заранее порядке. Кроме того, данный алгоритм интересен тем, что он имеет общий характер и пригоден для решения любой комбинаторной задачи: в самом деле, специфика условия задачи о восьми ферзях не учитывалась нигде.
Предложенная общая схема остается верной, если мы перейдем к задачам, не похожим на задачу о ферзях: оптимальной раскраске графа, задаче о коммивояжере, автоматизации рассуждений и игре в шахматы.
Динамическое программирование
Динамическое программирование — один из методов решения задач оптимизации. Слово ^программирование" здесь не имеет того значения, которое свойственно ему в информатике: в данном случае оно является производным от термина programme mathematique, обозначающего систему неравенств, которые нужно решить. Основная идея динамического программирования состоит в том, что неизвестные соответствующей системы рассматриваются как переменные решения, значения для которых надо выбирать последовательно. Если при этом два различных набора решений приводят к одной и той же ситуации, сохраняется только наилучший из них. Все подходящие значения каждой переменной изучаются параллельно. Следовательно, данный процесс относится к типу предварительного неявного перебора “в ширину".
Пример 1. Директор фабрики должен за три ближайшие месяца выполнить заказ на четыре комплекта одинаковой мебелн*
Учитывая стоимость наладки станков, зарплату сотрудников и стоимость хранения изделий, он подсчитывает суммарную стоимость %/ комплектов мебели (0 W %/ W 4) в течение месяца / (1 W j W 3) для всех возможных пар (/, ,). Таким образом, он составляет следующую таблицу:
12 312 3ОООООО2 4 02 4 05 6 75 6 7-^ 一9 9-^ 一9 9
12 3
12 3
ООО
ООО
2 4 0
2 4 0
5 6 7
5 6 7
-^ 一
9 9
-^ 一
9 9
Он старается сделать сумму стоимостей c(i, /) за три месяца минимальной, добиваясь при этом выполнения заказа, т. е. при условии 尤1 + %2 + %з = 4.
По сравнению с полным перебором поиск получается более эффективным благодаря пошаговому изучению (т. е. изучению месяц за месяцем): в конце первого месяца стоимость четырех возможных ситуаций (0, 1, 2 и 3 сделанных комплекта) может быть вычислена непосредственно из первой строки таблицы. Аналогично сумма стоимостей в двух первых строках показывает стоимость каждой из пяти возможных в конце второго месяца ситуаций. При этом очевидно, что независимо от решений, которые будут приняты в дальнейшем, для каждой из них нужно рассматривать только минимальную стоимость. Итак, стоимость s комплектов, сделанных в конце второго месяца, составляет
min стоимость (у в конце месяца 1) + стоимость ((5 — у) в конце месяца 2)
Таким образом, до конца второго месяца мы получаем
1 ②1 ②стоимость (s = 0) = 10 + 10 = 20
1 ②
1 ②
стоимость (s — 1) == min [12 + 10, 10 + 14] = 22
стоимость (s = 2) =min[15+10, 12 + 13, 10 + 16] = 25
стоимость (s = 3) = min[20 + 10, 15+14, 12 + 16, 10 + 19]=
=28(4)
стоимость (s — 4) = min [20 + 14, 15+ 16, 12 + 19, 10 + 23] = ==31(5)
Рис. 5.19, Граф решений в динамическом программировании.
Чтобы общее решение было оптимальным, нужно, чтобы любое подмножество решений было оптимальным. Это утверждение, которое мы только что использовали, мы уточним в дальнейшем.
Поскольку общее количество сделанной к концу трех месяцев мебели является заранее заданным, решение получается за счет добавления полученных значений к каждой из четырех единиц:
стоимость (s = 4 в конце)=
= min [31 + 10, 28 + 12, 25 + 17, 22 + 19] = 40. (6) Следовательно, оптимальная общая стоимость четырех комплектов мебели равна 40. Соответствующие ей переменные решения могут быть найдены, если мы вернемся по уже сделанным расчетам к началу: по формуле (6), х3 == 1 (т. е. в конце второго месяца s = 3), затем по формуле (4) мы получаем %2 — 2 и, наконец, Xi = 1. Схема решения данной задачи приводится на рис. 5.19 в виде "графа решений".
Теория динамического программирования
Использованный выше процесс последовательной оптимизации можно применить для большого класса задач. При этом функция, которую нужно оптимизировать, должна удовлетворять нескольким условиям самого общего характера.
Определение. Функция f от трех действительных переменных, принимающая действительные значения, называется разложимой (представимой в виде суперпозиции функций от двух neper менных), если
существуют две функции g и /г, такие, что можно записать
V(〃,〃 w) f (“,и,⑫)= g(〃,九(〃 5));
функция g является монотонно неубывающей по отношению ко второй переменной:
V®,协,У2)У1 > У20g (弘 “l)》g (弘 У2)・
Динамическое программирование основано на следующей теореме.
Теорема оптимальности. Для любой разложимой функции / от трех переменных, удовлетворяющей соотношению f(u, V, ш) =g(〃,/г(〃, и)), справедливо выражение
ОРТ [f (и, и, 3)] = ОРТ [g (以,ОРТ [g (и, з)] )]•
(и, ", з)и(,‘ w)
По этой теореме подсчет оптимума некоторой функции от трех переменных сводится к последовательному вычислению двух оптимумов функций от двух переменных. (Ее доказательство можно найти в работе (Lauriere, 1979)). Чаще всего эта теорема используется для функций оптимизации г(%ь %2, ...,Хп) от п переменных вида
2(修,x2> • • • > %")= R1 。1(/),© (%2,/,•••,%“)],
где Ri — разложимая функция, а а】 относится к тому же типу функций, что и 2, т. е. также является разложимой. Следовательно, можно написать
ОРТ 2 = ОРТ 因匕(修),ОРТ & [г2 a2),…
(打 *2Xn)*1X2
OPT [rn (хл)]
что соответствует схеме динамического программирования, которое обычно называют методом оптимизации, основанным на рекуррентных соотношениях. Исходные предположения легко, в частности, проверить, когда w является суммой элементарных значений одной переменной, как в приведенном выше примере.
В настоящее время данный метод успешно применяется в управлении складами, ракетами, технологическими процессами (особенно в химии), в экономическом планировании, в теории игр и в теории вероятностей.
Преимущества динамического программирования
Основную теорему можно сформулировать также следующим образом: подстратегия оптимальной стратегии может быть только оптимальной (рис. 5.20). Таким образом, выигрыш достигается за счет того, что на каждом из промежуточных эта- пов сравниваются все пути, ведущие к некоторой фиксированной ситуации, и в дальнейшем сохраняется только наилучший из
Рис. 5.20. Оптимальная стратегия. Подстратегия (а, % &) лучше подстратегии (a, d, Ь) только в том случае, если путь (So, a, d, b, §“)не является оптимальным.
этих путей (вернее, соответствующее ему значение). Итак, предположим, что каждая из переменных решения х; может принимать X, значений. Если по методу полного перебора необ- ходимо запоминать 口 % ситуаций, динамическое программиро^
ванне позволяет свести к изучению £ Х「Sz различных слу- чаев (St ——число возможных ситуаций перед выбором f-й переменной). .
Чаще всего величина S» ограничена условиями задачи. Так, в первом примере Vi, Sj = 5 и метод динамического программирования дает сложность порядка Z Хг. В некоторых случаях при использовании этого метода можно получить сложность, которая полиномиально зависит от входных данных (обнаружение кратчайшего пути, задача о рюкзаке, некоторые задачи упорядочения). Преимущества этого метода могут быть также использованы в системах, рассчитанных на предсказание недетерминированного будущего: хотя оно определяется только в вероятностных терминах, тем не менее необходимо найти оптимальную стратегию.
Пример 2. Управление складом в условиях неопределенных требований. Мы должны заказывать продукцию и размещать ее на складе так, чтобы как можно больше увеличивалось математическое ожидание заключения выгодных сделок. При этом выделяются три периода времени. В исходный момент склад
находится на нулевом уровне обеспеченности продукцией. В начале любого Лго периода мы можем закупить X/ единиц товара по цене а:. В течение данного (i-ro) периода с вероятностью Рх (и:) на склад может поступить требование на у^ единиц товара по продажной цене и(, причем, если уровень обеспеченности склада продукцией недостаточен и нельзя удовлетворить часть требования, штраф не налагается.
В конце третьего периода случайно не проданный товар идет на распродажу по цене 20 за единицу продукции. Значение векторов а, и, р(^) оценивается по приведенной ниже таблице (при этом для любого i мы предполагаем, что 0《%j W 2
i 2).
Период i
1
2
3
Покупная цена а;
10
10
30
Продажная цена и『
30
30
50
Вероятности р/ (1)
0,6
0,6
0,5
Р£ (2)
0,4
"4
0,5
Поскольку количество имеющихся на складе единиц продукции St изменяется от 0 до 4, система может находиться в одном из пяти состояний. Каждый раз между фазами принятия решения появляется дополнительная недетерминированная фаза, переводящая систему из состояния s в состояние шах (0, s, — yj с вероятностью р(у(). Если после принятия решения Xi прибыль от ситуации si составляет с(&), ее математическое ожидание D(tt\), зависящее от количества затребованной продукции, равно
2
С (⑵) = C(Sj) + Z p (z/z) ViWh
где wz = max.(0, s^ —仍)・ *
Эту величину мы и должны рекуррентно оптимизировать. Расчеты в данном случае будут попроще, если начать их с конца (период 3), поскольку тогда все легко подсчитать. Мы получаем
с3(0) = тах [0, -30 + 50, -60 + (100 - 0,5 + 70 • 0,5)] = 25;
с3(1) = max [50, -30 + (100 • 0,5 + 70 • 0,5), -60 + (120- 0,5 + + 90 • 0,5)] = 55;
с3(2) = тах [85, -30 + (120-0,5 + 90*0,5), -60 + (140-0,5 + + 110-0,5)1 = 85.
Затем в соответствии с рекуррентным соотношением имеем
с2(0) = тах[25, -10 + 30 + 25, -20 + ((30 + 55) • 0,6 +
+ (60+ 25) 0,4)] = 65;
с2(1) = тах[30 + 25, -10 + ((60 + 25)0,4 +
+ (30 + 55) 0,6), —20 + ((30 + 85) 0,6 十(60 + 55) 0,,4)] = 95, поскольку в конце первого периода максимальный уровень обеспеченности склада равен 2, а спрос составляет не меньше 1.
Наконец, для первого периода при исходном нулевом уровне обеспеченности склада мы получаем
^ (0) = шах [65, -10 + 30 + 65, -20 + ((60 + 65) • 0,4 +
+ (30+ 95) 0,6)] = 105.
Оптимальная стратегия состоит в том, чтобы в течение первого периода закупить 2 единицы продукции, в течение второго —тоже 2 и, наконец, в зависимости от того, сколько к этому моменту будет продукции на складе (0, 1 или 2), в течение третьего периода приобрести 2, 1 или 0 единиц. В соответствии с этой стратегией из-за недетерминированности спроса на складе возникают различные ситуации, но в любом случае средний оптимальный результат (105) обеспечен.
Оптимальная раскраска вершин на графе
Раскраска географической карты
Задача о раскраске географической карты (рис. 5.21) состоит в том, чтобы определить, как нужно раскрасить карту, изображающую на плоской или сферической поверхности различные страны и границы между ними, если известно, что соседние страны нельзя закрашивать одним цветом.
Эту задачу математики пытались решить в течение почти 100 лет. Они пытались доказать результат, известный под названием задачи (или гипотезы) о четырех красках (гипотеза — теорема, являющаяся предположительно верной, практически подтверждаемая большим числом случаев, но не имеющая полного формального доказательства): “для раскраски карты на плоской или сферической поверхности достаточно четырех цветов1*.
В 1976 г. эта теорема была доказана с помощью ЭВМ, которая чисто комбинаторным способом проверила огромное число вариантов рисунков [Appel и Haken, 1976].
Первый этап исследования рассматриваемой задачи состоит в упрощении способа представления данных: задача сводится
Рис. 5.21. Фрагмент карты Европы. '
к изучению несложного объекта, называемого неориентированным графом (как в задачах, рассмотренных в предыдущей главе). Для этого в каждой стране выделяется внутренняя
Рис. 5.22. Граф, эквивалентный карте, изображенной на рис. 5.2L
точка (например, столица) и с помощью линий, которые называются ребрами, связываются все пары точек, принадлежащих соседним странам (рис. 5.22). Тогда задача сводится к раскраске имеющихся на нашем рисунке точек (они называются вершинами), причем соблюдается следующее правило: две соединенные между собой вершины должны быть раскрашены в различные цвета. В этом виде задачу можно обобщить следующим
образом: пусть имеется произвольный граф, т. е. множество вершин и множество ребер, связывающих эти вершины попарно. Нужно найти наименьшее число цветов, с помощью которых можно его раскрасить, соблюдая то же правило: две связанные между собой вершины должны быть раскрашены в различные цвета. Здесь (в отличие от предыдущего случая) граф не обязательно является плоским. Это означает, что необязательно существует такое изображение данного графа на плоскости, при котором никакие два ребра не пересекаются.
Именно в таком виде эта задача возникает в самых разных ситуациях (некоторые из них описаны ниже).
Организация конференции
Для установления порядка заседаний секретариат попросил всех участников составить список секционных заседаний, в которых они хотели бы участвовать. Подмножество секционных
заседаний с участием того или иного человека должно быть разбито на взаимно не пересекающиеся во времени части.
Пример. Пусть планируется 9 секционных заседаний, обозначенных буквами а, Ь, с,…,i; каждое из них длится полдня. Мы располагаем необходимым числом аудиторий. Несовместимость заседаний во
времени задается списком со- Рис 523 г ф задачи об органик- ответствующих подмножеств: ции конференции.
ае, be, cd, ed, abd, ahi, bhi, dfi, dhi, fgh (существует по крайней мере один человек, который хочет участвовать в работе всех секций, входящих в одно и то же подмножество).
Данная задача сводится непосредственно к задаче раскраски графа: заседания секций соответствуют вершинам графа, а несовместимость их во времени — ребрам (рис. 5.23). Итак, задача секретариата — организовать конференцию так, чтобы она длилась минимальное число дней (в день проходят два заседания —утреннее и вечернее).
Алгоритм оптимальной раскраски графа
Минимальное число цветов, необходимое для раскраски вершин некоторого графа с использованием для пары соседних вершин различных цветов, называется хроматическим числом
графа G и обозначается через y(G). Поиск хроматического числа представляет собой комбинаторную задачу. Введем обозначения: S — множество вершин графа; U — множество ребер графа, т. е. множество пар вида (7, /) ,* принадлежащих декартову произведению S X S, таких, что i связано с /; [1, q]— множество q чисел натурального ряда, т. е. множество q использованных цветов. В этих обозначениях данную задачу можно сформулировать следующим образом:
Найти функцию cl (“цвет”): Sf [1, q] такую, что для всякой пары & /) из U нужно задать cl(i) #= с/(/), причем q должно быть минимальным.■
Мы можем (как в задаче о восьми ферзях) сначала раскрасить одну вершину и учесть все импликации, связанные с присвоением этого значения, а затем использовать метод неявного перебора до тех пор, пока не раскрасим все вершины. Но здесь мы должны остановиться не тогда, когда исчерпаем все возможности, а гораздо раньше——как только мы сможем доказать, что не существует решения лучшего, чем известное нам оптимальное решение. Общая схема действий приведена в алгоритме 5a.
Алгоритм 5а
Найти решение для q цветов;
Улучшить это решение:
ДО ТЕХ ПОР ПОКА мы не докажем, что искомое хроматическое число больше или равно q, ПОВТОРЯТЬ-
q — q— 1
Найти новое решение для q цветов
Первый этап: поиск решения.
Предложить первый способ раскраски нетрудно, поскольку в качестве функции cl достаточно взять функцию, такую, что Vi, c/(i)=厶 i 三 S. Полученная таким образом раскраска является допустимой: все вершины раскрашены в различные цвета. В этом случае число использованных цветов q равно мощности множества S вершин данного графа.
Улучшая это решение, мы сталкиваемся с такой же проблемой, как в задаче о восьми ферзях: для каждой вершины (или для каждой горизонтали шахматной доски) в исходный момент имеется q вариантов раскраски (вместо восьми свободных клеток), причем q > q. Поэтому мы снова можем использовать алгоритм ENUM, только нужно уточнить следующее:
как происходит выбор в случае равенства степеней свободы;
как осуществляется управление импликациями. Для от- вета на вопрос а) воспользуемся как и раньше идеей: выбирать тот вариант, который несет больше информации. Здесь это сводится к тому, чтобы рассматривать наиболее связанную вершину графа, т. е. вершину, которая накладывает наибольшее число ограничений. Однако в данной задаче имеется только один тип ограничений: для всякой пары (i, /) из множества U: c/(i) =/= с/(/). Следовательно, наиболее связанная вершина множества S — это вершина, из которой выходит наибольшее число ребер, принадлежащих множеству U. В графе G = (S, U) число ребер, проходящих через вершину s, мы будем называть степенью вершины s. Итак, в случае равенства вариантов мы будем выбирать ту нераскрашенную вершину, которая обладает наибольшей степенью в графе, состоящем из еще не раскрашенных вершин^ Как обычно, выбранный критерий не является ни абсолютным (его можно было бы изменить), ни необходимым (без него алгоритм остается надежным); он нужен лишь для повышения эффективности. Так как эксплицитное задание ре бер графа позволяет фиксировать запреты в явном виде, получение ответа на вопрос в п. б) не представляет трудностей. Конечно, как и в задаче о восьми ферзях, мы должны учесть цепочки импликаций, вынужденные присваивания значений (когда мы можем раскрасить вершину только в один цвет) и случаи, когда продолжать раскраску невозможно (с предусмотренным возвращением назад и восстановлением свободных вер- шин).
На данном этапе становится очевидным, что мы, безусловно, можем построить лучшее решение, чем то тривиальное реше* ние, которое приписывает каждой вершине свой цвет. Для этого достаточно рассматривать только критерий, касающийся степеней вершин графа (мы ввели его при разъяснении пункта а)). В самом деле, ведь априори все степени свободы равны, и потому основанный на них критерий не является действенным. Но тогда мы можем построить хорошее решение, используя “ясачный” алгоритм следующего вида:
Алгоритмов
ДО ТЕХ ПОР ПОКА не будут раскрашены все вершины- ПО- ВТОРЯТЬ
раскрашивать вершину, связанную с наибольшим числом нераскрашенных вершин,
наложить вытекающие отсюда запреты.
Пример 1. В исходный момент вершины графа, изображающего географическую карту, имеют следующие степени:
Вершины
Лиссабон
РИД
Париж
Брюс-
Га-
Бер-
Люксембург
Вена
Берн
Рим
Степени
1
2
6
4
2
6
3
3
4
3
Мы раскрасим! сначала вершину “Париж", одну из двух, обладающих максимальной степенью:
I->cl (Париж).
Затем мы наложим запрет на использование цвета I при раскрашивании шести соседних вершин и одновременно уменьшим на единицу степени всех этих вершин. Таким образом, мы получим вторую строку табл. 5.1. Теперь наибольшей степенью обладает вершина иБерлин". Поскольку цвет I использовать в этом случае запрещено, мы закрасим ее цветом II:
II-> с/ (Берлин).
Остаточные степениОстаточные степени11111111112111121111664 3 2 一 -4 3 2 一 -2 2 10 02 2 10 065 一 - 一65 一 - 一3 2 10 03 2 10 03 3 2 2 一3 3 2 2 一4 3 2 2 14 3 2 2 13 2 2 2 13 2 2 2 1Запрещенные цветаЗапрещенные цветаII IИ IIIIII IИ IIIII III IIIшI III IIIш
Остаточные степени
Остаточные степени
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
6
6
4 3 2 一 -
4 3 2 一 -
2 2 10 0
2 2 10 0
65 一 - 一
65 一 - 一
3 2 10 0
3 2 10 0
3 3 2 2 一
3 3 2 2 一
4 3 2 2 1
4 3 2 2 1
3 2 2 2 1
3 2 2 2 1
Запрещенные цвета
Запрещенные цвета
II I
И IIII
II I
И IIII
I I
II IIIш
I I
II IIIш
Таблица 5工 Раскрашивание географической карты
Лис-Мад-Па-Брюс-Га-Бер-
сабонридрижсельагалин
■ Люксембург
Вена Берн
Рим
При этом степени вершин изменятся так, как указано в третьей строке табл. 5.1. Выбрав первую по счету вершину, обладающую степенью 2, мы получаем
III -> с/ (Брюссель), поскольку связанные с данной вершиной вершины раскрашены в цвета I и II. Теперь мы получили степени, указанные в четвертой строке табл. 5.1. Поскольку для вершины "Вена" третий цвет не запрещен, мы можем раскрасить:
Шт 〃 (Вена).
Теперь мы можем раскрасить все оставшиеся вершины:
I ->с/ (Лиссабон),
II(Мадрид),
1->с/(Гаага),
III -> cl (Люксембург),
IV f с/(Верн),II—>с/ (Рим).
Мы получили решение в четыре краски. Однако мы лишь узнали, что для данной карты у W 4, но не доказали, что сделать
Таблица 5.2. Раскрашивание графа для задачи о конференции
& с d
Остаточные степениОстаточные степени5 4 3 -- 一5 4 3 -- 一5 4 3 2 --5 4 3 2 --2 1110 02 1110 02 110 0 07 一一二 一2 110 0 07 一一二 一4 3 2 2 2 -4 3 2 2 2 -2 2 11102 2 111065 --二65 --二5 4 3 2 105 4 3 2 10
Остаточные степени
Остаточные степени
5 4 3 -- 一
5 4 3 -- 一
5 4 3 2 --
5 4 3 2 --
2 1110 0
2 1110 0
2 110 0 0
7 一一二 一
2 110 0 0
7 一一二 一
4 3 2 2 2 -
4 3 2 2 2 -
2 2 1110
2 2 1110
65 --二
65 --二
5 4 3 2 10
5 4 3 2 10
I
I
I
I
I
I
I
II
II
II
II
II
Запрещенные цвета
Ш
III
III
IV
Ш
IV
лучше невозможно. Такой же результат дает теорема Аппеля и Хакена.
Пример 2. В первой строке табл. 5.2 приводятся зафиксированные в исходный момент степени вершин графа для задачи о конференции. Итак, в первую очередь мы раскрашиваем
Затем, используя промежуточные результаты, приведенные в табл. 52 последовательно получаем
П^с/(й),
III ~^ cl(d)f
]Vf4(b),
III cl (f).
Наконец, когда все оставшиеся вершины оказываются в нулевой степени, получаем
Ilf 4 (с),
II —с/(再
If 4®, e/⑴.
Мы можем утверждать, что для второго графа yf W 5.
Таким образом, мы выполнили все действия на первом этапе исходного алгоритма (алгоритм 5а). Теперь пока мы не докажем, что искомое хроматическое число равно 仇 мы должны установить q*g — 1 и искать новое решение для этого числа цветов.
Второй этап: поиск оптимального решения
Поскольку мы знаем, что число вариантов, возможных для каждой вершины, ограничено числом q, введем векторы L” состоящие из q компонентов каждый. Но на практике следует учитывать, что любое решение определяется только с точностью до перестановки соседних цветов (в данной задаче цвета I, II или III — всего лишь имена, служащие ориентиром). Таким образом, когда мы начали выполнять алгоритм 56, первые из присвоенных значений
в примере 21->4 ®)П->с/(/г)III f d (а) IV->cZ(b)в примере 21->4 ®)П->с/(/г)III f d (а) IV->cZ(b)в примере 1
в примере 21->4 ®)П->с/(/г)
III f d (а) IV->cZ(b)
в примере 21->4 ®)П->с/(/г)
III f d (а) IV->cZ(b)
I -> г/ (Париж) II -> cl (Берлин) III -> с/ (Брюссель)
были не результатами реального выбора, а условиями договора о том, какие имена дать первым вершинам, которые в любом случае должны были бы быть раскрашены в различные цвета. Их неодинаковая раскраска объясняется просто: все они попарно связаны. В первом примере Париж связан одновременно с Берлином и Брюсселем, который, в свою очередь, связан с Берлином. Во втором примере d связано с h, а и b\ R связано с а и & и, наконец, а связано с Ь.
Эти подмножества вершин связаны между собой всеми заранее возможными способами. Такие подграфы мы будем называть полными подграфами, или кликами. Из определения раскраски вершин некоторого графа мы получаем следующее свойство (первое):
Для раскрашивания клики мощностью р нужно р цветов.
Таким образом, в примере 1 3 W у W 4, поскольку вершины “Париж”,“Берлин” и uБpюcceль,, образуют клику мощностью 3. Кроме тог。? единственная вершина, которая должна быть раскрашена четвертым цветом (Люксембург), оказалась в таком положении из-за того, что сама связана с тремя этими вершинами. В действительности подграф, состоящий из вершин “Париж”, “Верлнн”,иБрюссель" и uЛюксембург", образует
Рис. 5.24.Рис. 5.25.
еще одну клику мощностью 4. Отсюда следует непосредственный вывод: в данном примере минимальное число цветов, необходимое для раскраски всех вершин, равно 4 (т. е. у = 4).
В примере 2 подобное рассуждение позволяет выделить клику, включающую пять вершин — a, b, d, h,厶 и тем самым доказать, что для данного непланарного графа первый вариант раскраски на самом деле был оптимальным, т. е. 丫‘ = 5.
После этих двух удач невольно приходит мысль: не занимаемся ли мы решением несуществующей проблемы? Может быть, между максимальной мощностью клики и минимальным числом цветов всегда существует равенство? Отвечая на данный вопрос, следует, во-первых, отметить, что в любом случае это еще не решение задачи: откуда мы знаем, что данная клика является наиболее мощной? На самом деле эта задача так же сложна, как и исходная задача о раскрашивании графа.
Кроме того, не можем ли мы построить граф, для которого данное свойство не выполняется? Оказывается, если “поиграть” немного с группой треугольников (клика мощностью 3), мы получим контрпример, изображенный на рис. 5.24.
Для показанного на этом рисунке графа, в котором максимальная мощность клики (в дальнейшем мы будем сокращенно обозначать ее через Смаке) равна 3, хроматическое число у в действительности равно 4, т. е. у > Смакс. Так, если мы раскрасим вершину а в цвет I, Ъ — в цвет II, а с — в цвет III и если при этом мы захотим обойтись тремя цветами, то в соответствии с алгоритмом 5а мы получим следующую цепочку импликаций: вершина d должна быть раскрашена в цвет II, е — в
цвет III, но тогда вершина f оказывается связанной с вершинами а (цвет I), b (цвет II) и е (цвет III). Следовательно, предположение о возможности использования только трех цветов привело к противоречию.
Второй контрпример, менее очевидный, приведен на рис. 5.25, где изображен граф, в котором все клики сводятся к парам вершин (т. е. СмаКс = 2). Теперь, выполняя алгоритм 5а полностью (что заставляет нас многократно возвращаться к принятым ранее решениям), мы получаем 丫 =4.
Итак, даже на столь маленьких графах и при таких небольших значениях мы пришли к расхождению в две единицы. В действительности существуют графы, которые можно строить таким образом, что разность у — СмаКс будет равна произвольному заранее заданному целому числу. Таким образом, мы можем быть уверены, что у 力 Смакс (второе свойство).
Число Смаке является нижней гранью искомого оптимума. Следовательно, оптимальность нашего алгоритма может быть доказана двумя способами: либо если мы докажем методом неявного перебора невозможность раскрасить граф в q цветов при условии q > Смаке, либо (в благоприятном случае) если мы сможем найти вариант раскраски в g = Смакс цветов.
В любом случае при получении первого варианта раскраски полезно найти клику, обладающую наибольшей мощностью С. Конечно, мы не можем быть уверены, что мы нашли Смакс, но, поскольку СМакс ^ С, мы заведомо получаем надежную нижнюю грань. Чтобы найти такую клику, воспользуемся следующим соображением. В этой задаче, являющейся в некотором роде обратной по отношению к задаче о раскрашивании вершин графа, степени вершин выполняют еще одну функцию: в исходный момент мы начинаем искать клику в множестве вершин, имеющих наибольшие степени. Получив первую клику, состоящую из С вершин, мы можем, как и в исходной задаче, постараться улучшить полученное решение: можно уверенно отбрасывать все вершины, степень которых строго меньше С.
Практически окончательный вариант алгоритма раскрашивания вершин приведен ниже.
Алгоритм 58
{Поиск "большой" клики Ф}
ф<-0
ДО ТЕХ ПОР ПОКА существуют непроверенные вершины: проверить вершину s графа G, обладающую наибольшей степенью; если она связана ребрами со всеми вершинами Ф, ТОГДА СДЕЛАТЬ: 0)<-① U{S}
Мы получили клику мощностью С; исключить из G все вершины, степени которых строго меньше С.
Начать в новом графе поиск большой клики:
ДО ТЕХ ПОР ПОКА полученный граф отличается от графа, полученного в результате последней итерации, и пока существует не менее (С + 1) вершин, имеющих степени большие или равные С.
—{Раскраска клики}— р—1, wO {число раскрашенных вершин}
ДЛЯ КАЖДОЙ вершины s нз ① ДЕЛАТЬ:
c/(s)<-p, р<-р+ 1:
—{Инициализация}—
/г <— (число вершин из S),月—0'{力=число сделанных выборов)
厶— (0, 0,0), М(,)~0, ДЛЯ КАЖДОГО
i S —①:cl (i) *<— 0
ДО ТЕХ ПОР ПОКА 左>0 ПОВТОРЯТЬ:
ЕСЛИ т = п ТО напечатать
ЕСЛИ НЕТ 女*-左 + 1
Выбрать вектор 厶,непустой, в котором cl (/) = 0
ДО ТЕХ ПОР ПОКА & содержит не менее двух нулей ПОВТОРЯТЬ: с% 伐)<—厶 уровень (月)—/п
Выбрать цвет у» такой, ито 厶匂)=0 Зарегистрировать этот выбор:cl (f) у
стек ⑺—Z
'Исключить 弘 из числа возможных вариантов: 厶("j *右
Запреты: для каждой еще не раскрашенной вершины s, связанной с вершиной Z, ДЕЛАТЬ: Ls (у^ <- А
{Импликации}
Для каждой еще нераскрашенной вершины i ДЕЛАТЬ:
ЕСЛИ Li включает только один 0 ТО идти к ^зарегистри- ровать".
ЕСЛИ £g не содержит нулей ТО
{Возврат}:
{Восстановить варианты выбора}:
V/, V/ ДЕЛАТЬ: ЕСЛИ 厶⑺=々 ТО Lz (/)<-0,
Lk (cl (уровень (力)))<-^ — 1
{Вернуть свободу выбора цвета}:
Для 7, лежащих в пределах от уровня 伍)до т, ДЕЛАТЬ: с/ (стек (夕))<-О
т<—уровень (龙),k<— k——1.
Используя этот метод, мы теперь можем решить еще одну задачу.
Задача о коммивояжере
Эта задача ——одна из самых известных задач в исследова
нии операции: коммивояжер должен встретиться с клиентами, которые находятся в разных городах. Он выезжает из одного города и возвращается в него в конце путешествия. Предполагается, что коммивояжер никогда не бывает дважды в одном
Рис. 5.26. «Кругосветное путешествие» Гамильтона.Рис. 5.26. «Кругосветное путешествие» Гамильтона.городе. В каком порядке он должен посетить все города, чтобы суммарное пройденное им расстояние было.минимальным?
Рис. 5.26. «Кругосветное путешествие» Гамильтона.
Рис. 5.26. «Кругосветное путешествие» Гамильтона.
путешественник,путешественник,если места, показано наесли места, показано наПо-видимому, впервые этой задачей стали заниматься благодаря одной головоломке, придуманной английским математиком Гамильтоном в 1859 г. Она состояла в том, чтобы вычислить на графе, приведенном на рис. 5.26, все возможные маршруты, которыми может воспользоваться
путешественник,
путешественник,
если места, показано на
если места, показано на
которые он должен посетить, соединены так, как
рисунке.
Этот граф породила игра, представляющая земной шар в форме додекаэдра. Данная задача «кругосветного путешествия
с возвращением в исходную точку», известная также как задача о гамильтоновом цикле, связана с теорией групп, а также (неожиданным образом) с задачей о четырех красках, рассмотренной в предыдущем разделе.
Особенностью задачи о коммивояжере является необходимость дополнительно учитывать расстояния от города до города, которые предполагаются известными. Эти «расстояния»
можно заменить на количество затраченного времени, стоимость проезда или даже на любые произвольные значения. В общем случае мы даже не предполагаем, что стоимость проезда из i в / обязательно совпадает со стоимостью обратного проезда из / в /.
Итак, пусть, например, наш коммивояжер должен посетить поочередно шесть городов (соответствующие стоимости указаны в табл, 5.3). Заранее, когда зафиксирован исходный пункт,
Таблица 53 Матрица расстояний для задачи о коммивояжере
ААввЕЕ720211223720211223^ 一 ^^^5^ 一 ^^^54316一252754316一252756 15 1 8 91 3 ~ 46 15 1 8 91 3 ~ 4^^5^ -5^^5^ -5^^0^5^^0^5
А
А
в
в
Е
Е
720211223
720211223
^ 一 ^^^5
^ 一 ^^^5
4316一25275
4316一25275
6 15 1 8 9
1 3 ~ 4
6 15 1 8 9
1 3 ~ 4
^^5^ -5
^^5^ -5
^^0^5
^^0^5
мы располагаем числом различных маршрутов, равным числу перестановок из (и — 1) городов, т. е. (п— 1)!. Подобно задаче об оптимальной раскраске графа, данная задача соединяет в себе простоту условия и сложность решения, обусловленную большими размерами поискового пространства. Как и при раскраске графа, получить по меньшей мере одно решение — тривиально: ведь из каждой точки мы можем попасть в любую другую. И наконец, общий ход решения тоже напоминает задачу о раскрашивании графа:
Найти решение стоимостью д;
ДО ТЕХ ПОР ПОКА мы не докажем, что искомая стоимость q* больше или равна %
Искать более хорошее решение (новая стоимость g = g— 1).
Первый этап: поиск решения
Как и в предыдущей задаче, найти хотя бы одно решение —— тривиально, поскольку подойдет любая комбинация шести городов. Таким образом, маршрут ABCDEFA представляет собой одно из возможных решений с общей стоимостью ‘124. Отметим, что способ, при котором мы отправляемся из исходного пункта и всегда выбираем путь с наименьшей стоимостью, безусловно, не является оптимальным и даже может приводить к очень неудачным решениям. Действительно, условия К(х), в данном
случае заключающиеся в том, что мы должны получить в конечном счете только один цикл, по мере нашего продвижения вперед все больше и больше ограничивают возможности выбора, и если вначале мы выберем небольшие значения стоимостей, то значения стоимостей путей в конце работы алгоритма будут обязательными и могут оказаться сколь угодно большими.
Тем не менее попробуем использовать этот способ. Из города С мы отправимся в город 尸 по дуге CF с нулевой стоимостью; дуга FC, которая сразу же завершила бы данный цикл, запрещена. Поэтому мы《уедем》из города 尸,воспользовавшись первой же разрешенной дугой —— 尸8, стоимость которой равна 5; дуга ВС запрещена. Теперь пойдем по дуге BD (стоимость 1), запрещающей использование дуги DC. Дуга DE позволяет уйти из Z) и запрещает ЕС. ЕВ приводит нас в Л, а дуга Л С, наконец, вынужденным образом завершает цикл. Ее стоимость равна 43, но она могла бы оказаться еще больше. Мы все-таки запомним полученное решение ACFBDEA (стоимость 79), которое лучше предыдущего.
При построении этого решения мы были вынуждены формировать искомый цикл, постепенно добавляя к последней вершине очередной отрезок пути. Мы не обязаны применять этот способ и (как в задаче о восьми ферзях) мы можем выбирать варианты в любом порядке, фиксируя на каждом этапе в множестве, состоящем из п дуг, произвольную дугу, которую впоследствии мы должны будем запомнить. При этом необходимо соблюдать единственное входящее в К (尤)условие: должен существовать только один цикл. Это означает, что все запомненные к некоторому заданному моменту дуги, во-первых, не должны проходить через одну и ту же вершину более одного раза и, во-вторых, могут образовать цикл лишь в самом конце, когда пройдены все города.
Изучая проблему с этой точки зрения и учитывая предыдущий опыт, мы можем догадаться, что следует выбирать дуГн не с наименьшей стоимостью, а дуги с не слишком высокой стоимостью. Но какие же дуги мы будем считать «дорогостоящими»? Очевидно, что данное понятие является относительным: поскольку на каждой горизонтали и каждой вертикали мы должны выбрать только одну дугу, «дорогостоящей» может быть названа любая дуга, стоимость которой существенно отклоняется от минимальных значений, зафиксированных в соответствующих вертикалях и горизонталях.
Итак, предположим, что мы должны избегать все дуги, стоимости которых в нашем примере превышают на 10 единиц минимальные значения, отмеченные по горизонтали и вертикали.
В табл. 5.4 указаны максимально допустимые стоимости для горизонталей и вертикалей, причем в матрице сохраняются только те дуги, стоимости которых строго меньше хотя бы одной из этих границ.
Итак, если по предположению искомый оптимальный цикл пройдет лишь по невычеркнутым дугам, то очевидно, что мы
Таблица 54 Матрица, в которой устранены слишком дорогостоящие пути
А в с D Е
二 0185---5一 51 二 一 9二 一一 5--н^ - 5一 7 一一 ВСЕ 尸二 0185---5一 51 二 一 9二 一一 5--н^ - 5一 7 一一 ВСЕ 尸261110261515261110261515Максимальные по строкамМаксимальные по строкамзначениязначения
二 0185-
--5一 5
1 二 一 9
二 一一 5
--н^ - 5
一 7 一一 ВСЕ 尸
二 0185-
--5一 5
1 二 一 9
二 一一 5
--н^ - 5
一 7 一一 ВСЕ 尸
26
11
10
26
15
15
26
11
10
26
15
15
Максимальные по строкам
Максимальные по строкам
значения
значения
171515111510
Максимальные значения по столбцам
выдвинули слишком оптимистическую гипотезу, так как на самом деле ничто не гарантирует, что в этом новом графе, содержащем только «хорошие» элементарные пути, существует хотя бы одно решение. Действительно, могло, например, получиться так, что сразу в двух горизонталях оказались бы вычеркнутыми все дуги, кроме одной, причем обе эти дуги стояли бы на одной вертикали. Очевидно, что тогда из двух разных пунктов мы могли бы попасть только в один ——соответствующий данному столбцу — город, и, следовательно, задача о гамильтонове цикле не имела бы решения.
Что же теперь из этого следует? Были ли мы настроены слишком оптимистично? Из табл. 5.4 видно, что в первой строке мы располагаем единственной возможностью: из А мы можем попасть только в D, Следовательно, дуга D4, по которой можно вернуться обратно, запрещена. Кроме того, поскольку в £) мы уже были, мы должны вычеркнуть дуги BD и FD, которые опять привели бы нас в ту же точку (табл. 5.5).
Дуга ВА в свою очередь является обязательной, поэтому мы устраняем дуги ЕА и DB (последнее связано с необходимостью исключить паразитный цикл BAD). На небольшой схеме (рис. 5.27) представлено частичное решение. Дуга EF является в данном случае обязательной и запрещает выбор дуги FE.
0 8 5 一
5 8-5
с ~ Z ^ - 5
в - - ^^ - 5
л BCQEF
На этом этапе все степени свободы по горизонтали и вертикали равны 2. Поэтому следующую дугу мы должны действительно выбирать. Например, из самой《дорогой》строки D
Рис. 5.27. Частичное решение задачи о коммивояжере.Рис. 5.27. Частичное решение задачи о коммивояжере.
Рис. 5.27. Частичное решение задачи о коммивояжере.
Рис. 5.27. Частичное решение задачи о коммивояжере.
мы можем взять дугу, имеющую наименьшую стоимость. Мы выбираем DE, и тогда дуги DC и FE оказываются запрещенными, а дуги FC и FE ——обязательными.
Итак, мы в конце концов получили гамильтонов цикл —— ADEFCBA, и его стоимость (64) меньше, чем лучшая из найденных ранее. Таким образом, мы реализовали способ быстрого нахождения хорошего, допустимого правилами маршрута для коммивояжера.
Если бы операция устранения дуг в зависимости от их стоимостей оказалась слишком жесткой и не позволила построить цикл, надо было бы ослабить введенное ограничение, разрешив сохранять дуги, больше отклоняющиеся от минимумов, чем мы установили вначале.
Получив хорошее решение, следует перейти к фазе оптимизации.
Второй этап: поиск оптимального решения
Верхняя грань искомого оптимума нам уже известна. Но теперь, как в теории физических измерений или как при решении задачи о раскрашивании графа, было бы полезно задать еще
и нижнюю грань. Иначе говоря, не существует ли какого-нибудь понятия (вроде клики), которое позволило бы нам утверждать, что стоимость любого решения заведомо не меньше некоторой известной величины?
Выделим в исходной задаче какую-нибудь подзадачу и займемся рассуждениями. Нужно, чтобы решение этой более простой или 《маленькой》 задачи оказалось обязательно меньшим по стоимости, чем решение исходной задачи. Так, рассмотрим все города по отдельности: ведь в тот или иной момент коммивояжер уезжает из каждого города. Но тогда стоимость решения данной подзадачи ——《уехать из города %》——не может быть меньше минимального значения соответствующей строки исходной матрицы. Так, для города Л, где
А В С D Е F
Л — 27 43 16 30 26
мы получаем минимальную стоимость 16 и, более того, можем вычесть по 16 единиц из всех расстояний, не изменив при этом формы цикла (так как оптимизируемая функция ——это простая сумма элементарных стоимостей, причем из каждой строки берется по одному слагаемому). Итак, стоимости выезда из города А теперь можно представить следующим образом:
А В С D Е F
Л — И 27 0 14 10
Рассуждая аналогично для пяти оставшихся строк, мы вычитаем из строки Л число 16, из В число 1, из С число 0, из D число 16, из Е и F число 5 и получаем табл. 5.6.
Таблица 5.6
яяввссDDЕЕ271527159^09^0оо35-434оо35-434142952142952-о-о1О24О21О24О2о -о -
я
я
в
в
с
с
D
D
Е
Е
2715
2715
9^0
9^0
оо35-434
оо35-434
142952
142952
-о
-о
1О24О2
1О24О2
о -
о -
Но нам еще нужно, чтобы коммивояжер побывал в каждом из 6 городов только один раз (приезды соответствуют 6 столбцам нашей таблицы). На данном этапе в любой город можно приехать, воспользовавшись дугой, стоимость которой после вычитания равна нулю. Исключением является город Л,
ЛВСДЕ尸ЛВСДЕ尸А3СРe戸112701410—15029241513—35509—2412243130040А3СРe戸112701410—15029241513—35509—2412243130040
ЛВСДЕ尸
ЛВСДЕ尸
А
3
С
Р
e戸
11
27
0
14
10
—
15
0
29
24
15
13
—
35
5
0
9
—
2
41
22
43
13
0
0
4
0
А
3
С
Р
e戸
11
27
0
14
10
—
15
0
29
24
15
13
—
35
5
0
9
—
2
41
22
43
13
0
0
4
0
минимальная стоимость приезда в который составляет 5. Мы можем вычесть из всего столбца эту величину, поскольку подзадача приезда в 4 обязательно должна быть решена. Новые стоимости приведены в табл. 5.7. Мы вычли величину q:
£==16+1 + 1 + 16 + 5 + 5 + 5 = 48.
Но поскольку для получения реального значения д* стоимости искомого оптимального цикла к любому решению g задачи с уменьшенными значениями стоимостей следует прибавлять / то эта величина удовлетворяет соотношению
где 农 обозначает наилучшую известную в данный момент суммарную стоимость. Кроме того, так как коммивояжер приезжает в каждый город только один раз и уезжает из него тоже только однажды, оптимальная длина маршрута реально составляет длину оптимального пути по сокращенной матрице, увеличенную на 48.
В нашем примере 48 W д* & 64. Таким образом, возвращаясь к методу, с помощью которого мы получили первые варианты маршрутов, мы сможем удалить все дуги, стоимость которых слишком велика. Но на этот раз критерий удаления дуги может быть строгим. В самом деле, рассмотрим разность (*—办 которая в данном случае равна 16. Она соответствует самому большому «абсолютному» отклонению искомого значения от известного маршрута. Иными словами, любой путь, имеющий стоимость, которая превышает эту разность, заранее может быть отклонен: поскольку он уже хуже, чем известный нам вариант маршрута, он не может быть оптимальным. В частности, мы можем сразу же вычеркнуть все дуги, у которых уменьшенная стоимость больше или равна (^0 —办 На данном этапе матрица разрешенных путей на нашем графе представлена в табл. 5.8.
4BCDE 尸4BCDE 尸15 0 2 315 0 2 3U 一,30 一 。U 一,30 一 。с - ^ - 9 - ос - ^ - 9 - оD о о - - - 4D о о - - - 4ЕЕм -52 - ом -52 - ою - 020ю - 020
4BCDE 尸
4BCDE 尸
15 0 2 3
15 0 2 3
U 一,30 一 。
U 一,30 一 。
с - ^ - 9 - о
с - ^ - 9 - о
D о о - - - 4
D о о - - - 4
Е
Е
м -52 - о
м -52 - о
ю - 020
ю - 020
Теперь осталось построить на этой матрице новый маршрут, обладающий, если это возможно, стоимостью, меньшей д(), а потом начать все сначала — и так до тех пор, пока мы не докажем оптимальность.
Мы могли бы снова, воспользоваться понятием степеней свободы и, следовательно, начать выбирать маршрут с горизонтали £. Но так как для случая неуменьшенной матрицы этот критерий был бы неэффективен, мы будем исходить из стоимостей и оценивать относительную выгоду от использования дуг с наименьшими (т. е. нулевыми) стоимостями.
На самом деле все эти дуги с нулевыми стоимостями зара* нее не эквивалентны. Идеальный маршрут должен был бы проходить только по таким дугам, но он не обязательно существует.
записывается в виде
厂亿 /) = min с 亿 田 + min с (/, /).k. k =/= j ' l. I ^ i
Таким образом, в нашем примере г (О, Д) = 0 + 1, r(Dt В)= = 0 + 0, r(F,B) = 0 + 0,"尸,С) = 0 + 9,尸(4。)= 10 + 0, г(5 О) = 0 + 1, ME Е) = 0 + 2; /•(£ 戶)=5 + 0, г(Е, F)= = 2 + 0.
Выбор, который обойдется нам дороже всего, если мы от него сейчас откажемся, связан, следовательно, с дугой AD. Итак, начнем с предположения, что коммивояжер воспользуется дугой /Q; теперь мы должны учесть все привязанные к данному выбору импликации. Мы не имеем больше права рассматривать какие бы то ни было дуги, расположенные в строке Лив
Таблица 5.9.
А В С D Е F
Л В С Q Е 尸
В1—15一 一
В0—14——•
С1513-50
С1513—50
D-0922
D—0922
Е2———0
e2 一 一—0
尸13000—
尸13000—
6
столбце Q; аналогично мы должны, вычеркнуть дугу Q4, которая порождает паразитный цикЛ. Ниже приводится рабочая таблица (табл. 5.9, а).
В этой гипотезе отъезд из города В стоит не менее 1. Поэтому мы снова произведем в этой строке преобразование стоимостей и на то же число увеличим нижнюю границу q(AD) во всех маршрутах, использующих дугу AD\ д({£)) = 49 (табл. 5.9, б).
Вычислим пошлины: г(В, 4) = 16, r(D, S) = 2, г(尸,В) = 0, “尸,С) = 9, r(F, Е) = 2, r(C, F) = 9, г(Е,尸)= 2. Приняв первое предположение, мы обязательно должны пропустить коммивояжера по дуге В А, поскольку в противном случае минимальная стоимость полученного маршрута (она была бы равна q(AD) + +「(8,4) = 49+16) превысит 64 — порог, который мы знаем из уже найденного решения и который мы хотели улучшить.
Прохождение по дуге В А в свою очередь вызывает удаление всех дуг, расположенных в столбце Лив строке 民 а также дуги DB» приводящей к появлению паразитного цикла. В ре-
зультате мы получаем новую таблицу (табл. 5Д0,а). После вычитания двух единиц по горизонтали D, вследствие чего q(AD) остановится равным 51, мы получаем еще один вариант таблицы (табл. 5.10,6). Теперь только дуга СВ (ее стоимость равна 13) является слишком «дорогостоящей» для того, чтобы составить часть маршрута» обладающего стоимостью меньше заданной предельной; действительно, стоимость (СВ)^ qQ ——q(AD) = 64 —— —51 = 13. Следовательно эту дугу мы вычеркнем.
Таблица 5.10.
4ВСР Е 尸4ВСР Е 尸ВсD Е尸13592000ВсD Е尸13592000ABCQEU,ABCQEU,ддВсЕF13570——000ВсЕF13570——00044
4ВСР Е 尸
4ВСР Е 尸
В
с
D Е
尸
13
5
9
2
0
0
0
В
с
D Е
尸
13
5
9
2
0
0
0
ABCQEU,
ABCQEU,
д
д
В
с
Е
F
13
5
7
0
—
—
0
0
0
В
с
Е
F
13
5
7
0
—
—
0
0
0
4
4
〃 6
На этот раз мы больше не располагаем возможностью выбора: дуга EF осталась в своей строке одна; нужно добавить ее к нашему незавершенному циклу и удалить дугу FE. Кроме того, единственным кандидатом оказалась дуга СЕ (поэтому нет смысла производить в соответствующей строке вычитание), что дает нам q(4£)) = 56 и влечет за собой одновременное вхождение в данный цикл дуг DC и FB. В конце концов мы получаем маршрут FBADCEF с суммарной стоимостью 63. Дерево поиска изображено на рис. 5.28.
У нас нет гарантии, что полученный цикл является оптимальным, поскольку на дереве остается еще одна ветвь, которая может привести к результату, обладающему приемлемой стоимостью. Эта ветвь соответствует отрицанию нашего первого предположения, т. е. случаю, когда искомый цикл не проходит по дуге AD. Мы восстанавливаем исходную матрицу для этого варианта с учетом необходимых преобразований строки А. Так как мы вычитаем довольно большое число, мы должны вычеркнуть новые дуги ― все, стоимость которых не меньше величины (д* — q (не ДР) ) = 63 — 58 = 5. В результате остается табл. 5.11, из которой видно, что CF (строка С) и FC (столбец С) являются обязательными. Если граф содержит более двух вершин, такая ситуация невозможна. Это доказывает, что
«е-AD«е-AD
«е-AD
«е-AD
{^икиналъные значения всех еа~ ^ильтоновых 4*л^7,£ постро- енньюс на /V}
вь/Sop q(AD):
a fw-AD) = q ♦ пошлина AD=
Импликацииq(AD) = 51
да-BA
Невоз^оэ/сно
0202
0
2
0
2
EF g(AD) = 56
СЕ q(AD) = 63
F В A D С Е F q = 63
Рис. 5.28. Решение задачи о коммивояжере.,
на данной ветви нет ни одного решения со стоимостью меньше
63 и полученный раньше цикл Является оптимальным. Мы мо-
Таблица 5.11
Л 8
С---~-—101
D £
回
жем также доказать, что это оптимальное решение является единственным. Для этого достаточно опять ввести в предыдущую матрицу всего лишь одну дугу стоимостью 5 (дугу СЕ).
Дуги FC и СЕ окажутся обязательными, и мы должны будем включить в наш цикл дугу BD. Но тогда, чтобы не превысить стоимость 63, нам придется рассматривать только нулевые стоимости. Включение же в цикл дуги DA приведет к тому, что в столбце В будут вычеркнуты все приемлемые дуги.
Итак, единственный оптимальный маршрут для нашего коммивояжера—это ADCEFBA (стоимость 63).
Универсальная программа решения задач
GPS (General Problem Solver) — известная программа, предложенная Алэном Ньюэллом, Клиффом Шоу и Гербертом Саймоном в конце 50-х гг. (одна из самых первых программ искусственного интеллекта) и способная решать однотипным способом такие непохожие задачи, как подсчет интеграла, логические головоломки, доказательство теорем методом исчисления предикатов, грамматический анализ фразы.
Задачи, предлагаемые программе GPS, всегда представляются в следующем виде: исходный объект, конечный объект, множество операторов. Операторы позволяют осуществлять преобразования над объектами и благодаря этому дают возможность постепенно достичь конечного объекта, который и является целью всей работы.
Отметим, что GPS сразу же оказывается в более благоприятном положении, чем студент, сидящий перед чистым листом бумаги, поскольку у студента обычно не бывает списка законных операций: он, наоборот, должен их подобрать сам, а иногда даже изобрести в процессе решения.
Общая стратегия GPS: разбиение на подзадачи
В соответствии с «методом редукции» программа GPS всегда разбивает поставленную задачу на более простые подзадачи. Чтобы осуществить разбиение адекватным образом, программа пользуется различиями, существующими между обрабатываемым объектом и объектом, который мы хотим получить. Различием между двумя объектами считается любое свойство, при- ^сутствуюгдае в одном из них и отсутствующее полностью или частично в другом. GPS выбирает только те операции, которые могут уменьшить различия, отмеченные на данном этапе поиска. Таким обрХзом, используемый в программе метод ориентирован на средства, позволяющие достичь цели (анализ «цели — средства»), и в этом отношении он близок к способам действий, которые применяет в тех же условиях человек.
!'Ю Ж.-Л. Лорьер
Цели. GPS различает три главные цели:
/(О, х) Применить оператор О к объекту %;
С (о, А, %, у) Найти оператор О, который может уменьшить различие А между объектами 无 н у;
Т (х, у) Преобразовать объект х в объект у.
Таким образом, все задачи в исходный момент ориентированы на первую цель:
Т (исходный объект, конечный объект)
Методы. Для каждой из трех целей в программе предусмотрены специальные методы, которые задаются для всех них одновременно в следующем виде:
ЕСЛИ целью является Л(о, Q)
ТО сравнить вход оператора О с объектом а; обозначим различие через А;
'ЕСЛИ Д = 0 ТО успех КОНЕЦ, ЕСЛИ НЕТ поставить новую цель: С (Q, А, а, 6) и поставить цель А (О, а) в очередь.
ЕСЛИ целью является С(О, А, х, у)
ТО брать операторы по очереди и смотреть, не могуть ли они уменьшить различия А; ЕСЛИ да ТО создать новую цель А (0, х).
-ЕСЛИ целью является т(X, у)
ТО обозначим различие между хну через А; ЕСЛИ А = 0 ТО успех КОНЕЦ, ЕСЛИ НЕТ создать новые цели: C(Q, А, х, у) и 4(Q, х).
ЕСЛИ Q применить нельзя ТО неудача, ЕСЛИ можно ТО обозначить полученный новый объект через * и создать новую цель: Т(/,办
Чтобы повысить эффективность, авторы GPS предлагают учесть относительную значимость возможных различий (под этим подразумевается то, насколько сложно уменьшить различия), хотя это и не является необходимым. Кроме того, они дают таблицу зависимостей, в которой указываются операторы, пригодные для уменьшения каждого типа различий (см. приводимые ниже примеры). В соответствии с описанными выше методами и в зависимости от характера исходного объекта и первой цели GPS подыскивает одну или несколько целей
В свою очередь благодаря действию подходящих операторов эти цели раскрываются до тех пор, пока не будет получен конечный объект и пока остаются не полностью раскрытые объекты.
Исходный 而ъекпИсходный 而ъекпе9е96767eW I , elleW I , ellРис. 5.29. Дерево поиска программы GPS.Рис. 5.29. Дерево поиска программы GPS.Стратегия, которой мы воспользовались, может быть представлена в виде дерева, называемого «деревом поиска》
Исходный 而ъекп
Исходный 而ъекп
е9
е9
67
67
eW I , ell
eW I , ell
Рис. 5.29. Дерево поиска программы GPS.
Рис. 5.29. Дерево поиска программы GPS.
□осАеЗуЮщие 'объекты□осАеЗуЮщие 'объектыОбъекты, обра- зо&анные из el
□осАеЗуЮщие 'объекты
□осАеЗуЮщие 'объекты
(рис. 5.29). В каждый момент времени GPS выбирает на этом дереве среди еще не обработанных до конца вершин наиболее многообещающую, т. е. такую, в которой различия между обрабатываемым и конечным объектом минимальны.
Задача об обезьяне и бананах
Эта задача, предложенная Дж. Маккарти в 1963 г., форму* лируется следующим образом: обезьяна и ящик находятся в комнате, к потолку которой подвешена связка бананов. Обезьяна может перемещаться по комнате, переносить ящик и забираться на него. Достать бананы она сможет только в том случае, если она заберется на ящик, расположенный в точности под бананами. Как она решает эту задачу, которая взрослому человеку кажется тривиальной?
Внешние условия
Часть А: разное Элементы рассматриваемого простран- 『ства: обезьяна S, ящик С, бананы В,
множество мест = {рх р2, на-С, под-В,. ..} Часть В: операторы 01. ПОДНЯТЬСЯ.
условие: Место (S)—Место (С) действие: Место (5)=на-С
02. ИДТИ, условие: переменная место гдействие: Место (S)= х
ю*
03. ПЕРЕДВИГАТЬ.
условие: переменная х ——место Место (S田на・С Место (S)=Место (С)
действие: Место (S)=x Место (С)=х
04. ХВАТАТЬ.
условие: Место (С)— под-В Место (5)=на-С
действие: Содержимое (рука S)=B
Часть С:/)1 — Место
различияQ2 = Место (С)
£)3 = Содержимое (рука S)
Часть D:03 труднее, чем 02
порядок различий Q2 труднее, чем D1
Часть £:(уменьшение различий)
таблица зависимостей
2р2р3Q3QXXXXXXXXXX
2р
2р
3
Q
3
Q
XXX
XXX
X
X
X
X
Задание задачи
Главная цель s Преобразовать исходный объект в конечный
Исходный объектs [Место (S) = p】,Место (С) = p2t содержимое (рука S) = 0]
Конечный объект s [Содержимое (рука S) = В]
Ввод задачи. Программа GPS ничего заранее не знает о тех задачах, которые она может решать: помимо самой задачи ей нужно указать пространство, в котором она должна работать. Таким образом, условие задачи содержит две части:
с одной стороны, общие характеристики; остающиеся значимыми для семейства задач, а с другой —точные данные по интересующей нас задаче.
Комментарии и замечания. В программе предыдущая таблица задается практически в такой же форме, поскольку она легко воспринимается машиной. Значением одноместных предикатов—«Место» и «Содержимое» ——являются соответственно место и содержимое указанных переменных. Часть D задает относительную сложность таких действий, как изменение места обезьяны S и ящика С или, наконец, изменение содержимого руки обезьяны. В таблице, приведенной в части £, крест соответствует тем операторам, которые заведомо могут быть эффективно использованы для уменьшения различий данного типа. Как уже было сказано, две последние части описания не являются необходимыми: они ускоряют поиск и сокращают запись.
Решение. Программа должна последовательно уменьшить различия между исходным объектом, который мы обозначим OBi, и конечным объектом, который мы обозначим ОВД действуя в том порядке, который был ей уже задан. Для этого она будет строить промежуточные цели и объекты^ связанные друг с другом естественным образом отношениями преемственности в соответствии с «генеалогическим деревом», организованным так, как показано на рис. 5.30.
На этом рисунке номера целей соответствуют порядку их создания. Сначала мы отмечаем три различия между OBi и ОВД Цель, обладающая приоритетом, состоит в уменьшении различия /)3, поэтому вновь созданная цель-2 есть С (О, Z)3, OBi, OBf).
Это различие может уменьшить только оператор 4 и, чтобы попытаться применить его к исходному объекту, создается но” вая цель: цель-3 = Л(04, OBi), Однако из-за того, что оба требуемых оператором 4 условия в настоящий момент не удовлетворены (ящик находится не на том месте — различие 02; обезьяна находится не на том месте — различие /)1), достижение этой цели непосредственно невозможно. Поэтому программа вводит новую цель, благодаря которой исчезнет различие, считающееся наиболее важным (т. е. D2): цель-4 = С(О, _D2, OBi, (Место (С)-под-В)), которая в свою очередь порождает цель-5, как только будет найден подходящий оператор.
Данная цель тоже не может быть пока достигнута непосредственно, так как нужно еще уменьшить различие DL К этому сводится роль целей 6 и 7, которые позволяют сделать
4ает ОВЗ
Рис. 5.30. Дерево поиска программы GPS для задачи об обезьяне и бананах.
так, чтобы «Место (S)» было равно «Место (С)». В достижении цели-7 может быть эффективно использован оператор 02. В результате мы получаем объект ОВ1, отличающийся от исходного объекта: ОВ1 = Место (S) = р2, Место (С)=卩2・ Содержимое (рука S) = 0.
Отсюда программа возвращается назад к списку целей, отметив при этом, что нам удалось уменьшить различие D1. Теперь первая невыполненная цель ——это цель-5, в соответствии с которой нужно ОВ1 поставить на место OBi, и тогда новая цель 4(03, ОВ1) введет новый объект ОВ2.
ОВ2; Место (5)-под-В, Место(С)-под-В, Содержимое (рука S) = 0.
Таким же образом возвращение к цели-3 порождает еще три подцели: цель-9, 10 и 11. В цели-l l различие 01 уменьшается с помощью единственного уместного оператора 01, и, наконец, в цели-12 обезьяна достает себе бананы.
Ценность этого примера состоит в том, что с его помощью можно подробно показать, как несложное обыденное рассуждение можно полностью разложить на последовательность элементарных действий.
《Механика》,с помощью которой достигается данная цель, удивительно проста. Кроме того, мы сумели хорошо направить поиск, потому что мы ввели понятие различия между объектами нашего пространства и использовали эти различия, чтобы естественным образом создавать новые цели.
Конечно, в менее благоприятном случае может оказаться так, что, создавая последовательность подцелей в соответствии с отношением прямой преемственности, программа зайдет в тупик, и в конечном итоге мы увидим, что последняя Цель не может быть достигнута из-за невозможности применить к ней хотя бы один оператор. Кроме того, не существует запрета на
В начале: множество неизученных целей ——О Bi
ДО ТЕХ ПОР ПОКА остается хотя бы одна неизученная цель Выбрать некоторую неизученную цель В
ЕСЛИ эта цель является главной ТО успех. КОНЕЦ.
КОНЕЦ УСЛОВИЯ.
, ДО ТЕХ ПОР ПОКА остается еще непримененный
к данной цели способ обработки:
Выбрать способ М
ЕСЛИ применить Л1 к 5 невозможно ТО выбрать
другой способ
ЕСЛИ можно ТО
ЕСЛИ М позволяет достичь цели В ТО В <— отец(В)
ЕСЛИ НЕТ ТО
“ЕСЛИ М порождает новую цель S* ТО
ЕСЛИ В* уже было порождено ТО
”исключить его
КОНЕЦ УСЛОВИЯ
' КОНЕЦ УСЛОВИЯ
КОНЕЦ УСЛОВИЯ
КОНЕЦ ЦИКЛА
повторное появление в процессе поиска некоторой промежуточной цели. Запоминать ее в этом случае бесполезно, а следуя описанной ниже .общей процедуре, циклов можно избежать.
Подход, используемый в программе GPS и изложенный в описанной выше процедуре, характеризуется тем, что выбор осуществляется с помощью таблицы зависимостей и с учетом порядка значимости различий. Ниже мы увидим, как действует эта программа в совершенно ином контексте: речь пойдет о доказательстве теорем.
Задача из области формальной логики
В данном случае рабочим пространством являются высказывания на языке логики первого порядка, но от читателя никаких знаний в этой области не требуется: можно рассматривать все это как игру, в которой мы должны манипулировать цепочками букв в соответствии с определенными правилами. Кстати, прежде чем эта задача была запущена в программу GPS, два американских психолога О. Моор и С. Андерсон (1954) предложили ее студентам, чтобы постараться понять, как действует человек в подобных ситуациях. Напомним, что в то время алгоритм унификации еще не был известен (см. гл. 3). .
Пусть первая (исходная) цепочка символов есть (Rn~]P) А A (~\R => Q), а вторая (конечная)——~i (~]Q A P). Требуется найти последовательность разрешенных преобразований, позволяющих перейти от первой цепочки ко второй.
Ниже приведены разрешенные преобразования:, 」
С с
(Л ДО (A VC)
в)в)「「 AVA V имл л 8
-о((плу二 二一二一BACVC二一Bvc^:? 4 ввв л д ^.^в в в ^^ВВ4
4 д П AVB
VA вв
AV им
「AVAVVV = AVAA^ 「ллл лдлдл л д 4 д 4 л л \|/ ЧП/ \J/ ЧП/ Y/ \|/ о 1 2 3 4-5 6 7 8 9 г г г г г г г г г г
4 n 2 J
〃2)产明心。
Символы г с индексами 1 — 11 не входят в правила и являются порядковыми номерами правил.
Символ »—>, расположенный между двумя цепочками символов С1 и С2, читается как иможно также записать'*; он означает, что С1 мы всегда можем преобразовать в С2. Двойная стрелка《■> означает, что одновременно С1(—> С2 и С2лС1・
Кроме того, при переписывании всегда разрешается заменить любую букву, встретившуюся в рассматриваемом правиле, на любую другую, при условии что такая замена будет произведена по обе стороны знака i—
Буква, перед которой стоит символ "1, может быть заменена на любую другую. Символы, не являющиеся буквами, согласно нашей гипотезе, замене не подлежат.
И наконец, некоторое правило может быть применено к данной цепочке, если, используя последовательность различных подстановок, мы сможем установить строгое посимвольное соответствие между левой частью этого правила (т. е. частью, стоящей до символа(~^) и некоторой частью рассматриваемой цепочки. Как видно, в этом формализме буквы играют роль переменных в классическом исчислении высказываний; подстановка в данном случае означает замену переменной.
Таким образом, начав с цепочки (PnQ)AS, мы можем применить правило 厂2 (尸 соответствует 4 Q — В) и получить
ClQnQP)/\S.
Теперь мы можем применить правило гб (использована замена Л на ~1Q и В на ПР), в результате чего выражение приводится к следующему виду V QP) Л S.
Правила г8 ——г12 (в отличие от первых восьми правил) позволяют преобразовывать цепочки только целиком. Левые части этих правил [правил продукций (гл. 3)] должны соответствовать полным цепочкам, т. е. таким, для которых не зафиксировано строгого вхождения в состав других цепочек Так, г8 позволяет записать (Р V Q)A R как (Р V Q) и как R, но оно не может быть применено к выражению (Р Л Q) V 7?.
Построенная с учетом заданных правил подстановки табл. 5.12 соответствует таблице операторов из задачи' об обезьяне и бананах: как и операторы, правила преобразуют (согласно определенному закону и при условии выполнения некоторых ограничений) одни объекты нашего пространства в другие. Мы снова можем построить таблицу, указывающую, какие правила могут уменьшить: то или иное различие.
Таблица 5.12. Таблица зависимостей для решения логической задачи с помощью GPS
гО г! г2 гЗ г4 「5 гб г7 「8「9 rIO ri 1 г12
Различия .D1: добавление буквыD2: устранение буквы 、D3: изменение числа символов 口D4: изменение числа других символовD5: .скобкиD6: перемена порядка букв ,Различия .D1: добавление буквыD2: устранение буквы 、D3: изменение числа символов 口D4: изменение числа других символовD5: .скобкиD6: перемена порядка букв ,XXX XX XXXXXX XXX X X XXXXXX‘X XX XXX X X XXXXXX‘X X
Различия .
D1: добавление буквы
D2: устранение буквы 、
D3: изменение числа символов 口
D4: изменение числа других символов
D5: .скобки
D6: перемена порядка букв ,
Различия .
D1: добавление буквы
D2: устранение буквы 、
D3: изменение числа символов 口
D4: изменение числа других символов
D5: .скобки
D6: перемена порядка букв ,
X
X
X X
X X
X
X
X
X
X XX
X X X X
XX
XXX‘
X X
X XX
X X X X
XX
XXX‘
X X
Характер возможных различий между объектами здесь более разнообразен. В самом деле, в двух произвольных цепочках может быть:
разное число букв: увеличивающееся (£>1) или уменьшающееся (Q2);
разное число символов 1 (D3);
разное число прочих связок (04);
измененная расстановка скобок (D5);
перестановка порядка букв (Q6).
Анализируя действия, которые оказывают на эти различия наши правила, можно построить таблицу зависимостей (табл. 5.12).
Здесь мы не задаем относительного порядка различий. Теперь для программы GPS имеем:
исходный объект OBi 三(R n ~]尸)A (TR n Q),
конечный объект OBf =力(~1Q Л P).
Решение. Первое различие между двумя объектами, зафиксированное программой, состоит в исчезновении в конечном
объекте OBf переменной R. Итак, первая порождаемая нами цель ~ УМЕНЬШИТЬ D2 по переменной R. Как следует из таблицы зависимостей (обозначения остались те же); достичь этой цели можно с помощью правил гЗ(^>), т! («—'), r8, rll и г12. Правило г8 (единственное среди всех) может быть непосредственно применено к левой части OBi; оно порождает новый объект:
Заметим, что при доказательстве теорем в отличие от случаев обычного пространства (в частности, пространства предыдущей задачи) применение правила не уничтожает исходного объекта; преобразование лишь добавляет в наше пространство новый объект. Это облегчает работу, поскольку нам больше не нужно возвращаться назад, чтобы оказаться в одном из прежних состояний (в то время как обезьяна не могла одновременно находиться в двух различных местах, здесь все объекты сосуществуют во времени).
Левые части правил 『3 (*~^),尸7 (<-), rl 1 и г12 в данный момент не могут быть поставлены в соответствие цепочке OBL Итак, мы отмечаем различия и добавляем подцели типа С(О, А, ОВЦ левая часть 方),где j = 3, 7, 11, 12. Кроме того, программа GPS отмечает, что правило г8 может быть применено к OBi некоторым другим способом.
Общая стратегия GPS в выборе цели, которая станет нашей отправной точкой на следующем этапе, состоит в том, чтобы раскрывать цель, расположенную на дереве поиска, на максимальную глубину. В данном случае такой целью является OBL Если сравнить ОВ1 и。8力 то мы обнаружим, что они обладают различиями D1 и Q2 (поскольку при переходе от OBi к 081 исчезла не буква R, а буква Q).
Программа GPS устанавливает, что данная подцель, в которой нужно одновременно уменьшить два различия, является более сложной, чем первичная цель. Поэтому мы оставляем эту подцель и переходим к более глубоко расположенной цели, которая еще не была раскрыта: это соответствует применению правила г8 к правой части OBi. Однако R все еще не исчезло, и мы продолжаем поиск, используя в преобразовании OBi правило г7.
Таким образом, начальный этап поиска решения данной за* дачи с помощью GPS показан в реальном порядке обработки на приводимой ниже схеме (в фигурных скобках даются некоторые комментарии).
Цель-1: ПРЕОБРАЗОВАТЬ OSZ в OBf.
Цель-2: УМЕНЬШИТЬ £)2 (переменная R).
Цель-3: ПРИМЕНИТЬ 厂8 к левой части OBi: дает ОВ1 м R n ~] Р.
Цель-4: ПРЕОБРАЗОВАТЬ ОВ1. в OBf.
Цель-5: УМЕНЬШИТЬ D2 (переменная Q).
Цель-6: УМЕНЬШИТЬ D1 (переменная R).
ВОЗВРАТ:
{Слишком висока兄 стоимость по сравнению с Цель-1} {рестарт Цель-2} Цель-2:
Дель-7: ПРИМЕНИТЬ г8 к правой части ОВ1\дает ОВ2 w R n Q
Цель-8: ПРЕОБРАЗОВАТЬ ОВ2 в OBf.
Цель-9: УМЕНЬШИТЬ /)2 (переменная 尸).
УМЕНЬШИТЬ Q1 (переменная R).
ВОЗВРАТ:
{Слишком высокая стоимость по сравнению с Цель-1}
Дель-2:
Цель-10: ПРИМЕНИТЬ "(<-) к OBL {Невозможно, и потому порождается новая цель}
Цель-11: УМЕНЬШИТЬ 04 в левой части ОВ1 (связка V)-
Цель-12: ПРИМЕНИТЬ г6кОВ1 {Поскольку непосредственно осуществить предыдущее уменьшение невозможно} дает OB3=(~]/?VР)А 八(】RnQ)
Цель-13: ПРИМЕНИТЬ "(<-) к ОВЗ
I{Новая попытка}
Цель-14: УМЕНЬШИТЬ 04 в правой части ОВ4 (связка V).
Цель-15: ПРИМЕНИТЬ гб к 083:
дает 0В4 = m(TRVTP)八 八(R V Q)
Цель-16: ПРИМЕНИТЬ "(—) к ОВ4 {Новая попытка} Цель-17: УМЕНЬШИТЬ D3 в левом компоненте правой части 064 (связка V)
Цель-18: ПРИМЕНИТЬ гб .к правой части 0В4
ВОЗВРАТ:
{Мы опять получаем 083} {Рестарт. Цель-2}
Цель-2:
Цель-19: ПРИМЕНИТЬ гЗ к ОВ/ ...
Программа GPS продолжает поиск. Прежде чем прийти к изображенной ниже схеме, она уже породила 52 цели:
Цель-53: ПРИМЕНИТЬ г12 к 0S2: неудача, условие: найти 0810三?ln~]R.
Цель-54: ПРЕОБРАЗОВАТЬ О Bi в 0В1О.
Цель-55: ПРЕОБРАЗОВАТЬ ОВ1 в 0810 {Эквивалентная цель, считающаяся более легкой}
Цель-56: УМЕНЬШИТЬ Q3
Цель-57: ПРИМЕНИТЬ г2 к 081
дает 0В1УПРп 口 R.
Цель-53 {рестарт}: ПРИМЕНИТЬ г12 к ОВ\ 1 и OS2:
Iдает 0В12 = Р = Q・
Цель-8 {рестарт}: ПРЕОБРАЗОВАТЬ 0812 в ОВД
Цель-58: УМЕНЬШИТЬ D3 (переменная Р)
Цель-59: ПРИМЕНИТЬ гО к ОВ12: дает 0813wPnQ.
Цель-60: УМЕНЬШИТЬ Q4 (связка п).
Цель-61: ПРИМЕНИТЬ r6(f)
к 08[3:
дает OB14 = n^VQ.
Цель-62: УМЕНЬШИТЬ D4 (связка V).
Цель-63: ПРИМЕНИТЬ г5(->)
к 0814:
дает 0815=1 ЕР 八 IQ)
Цель-64: УМЕНЬШИТЬ Q3.
Цель-65: ПРИМЕНИТЬ гО к 0815:
дает 0816
Цель-66: УМЕНЬШИТЬ D6.
Цель-67: ПРИМЕНИТЬ rl:
дает 0В17 三 ~] (~j Q 八尸)
{Успех} КОНЕЦ.
На этих двух примерах мы убеждаемся, что способ рас- суждений, который мы используем при решении этого типа задач “вручную”,несущественно отличается от метода, применяемого в GPS. Идея состоит в том, чтобы, решая задачу, вести рассуждения в терминах различий и характеризовать операторы в соответствии с тем, какие различия они способны уменьшить.
Конечно, нередко мы хорошо “чувствуем” рабочее пространство, что иногда позволяет нам действовать более прямо и менее тупо, чем программа GPS. Но ведь мы также способны и быстро сдаваться там, где GPS продолжает работать и в конце концов добивается результата!
На рис. 5.31 приведено дерево поиска для данной задачи.
Другие задачи, которые можно решить с помощью GPS
Последняя версия программы GPS, разработанная Эрнстом и Ньюэллом (1967), была рассчитана на одиннадцать различных типов задач. Ей требовалось 〜20 с на каждую порожденную цель. Таким образом, для решения задачи об обезьяне и бананах, порождающей 13 целей, требовалось 〜4 мин на ЭВМ типа ИБМ 7090 Унивеситета Карнеги — Меллона, США.
Формальное интегрирование. Первая задача в этом новом цикле состояла в том, чтобы проинтегрировать функцию fe"df. Результат е°/2 получался за 3 мнн после порождения 11 целей. Выражение [sin2 at cos а/ + 1~1] di интегрируется с резуль-
Рис. 5.31. Дерево поиска программы GPS для решения логической задачи.
татом log / 4~ (3a)-1siri3af за время приблизительно вдвое большее с порождением примерно в два раза большего числа целей.
Отметим, что в данном пространстве конечный объект не слишком хорошо задан. В самом деле, здесь к нему предъявлено лишь одно требование — не содержать знака интеграла. Задачи такого типа не становятся от этого более сложными; надо лишь ввести для возможных различий абсолютную шкалу приоритетов, причем в начале списка будет стоять исчезновение знака интеграла. В данном случае в программу GPS ввели шесть операторов, хорошо приспособленных к шести стандартным
случаям интегрирования, а также четыре оператора диффе* ренцирования. Еще один оператор отмечает, что интеграл суммы равен сумме интегралов. Классические алгебраические действия:—сложение и умножение, а также свойства ассоциативности и коммутативности программируются отдельно и включаются в GPS.
Миссионеры и людоеды. Три миссионера и три людоеда находятся по одну сторону реки, через которую они хотят переправиться. В их распоряжении имеется лодка, которая может выдержать вес только двух человек. Кроме того, если в какой- то момент число людоедов станет больше числа миссионеров, миссионеры будут съедены независимо от того, на каком берегу реки это случится. Как им всем переправиться в лодке на другую сторону реки?
В данном случае объекты состоят из двух частей, каждая из которых соответствует тому, что находится на каждом из берегов реки. Каждая часть содержит описание числа миссионеров, числа людоедов и указание^ на наличие или отсутствие лодки. Итак, для каждого из двух направлений передвижения мы располагаем пятью операторами преобразования, поскольку на лодке может находиться либо один людоед, либо один миссионер, либо людоед с миссионером, либо два людоеда, либо, наконец, два миссионера.
Программа GPS, используя характерный для нее подход “цели — средства'* и легко имитируемая вручную, строит 57 целей и приходит к следующему решению:
(3, 3, 1) >(2, 2, 0) -> (3, 2, 1)^(3, О, 0)6 (3, 1, 1)->(1, 1, Q) >
(0, 0, 0)《(1, 1, 1) ♦ (0, 1, 0)《(0, 3, 1) ♦ (0, 2, 0) с (2, 2, 1)《
На этой схеме берег, с которого началось перемещение, описывается в следующем виде: число миссионеров, число людоедов, наличие (1) или отсутствие (0) лодки. Отметим, что данное решение является симметричным по отношению к шестому пересечению реки. В действительности это свойство имеет объяснение и сохраняется в других примерах той же задачи, как показано Саулом Амарелем (1968).
Ханойская башня. Эта задача, придуманная французским математиком Эдуардом Люка, представляет собой головоломку, в которой нужно перекладывать кольцо с одного стержня на другой. В начальный момент времени имеются три стержня А, В и С и четыре кольца, каждое из которых по внешнему диаметру строго меньше предыдущего; все кольца надеты на стержень Л так, что самое маленькое находится наверху. За один
ход мы можем ' переместить одно верхнее кольцо с одного стержня на другой; при этом класть большие диски на меньшие запрещено. Как переложить все кольца с Л на С?
Как и в предыдущих задачах для использования одного из Шести допустимых операторов должны быть выполнены некоторые условия. В этом примитивном пространстве GPS решает задачу за 46 этапов, не порождая ни одной бесполезной цели, 」Три монеты. На столе лежат три монеты: две крайние — кверху решеткой, средняя — кверху гербом. Ход состоит в переворачивании двух произвольных монет. Задача заключается
Рис. 5.32. Семь мостов через Преголю.
в том, чтобы только за три хода перевернуть все монеты так, чтобы они легли одной стороной вверх. В описание объектов включен счетчик, который учитывает это ограничение. Для полного решения данной задачи программе GPS достаточно породить 10 целей.
Семь мостов через Преголю. Река Преголя в Калининграде отделяет от берегов два острова, которые соединены друг с другом и с остальной частью города семью мостами (рис. 5.32).
В данной задаче операторы соответствуют четырнадцати возможным перемещениям. Задача состоит в том, чтобы выйти из произвольной точки и вернуться в нее, пройдя по каждому мосту только один раз.
■ Как доказал Леонард Эйлер в 1736 г., решить эту задачу невозможно. Поскольку особых способов решения наша программа не знает, в данном случае она терпит поражение. Единственное, что может программа, — перебрать все возможности, но уже после перебора различных способов прохождения по шести мостам объем памяти компьютера оказался исчерпанным.
Два кувшина. Имеется неограниченный запас воды и два кувшина на 5 и 8 л. Как налить в маленький кувшин 2 л воды?
После нескольких попыток, обусловленных существенной разницей между двумя крайними ситуациями, GPS решает задачу, выделив при этом 24 цели.
Отец и сыновья. Отец, два его сына и лодка находятся по одну сторону реки. Отец весит 80 кг, сыновья — по 40 кг каждый. Как переправить эту семью на другую сторону, если лодка выдерживает только 80 кг?
Программа дает ответ, обработав 33 цели.
Продолжение последовательности букв. Требуется к после、 довательности букв BCBDBE добавить 2 следующие буквы.
Подобно другим тестам такого типа, эта задача ставит фундаментальный вопрос о мере простоты результата. В данном случае мы можем допустить, что равным образом подойдут продолжения BF и 8С. В случае ответа ВС последователь- ность будет повторяться с самого начала. Что касается ответа 区FD (в принципе более предпочтительного), в общем случае он не является однозначным. Итак, здесь особенно важен тот способ, которым задача записывается для GPS. Эта запись менее очевидна, чем в рассмотренных выше случаях. Объекты задаются не в виде последовательностей букв, а в виде частичных последовательностей с определенными отношениями между буквами.- Две буквы могут быть связаны либо отношением тождества, которое указывает на их идентичность, либо отношением следования, указывающим на то, что вторая буква стоит в алфавите после первой. , ,
Что касается конечного объекта, то на него накладываются три ограничения, которые должны быть выполнены, как только мы преобразуем исходный объект. Первое состоит в том, что должны быть заполнены пробелы- (в нашем случае два имеющихся пробела заменяются двумя буквами ——х и у). Второе ограничение требует, чтобы множество отношений, позволяющих описать конечную цепочку, было как можно более простым: если одна и та же цепочка описывается с помощью одного и того же набора отношений двумя различными способами, то более простым считается то описание, в котором операнды отделяются друг от друга минимальным числом букв. Третье ограничение состоит в том, что каждая буква должна участвовать по крайней мере в одном отношении. В основном можно применять два оператора: один приписывает двум буквам в последовательности некоторое отношение, а другой ——букве определенное значение. Кроме того, возможен третий оператор, кото-
D 尸 идет за Е во французском алфавите, и в этом смысле BF должно следовать за ВС, BD, ВЁ. — Прим. ред.
рый задает порядок прохождения последовательности слева направо. Таким образом, программа GPS постепенно обнаруживает и отмечает присущие последовательности свойства. Приписывая заранее значения буквам 尤 и у, GPS не вслепую, а логически выводит те значения, которые она должна выбрать, чтобы эти буквы вступали в те же отношения, что и буквы, которым они соответствуют. Следовательно, для программы GPS изучение исходного объекта приводит к схеме, показанной на рис. 5.33.
Пробегая заданную последовательность слева направо, GPS отмечает отношение тождества между первой и третьей
СлеЗобание СледованиеСледование
Г~~1Г~IIп
—*— в —*—С —*— В —*— D —>— в ・ АЕ "> 工и
I II I
ТооюОестбо Тождество
Рис. 5.33. Последовательность букв, которую требуется продолжить.
и третьей и пятой буквами. Поэтому, чтобы это отношение было опять подтверждено, .GPS должна принять значение В. Оставшаяся часть последовательности обрабатывается параллельно. В целом для получения правильной последовательности с помощью такого индуктивного метода программа порождает 27 целей.
Грамматический анализ. Проанализируем фразу естественного языка в соответствии с заданной грамматикой. В число грамматических правил, введенных в нашу программу, входят следующие правила:
rl: Фраза содержит именную группу, за которой следует глагольная группа, а за ней вновь следует именная группа.
г2: Именная группа может состоять из группы прилагательного, за которой следует слово, выполняющее функции существительного.
гЗ: Именная группа может состоять из слова, выполняющего функции существительного.
г4: Группа прилагательного может состоять из слова, выполняющего функции прилагательного.
Еще одно правило уточняет, что, например, слово porte («дверь» или «несет») может быть либо именем существительным, либо глаголом, fort (《форт》или «сильный») может быть либо существительным, либо прилагательным..
Итак, пусть основная цель состоит в том, чтобы квалифицировать последовательность символов une epaisse porte ferme le fort (исходный объект) как фразу (конечный объект). Поскольку epaisse (толстый) может относиться только к классу прилагательных, наша программа делает вывод, что porte используется здесь как существительное, а также делает предположение о том, что ferme является глаголом (закрывает), следовательно, fort ——существительное.
Исходная английская фраза — free variables cause confusion (свободные переменные причиняют неудобства)—анализируется с помощью 19 целей. Эта задача демонстрирует преимущества эвристического метода для некоторых типов алгоритмов (например, таких, которые используются в синтаксическом анализе).
Доказательство теорем. Кроме задачи исчисления высказываний программа GPS может доказывать некоторые теоремы из области исчисления предикатов первого порядка, используя особый метод, получивший название резолюции (он был предложен в 1931 г. Жаком Эрбраном й запрограммирован в 1965 г. Дж. А. Робинсоном — см. гл. 3).
Классическая теорема Черча (1965), в которой утверждается, что
ЗиЗу^г [[Р (и, у) => (Р (у, z) A Р (z, z))] А [Р (а, у) Л Q («, у)]]=>
=5 [Q (u, z) A Q (z, z)J,
после упрощения, сколемизации и приведения к требуемому для метода резолюции виду (все предикаты приведены к нормальной конъюнктивной форме, а кванторы исключены), может быть доказана с помощью GPS. Доказательство завершается после того, как порождение 59-й цели позволяет обнаружить противоречие.
Заключение
Итак, несмотря на то что программа GPS работает доволь< но медленно и порождает иногда большое число промежуточных целей, с ее помощью (используя идею выявления различий между исходным и конечным объектами и возможные способы уменьшения этих различий) можно решать многие нетривиальные задачи. Улучшив программу GPS за счет использования таблиц зависимостей и задания точного порядка различий, исследователи вернулись к этим идеям, сумев применить их в двух областях: в области формального интегрирования (про-
грамма Saint Дж. Слэйгла, 1963) и в логике (Дж. Кинлэн, 1969).
Следует, однако, отметить, что множество задач, решаемых GPS, не очень представительно: все они более или менее однотипны и- ни одна из них не является по-настоящему сложной. Если GPS решает задачу, то это обусловлено тем, что заранее известно, что она умеет обрабатывать данный тип задач, а также что в любом случае она может существенно сократить поисковое пространство.
Кроме того, оказывается, что метод различий может при「 меняться только в том случае, если при решении не используется целостное «видение» задачи, т. е. этот метод «близорук»: он исходит из предположения, что к решению ведет некий непрерывный путь, что никогда не придется идти в обход и что задачу можо разбить на последовательность элементарных этапов, приблизительно равных по значимости. Безусловно, существует большой класс задач (в него, кстати, входят логические головоломки и формальные задачи), для которых эти условия не удовлетворяются. В гл. 6——8 мы рассмотрим многие из таких задач. '
И наконец, следует отметить, что записать условие задачи в необходимом для GPS виде не так просто. Действительно, подобная запись условия ^предугадывает'1 решение: в каждом случае мы должны задать системе множество подходящих различий, таблицу зависимостей, а также дополнительную информацию. Кроме того, для описания некоторых ситуаций с помощью операторов мы должны быть достаточно иизобрета- тeльными,^ (например, в задачах о семи мостах через Преголю и о продолжении последовательностей букв). Однако вот уже более 25 лет замысел этой программы не перестает восхищать.
Глава 6
ИГРОВЫЕ ПРОГРАММЫ.
ПСИХОЛОГИЧЕСКИЕ АСПЕКТЫ
В интеллектуальных играх соревнование между участниками заключается в том, что они поочередно принимают решения, не зная, какое следующее решение примет противник. Классический подход, реализуемый мыслящим существом для решения этой задачи, состоит в прогнозировании последующих ходов—своих и ответных ходов противника: если я сделаю такой ход, тогда противник может ответить тем или другим ходом, на каждый из этих ходов в моем распоряжении имеется такой-то и
Рис. 6.1. Пример дерева при поиске хода в шахматах.
такой-то ответ и так далее. Таким образом можно построить дерево допустимых ходов (рис. 6.1) и возможных игровых позиций.
В результате более или менее длительного анализа, взвесив все “за” и ^против" той или иной позиции, играющий делает ход (назовем его ходом первого уровня), который ему представляется наилучшим. Игровые программы, составленные для ЭВМ, основаны на тех же принципах, и в данной главе содержится описание наиболее общих методов их разработки.
В начале главы рассмотрен способ программного построения дерева допустимых ходов и преимущества, которые дает его использование. В разд. 6.2 речь пойдет о методах оценки возникающих позиций, для которых Клод Шеннон в 1950 г. ввел понятие оценочной функции. В разд. 6.3 и 6.4 изложены
основные методы поиска очередного хода и их усовершенствованные модификации. Показано также, насколько эти методы аналогичны процедурам решения задач с применением теории графов. 一
В конце главы дан анализ рассмотренного подхода'и рассмотрены его недостатки и ограничения. В разд. 6.8 вкратце изложены особенности принципально другого подхода, применяемого для решения данной задачи.
Дерево допустимых ходов
Необходимость построения дерева связана в первую очередь с тем, что не существует способов точной оценки исходной позиции. Так, в начале шахматной партии невозможно предсказать выигрыш белых или черных при безупречной игре обеих сторон. Построение дерева допустимых ходов в какой-то степени компенсирует этот недостаток. В идеальном случае следовало бы найти весьма большое число ходов, которые в конце концов привели бы к одной из точно определяемых финальных позиций: один из королей получает шах и мат; один из противников объявляет вечный шах; один из королей получает пат. К сожалению, в большинстве случаев это не так.
В начале шахматной партии каждый противник имеет возможность сделать 20 различных ходов. Следовательно, после первого обмена ходами на доске уже возможны 400 различных позиций, но, естественно, нельзя заранее определить, какая именно из них возникнет на самом деле. Проводя анализ игры, можно последовательно рассматривать ходы обеих сторон, но заметим, что к середине партии число хЬдов уже достигает 50, а число ветвей дерева будет составлять величину Кп, где К —— постоянное число допустимых ходов на каждом уровне для каждого играющего, а п ——порядковый номер хода. На практике для шахмат можно положить К = 4Q и для 6 ходов число ветвей составит 406 '= 4 096 000 000. При переходе на каждый следующий уровень это немалое число нужно еще умножить на К, что увеличивает объем вычислений, и, в частности, время, необходимое для поиска ходов и оценки конечной позиции. Они экспоненциально растут с увеличением глубины анализа, что делает невозможным точный просмотр ситуации на достаточно большую глубину. Даже сверхпроизводительная ЭВМ, которая в состоянии проанализировать 10 конечных состояний в 1 с, за время непрерывной работы со дня образования Солнечной системы, т. е. 4,6 млрд, лет, была бы способна проанализировать "только” ЮХ 4,6 X 109Х 366 X 24 X 3600 позиций, что составляет 15-1018 или 〜4()12 позиций, или 12 ходов, т. е. по 6 ходов
с каждой стороны, что всего в 2 раза больше, чем рассмотренная выше глубина анализа, равная 6. Даже такая ЭВМ не смогла бы рассчитать все варианты всего на 12 ходов вперед! В то же время известно, что средняя шахматная партия продолжается обычно не менее 40 ходов. Именно это противоречие вызывает интерес к игре в шахматы и составляет ее очарование.
Впрочем, исследования в области искусственного интеллекта часто направлены на решение задач, аналогичных тем, которые
возникают в шахматах — разработке методов борьбы с лавинообразным нарастанием времени анализа игровых ситуаций. При этом основная цель состоит не столько в составлении хорошо играющей программы, сколько в разработке общих методов, которые можно было бы перенести в другие области и с их по-
.Рис- 62 Доска для игры в ■ тик- мощью решать другие пробле- так'ту-мы. Играми, представляющи
ми интерес с точку зрения искусственного интеллекта, являются такие игры, для которых дерево допустимых ходов невелико, что дает возможность пол
ностью рассчитать все возникающие позиции с помощью современных ЭВМ. Такими играми являются, например, тик-так-ту, двух-, трехходовые шахматные задачи или еще некоторые игры, называемые Ним, для позиций которых удается построить хорошую оценочную функцию. В это же число входят и игри со спичками, ставшие популярными благодаря фильму Алена Ресне "Последний год в Марненбаде":" ,
Игра тик-так-ту ведется на поле из 9 клеток. Оба играющих имеют по три фишки. В первом туре играющие по очереди расставляют свои фишки (по одной за ход) на свободных клетках. Во втором туре, когда размещены все 6 фишек, играющие поочередно перемещают по одной фишке на свободные соседние клетки. Соседней считается клетка, расположенная в одном шаге от данной. Направления шагов, связывающих клетки, показаны на рис. 6.2. Выигрывает тот, кто первым расположит свои фишки по прямой линии. • '
Отметим, что определение последовательности ходов, разрешенных правилами этой игры, не представляет трудностей и хорошо поддается алгоритмическому описанию. Найдем принцип построения алгоритма в общем виде для игр с двумя игроками, в которых используются фишки, расположенные на клетках иг-
Таблица 6.1
Занятость (i, /)Состояние Поля на текущий момент. Оно может
быть пустым, занятым своей фишкой или фишкой противника
Фишка (I, j)Вйд фишки на поле в том случае, когда заня
тость (I, /) =/= пусто
Введем п направлений Полное число возможных перемещений фишки в игре
Разрешенные направле- Те из направлений, которые разрешены для фиш- иякн р
рового поля. При поиске хода для одного из играющих рассмотрим последовательно клетки, занятые его фишками. Для каждой из фишек опишем перемещения во всех разрешенных правилами направлениях.'Введем
для каждой клетки величины, представленные в табл. 6.1.
Рис. 6.3. Возможные направления ходов в тик-так-ту (и в шахматах).Рис. 6.3. Возможные направления ходов в тик-так-ту (и в шахматах).Очевидно, что в игре тик- так-ту имеется 8 возможных направлений перемещения фишек. Все фишки имеют одинаковое значение и могут перемещаться во всех разрешенных направлениях. Случаи выхода фишки за пределы игро-
Рис. 6.3. Возможные направления ходов в тик-так-ту (и в шахматах).
Рис. 6.3. Возможные направления ходов в тик-так-ту (и в шахматах).
вого поля рассмотрены ниже.
рис. 6.3.рис. 6.3.В шахматах существует 16 возможных направлений перемещения фигур: 8 рассмотренных выше и 8 “спецнальных” направлений для коня. Для пешек разрешено только одно направление,; для ферзя —8. Каждое направление характеризуется парой чисел (d%, dp), определяющих ;его наклон. В табл. 6.2 приведены значения этих пар для направлений, показанных на
рис. 6.3.
рис. 6.3.
Таблица 6.2
dydy1211О11211О145678
dy
dy
12
11
О1
12
11
О1
—1—1—1 О Г
10—1—1—1
Фигура р может перемещаться в каждом из разрешенных для нее направлений на некоторое число шагов, максимум которого обозначим через n pas max(p). Его величина зависит от вида фигуры:
в шахматах, n pas max = 1 для короля и 8 для ферзя, а для всех фишек тик-так-ту п pas max = 1. Если ход, заключающийся в перемещении фигуры, не приводит к ее выходу за пределы игрового поля и заканчивается на свободной клетке или клетке, занятой фигурой противника с взятием последней в соответствии с правилами, тогда ход Считается допустимым и принимается.
В шахматах, кроме того, существуют особенности, связанные с рокировкой, взятием на проходе, запретом на ходы, приводящие к шаху своему королю, превращением пешек, которые требуют дополнительных усилий по их обработке, но принцип поиска хода всегда можно описать следующим образом:
ПОВТОРЯТЬ ДЛЯ ВСЕХ полей 亿 /) доски
ЕСЛИ поле (z, /) занято своей фигурой
ТО р фигура 亿 /); [своя фигура на поле 広 /)] ПОВТОРЯТЬ ДЛЯ ВСЕХ направлений 三[1. число направлений]
ЕСЛИ направление 三 множество разрешенных направлений (р) ТО 尤 у —j
ПОВТОРЯТЬ ДЛЯ ВСЕХ шагов ^[l,npas max(р)]
*尤+ dx (направление)
У —у + 3 (направление)
ЕСЛИ (х, у)三 в пределах доски И поле
(%, у)方 свое
ТО зарегистрировать ход: [(Z, /)->(%, у)] КОНЕЦ ЕСЛИ
КОНЕЦ ПОВТОРЯТЬ
КОНЕЦ ЕСЛИ
КОНЕЦ ПОВТОРЯТЬ
КОНЕЦ ЕСЛИ
КОНЕЦ ПОВТОРЯТЬ
Из приведенного выше ясно, что наиболее простой способ ограничения дерева заключается в ограничении глубины анализа числом 1. В этом случае необходимо: 1) найти все допустимые ходы; 2) оценить их; 3) сделать наилучший из оцененных ходов..」
Принимая во внимание, что партия должна закончиться выигрышем или проигрышем, возможный процесс игры можно представить в виде:
ЕСЛИ существует выигрывающий ход
ТО сделать его; конец.
ИНАЧЕ рассмотреть другие разрешенные ходы;
пусть с — следующий ход
ЕСЛИ существует выигрывающий ответ противника на ход с
ТО исключить ход с
ИНАЧЕ учесть число возможных ответов противника после хода с (повторный вызов процедуры поиска хода)
КОНЕЦ ЕСЛИ
Сделать ход, на который противник имеет мини
мальное число ответных ходов
КОНЕЦ ЕСЛИ4
Стратегия «первого уровня». Рассмотрим позицию в игре тик-так-ту, приведенную на рис. 6.4. Покажем, как найти наи
Рис. 6.4. Ход черных.Рис. 6.4. Ход черных.лучший ход, используя стратегию первого уровня.
Рис. 6.4. Ход черных.
Рис. 6.4. Ход черных.
По правилам игры существует всего 4 допустимых хода:
а: (3,2) - (3,1)
Ь: (2,1)->(3,1) с: (2,l)f (1,1)
d: (1,3)->(1,2)
Ни один из них не является непосредственно выигрывающим, а ход d приводит к немедленному проигрышу, поэтому сразу его отбросим. Один из трех оставшихся ходов, а именно ход а, дает возможность противнику ответить четырьмя ходами, а два других——тремя. Оба последних хода приведут к выигрышу, в чем можно убедиться, применяя ту же стратегию. Анализ других позиций этой игры показывает, что для нее подобная стратегия является вполне приемлемой. Но при этом необходимо сделать два замечания.
Замечание 1. Рассмотренная стратегия первого уровня в принципе может быть применима и к любому уровню. В тех случаях, когда нельзя построить полное дерево ходов, с ее помощью можно проводить анализ ходов на любую выбранную глубину, используя определенные числовые значения в возникающих ситуациях. Таким числовым значением может быть,
например, число возможных ответных ходов противника. В конце концов после полного перебора всех позиций, вместо них используют логические величины ВЫИГРЫШ или ПРОИГРЫШ.
Замечание 2. Стратегия первого уровня может применяться независимо от вида игры. Она дает хорошие результаты в игре тик-так-ту, позволяя избежать запоминания полного дерева допустимых ходов. Ее можно использовать в дебюте и на других стадиях шахматной партии. Она пригодна и в других настольных играх, где все свободные клетки равноценны. В общем случае эта стратегия может быть применима к любой игре с двумя участниками и допускает определенные модификации в зависимости от вида игры.
На рис. 6.5 приведен пример полного дерева для игры тик- так~ту, содержащего все допустимые ходы для случая, когда черные начинают игру ходом своей фишки в центр игрового поля. При таком ходе победа черных обеспечена при любых ответных ходах противника. Из-за симметрии игрового поля только 2 ответных хода белых являются существенно различными——ходы на клетки а я Ь, рассмотрением которых мы и ограничимся. Ходы на клетки с, g и i эквивалентны ходу на клетку а, в ходы на клетки d, f н h — ходу на клетку Ь. За счет этого ширина дерева сразу уменьшается в 4 раза. Затем, (для экономии места и времени) мы учтем только наилучшие ходы черных на каждом уровне, т. е. такие ходы/ которые неизбежно приводят к выигрышу. Таким образом, представленное на рис. 6.5 дерево содержит легко определяемую последовательность ходов. Заметим, кстати, что кроме первого уровня, все ходы белых являются вынужденными вплоть до восьмого, который уже не имеет значения,——черные выигрывают в любом случае.
В тех же случаях, когда не может быть построена удовлетворительная оценочная функция- или если число допустимых ходов слишком велико для того, чтобы построить полное дерево, надо найти способ ограничить это дерево. Такая необходимость возникает в шахматах, шашках, игре триктрак, бридже, покере, Отелло, морпионе, го и т. д. Известны два способа ограничения разрастания дерева допустимых ходов по ширине и по глубине. Ограничение по ширине достигается отбрасыванием ходов, которые можно считать слабыми в данной позиции. Например, если ферзь находится под боем, можно не рассматривать ход пешкой на другом конце доски. На самом же деле и здесь возникают проблемы, так как такой ход чуть позже может привести к скрытому шаху или вилке. А это в свою очередь может привести к мату или ходу, спасающему оставленного под боем ферзя, а возможно, и к превращению. продвинутой пешки
Второй 80a черные (лучший аюд)
Первый ход чернь
А
е
■о
выигрыш черньт
Рис. 6.5. Полное дерево ходов в игре тик-так-ту. Выигрывает тот, кто делает первый ход.
Третий ход белых (снова вынужденный)
№ выбор (по желанию)
Третий 号力 чернью ^вынужденный)
Первой но<? бемых
Второй ноЗ 5е№ (вынужденный9 力юбоВ другой ход приводит 僧 ненед- лентну проигрышу)
Конец первого тура
Четвертый ход херкьб 5уииш& аюд)
■о
в ферзя. Иначе говоря, мы возвращаемся к не имеющей решения проблеме ——оценке произвольной позиции, на основании которой можно было бы точно судить о силе того или иного хода. При попытке уменьшить ширину дерева чаще всего отбрасываются ходы, связанные с жертвами, т. е. такие ходы, которые дают временное преимущество противнику для того, чтобы через несколько ходов добиться выигрышной позиции.
Почти все реально используемые алгоритмы в отличие от человеческого разума не допускают никакого ограничения по ширине дерева. Человек обладает гораздо лучшим общим видением позиции, культурой шахматного мышления, собственной стратегией, которой он руководствуется в данной партии, что, несомненно, позволяет ему лучше, если не безупречно, оценивать позицию. Для ЭВМ такая оценка не является невозможной (разд. 6.5), но для этого, разумеется, нужно использовать более сложные методы, чем изложенный здесь подход. Однако, если нельзя избежать экспоненциального увеличения времени вычислений за счет уменьшения ширины дерева, это нужно сделать за счет уменьшения глубины анализа.
Первая идея на этом пути состоит в следующем: раз и навсегда надо признать, что можно не идти в глубину слишком далеко и что средняя глубина анализа устана в л и в ается на основе несложных предварительных расчетов и разумного времени поиска решения, которое зависит от производительности используемой ЭВМ. Обычно глубина анализа составляет 〜5 (во всяком случае не более 10 иполуходов,5 — передвижений белых или черных фигур). .
Вторая идея заключается в том, что глубина анализа не обязательно должна быть одинаковой для всех ветвей дерева. В частности, нежелательно прерывать анализ посередине серии разменов фигур — подобные нестабильные позиции трудно поддаются оценке. Такие Me замечания можно сделать по поводу позиций, в которых взятие фигур происходит вследствие шаха королю противника. В подобных; случаях анализ позиций каждой из сторон должен прекращаться только тогда, когда позиция становится относительно спокойной.
Заметим, что подобные идеи впервые были использованы английским математиком Аленом Тьюрингом, который начиная с 1951 г. моделировал эту стратегию на вполне конкретных примерах.
62 Оценивание позиций
Теперь речь пойдет о том, чтобы каждой позиции S поставить в соответствие числовую величину F(S), которая принимала бы тем большие по абсолютной величине отрицательные
значения, чем большим является преимущество противника. Конечно, не существует никакой теории, с помощью которой можно было бы получить для шахмат точный вид функции 尸, но можно получить лишь знак оценки для некоторых известных дебютов. В отдельных случаях результаты могут быть еще хуже, например при позиционном преимуществе можно получить даже отрицательную оценку. Именно в этом состоит основная причина несовершенной игры программ卄такого типа. И если все-таки используется такой подход, то нужно при каждом плохом ходе программы попытаться внести изменения в вид функции F, которые привели бы к устранению ошибки.
Наиболее важной частью оценки всегда является материальная сторона: первый член функции 尸 пропорционален алгебраической сумме стоимостей фигур с той и другой стороны и называется балансом (8). Стоимости шахматных фигур подсчитываются обычным образом: пешка стоит I, конь и слон — 3, ладья ——5 и ферзь— 10: Полный вид функции F имеет полиномиальную форму, где к уже рассмотренному материальному балансу добавляются члены, оценивающие другие аспекты игровой позиции:
尸(S) = aB + bR + сМ + dC + eP + f 4
Если одной из сторон удалось выиграть слона (+3), но при этом проиграть 'пешку (—1), то первый член функции будет равен 2а, где величина коэффициента а, как. н b, с, d, е и f, зависит от “коварства” программиста. Следующие члены идут в порядке убывания их важности. Величина R учитывает относительную безопасность обоих королей и является тем большей, чем лучше защита короля после рокировки. Коэффициент b должен изменяться в течение партии, ег по мере исчезновения с доски главных фигур может стать нулевым. При этом короли начинают поддерживать свои пешки и даже помогать в атаке, защищая свои собственные фигуры.
Член М характеризует подвижность фигур. Он зависит от числа клеток, на которые могут сделать ход фигуры. Для каждой фигуры вводится весовой коэффициент, зависящий от ее игровых возможностей. Член С зависит от степени контроля за центром доски, т. е. за полями d4 и d5, е4 и е5. Связанный с ним коэффициент d имеет большие значения только в начале и середине партии. Член Р служит для учета структуры пешечного строя. Он тем больше по величине, чем лучше йешки защищены и внедрены в лагерь противника, а также чем больше у противника сдвоенных, изолированных и незащищенных пешек.
Наконец, последний член А учитывает атакующие возможности позиции и зависит от наличия защищенных фигур за четвертой горизонталью, ладей на открытых вертикалях, сдвоенных ладей, атакованных полей вблизи короля противника, а также от возможности разменять опасные фигуры противника, объявить шах королю противника или блокировать его фигуры. В некоторых программах оценочная функция учитывает и другие аспекты и содержит большее число членов/
Вычисление весовых коэффициентов а,…,/ зависит от терпения программиста, н ничто не мешает изменять их величины во время партии в зависимости от полного числа сделанных ходов и/или от числа фигур, оставшихся на доске. Очевидно, что оценочная функция такого вида допускает жертвы фигур. При этом член В становится отрицательным (у противника появляется преимущество по крайней мере на одну фигуру), но взвешенная сумма всех остальных членов компенсирует с ощутимым перевесом эту материальную потерю.
В гл. 9 показано, как коэффициенты а,…,f могут изменяться в программе в зависимости от обстоятельств.
Если бы можно было построить функцию F, абсолютно точно оценивающую позицию, то в программе достаточно было бы найти все допустимые ходы, оценить позиции, к которым они приводят, и сделать ход, приводящий к наилучшей из них. В действительности как нельзя построить дерево, достаточное для достижения позиции, в которой можно было бы отдать явное поедпочтение одному из противников, так и нельзя построить совершенную оценочную функцию. Необходим компромисс между средней глубиной анализа и качеством оценочной функции, а стремление улучшить и то и другое приведет к возрастанию времени вычислений.
В следующем разделе рассмотрена еще одна проблема: как связать конечную позицию, которая достигается при максимальной глубине анализа, с эффективным поиском хода на первом уровне. Для ее решения разработан метод, получивший название метода минимакса, который послужил отправной точкой для машинных игровых программ.
Метод минимакса и выбор очередного хода
Прежде всего отметим, что из-за несовершенства оценочной функции начальной позиции оценка промежуточных позиций, встречающихся по мере продвижения по дереву допустимых ходов, ничего не дает, пока не достигнута установленная максимальная глубина анализа п. Оценки таких позиций могут оказаться очень нестабильными. При достижении глубины п еле-
с оценками стабильныхс оценками стабильныхпозиций на раз-позиций на раз-Рис. 6.6. Дерево допустимых ходов личных глубинах-Рис. 6.6. Дерево допустимых ходов личных глубинах-
с оценками стабильных
с оценками стабильных
позиций на раз-
позиций на раз-
Рис. 6.6. Дерево допустимых ходов личных глубинах-
Рис. 6.6. Дерево допустимых ходов личных глубинах-
дует исключить из расчетов вклад выбывших из игры фигур и тем самым привести в действие так называемый механизм “успокоения''. На рис. 6.6 показано дерево, не все ветви которого имеют одинаковую длину. Последняя зависит от числа ходов, которые нужно проанализировать для достижения спокойной позиции. Двигаясь по дереву в обратном направлении, мы присвоили числовые оценки позициям (вершинам), которые хронологически предшествуют позициям, связанным с концами ветвей. Покажем, каким образом мы это сделали.
В 1945 г. Оскар Моргенштерн и Джон фон Нейман предложили метод, нашедший применение в теории игр. Дополнительное важное предположение при его использовании состоит в том, что оценочная функция, используемая противником, совпадает с нашей.
Выбор хода с нашей стороны определяется максимальным значением оценочной функции для текущей позиции, в то время как противник, наоборот, стремится сделать ход, который ее минимизирует. Таким образом, в наихудшем для нас варианте, везде, где ему предоставляется эта возможность, противник делает ход, в результате которого наша позиция становится наиболее слабой. Все происходит так, как будто очередной ход противника отыскивается из условия минимальной оценки позиции данного уровня. И наоборот, поиск своего хода из позиции соответствующего уровня мы ведем из условия максимальной оценки позиции. Поэтому метод, предложенный Моргенштерном и фон Нейманом, получил название метода минимакса. По приведенной схеме, шаг за шагом, выполняется оценка всех промежуточных узлов (разветвлений дерева). Для того чтобы найти числовую оценку данного узла, необходимо знать оценки
11 Ж--Л. Лорьер
Рис. 6.7. Получение оценок восхождением по дереву с помощью метода минимакса для предыдущего случая.
всех непосредственно следующих из него узлов и присвоить максимальное или минимальное значение в зависимости от принадлежности уровня. Последовательно продолжая процедуру оценки до корня дерева, т. е. до начальной позиции, в конце концов найдем свой наилучший ход в позиции первого уровня, которому соответствует наиболее высокая восходящая оценка. Отметим, что эта оценка не имеет ничего общего с оценкой, полученной применением функции 尸 непосредственно к начальной позиции без учета последующих ходов.
На рис. 6.7 приведен пример анализа игры с помощью метода минимакса. В начальной позиции предполагаются, разрешенными только два хода 左i и 々2・ Ход 也 приводит к позиции pl, которая допускает в качестве ответных ходов 々з и ^4- Рассмотрим сначала ветвь, образуемую ходом 自 и предположим, что допустимыми ходами из этой позиции являются 々5,力6 и 々7. В .результате хода 々6 возникает позиция, в которой возможны три ответных хода —电,%9 и 电о.
Предположим, что наша программа предусматривает максимальную глубину анализа, равную 4. Таким образом, в ней предусматривается анализ и нахождение оценок последующих позиций 々8,々9, ^ю. Оценки, получаемые с помощью функции F, выполняются на ветвях нижней части дерева. Если в начальной позиции следует свой ход, то противнику предоставляется очередь сделать ход на последнем из рассматриваемых уровней: из трех возможных позиций (с оценками 3, 1 и 4) он, таким образом, выбирает (по крайней мере, если использует ту же оценочную функцию) наиболее слабую, т. е. с оценкой, равной 1.
Алгоритм метода минимакса имеет следующий вид:
МИНИМАКС: {Спуститься до максимальной глубины и оценить позицию; выбрать позицию с минимальной или максимальной оценкой в зависимости от глубины; перейти к следующей ветви того же уровня, если она существует, в противном случае подняться на один уровень}
Нам потребуется использовать некоторые вспомогательные процедуры последующего назначения:
ПОИСК ХОДА (ПОЗИЦИЯ, ИГРАЮЩИЙ): поиск разрешенных ходов для текущей позиции.
ПАКЕТ ХОДОВ (ПОЗИЦИЯ, ЛАГЕРЬ): упорядоченное размещение найденных ходов в памяти. ‘
ИГРА (ПОЗИЦИЯ, ХОД): определение позиции после данного хода.
ХОД НАЗАД (ПОЗИЦИЯ; ХОД): процедура, обратная предыдущей, ——определение позиции, существовавшей до сделанного хода.
ОЦЕНКА (ПОЗИЦИЯ, ГЛУБ): определение числового значения, связанного с позицией.
Для упрощения описания алгоритма будем умножать оценки на нечетных уровнях на ——1, тогда на любом уровне задача сводится только к нахождению максимума.
Кроме того, используются следующие обозначения: ГЛУБ — текущая глубина анализа; МАКСГЛ максимальная глубина анализа. Другие процедуры, встречающиеся в тексте алгоритма, служат для определения следующих величин: ОЦЕНКА (ПОЗИЦИЯ) —оценки текущей позиции; ОЦН (ГЛУБ)— оценки максимального значения, полученного для данного уровня; Е (ГЛУБ)—множества допустимых ходов в течение анализа i)・
В тексте алгоритма встречаются переменные и процедуры, назначение которых автором не определено.
Переменные:
ЛАГЕРЬ—.принимает два значения 士 1 в зависимости от того, чья позиция оценивается (своя +1 или противника —1).
ПОЗИЦИЯ ——размещенная в памяти информация о расположении фигур в данной позиции, которая в дальнейшем используется для вычисления значений оценочной функции, определения последующих позиций и т. д.
МИНИМАКС 1) название алгоритма.
числовое значение полученной оценки.
Процедуры:
ЗАГРУЗКА ПАМЯТИ (£■,. ГЛУБ) — включение сделанного хода в множество ходов Е.
РАЗГРУЗКА ПАМЯТИ (Е, ГЛУБ)—исключение взятого назад хода из множества Е.
■ —Прим, перев.
Итак, значение 1 для оценки позиции получается, если мы принимаем решение сделать ход 々5 на третьем уровне. То же самое относится и к ходу kQt поскольку противник и в этом случае имеет ответ, позволяющий не допустить наших надежд на хорошую позицию и получить оценку, равную 1. Из всех ходов на этом уровне только ход 厉 имеет заметные преимущества. Действительно, в этом случае минимальная оценка позиции, которая может возникнуть после ответного хода противника, равна 5. Таким образом, мы получаем оценки трех позиций, возникающих в результате последовательных ходов Аь 々з и 々九 Мы делаем ход, который приводит к позиции с максимальной оценкой, т. е. из рассмотренных выше оценок 1, 1 и 5 мы выбираем оценку 5, которая соответствует ходу А?. Это значение становится оценкой позиции после ходов 左i и 々з, полученной с помощью метода минимакса. ■
На рис. 6.7 показан окончательный результат анализа дерева ходов с помощью метода минимакса. Рядом с каждой промежуточной позицией на рисунке проставлена оценка, подсчитанная по этому методу.
Отметим, что в этой процедуре, как и в решении задачи о восьми ферзях, по мере спуска по ветвям дерева следует делать ходы, а при восхождении по дереву брать их назад. Для этого необходимо при анализе позиции на каждом из уровней сохранять в памяти проанализированные ходы. Отметим, что в отличие от времени вычислений, которое, Емы видели, резко возрастает с глубиной анализа, требуемый объем памяти является не очень большим. Ветви дерева, не соответствующие единственной последовательности найденных с помощью метода минимакса ходов, не должны храниться в памяти. В последующем используется только наилучшее числовое значение на каждом уровне. Вот почему с этой задачей вполне справляются даже широко доступные микроЭВМ.
Существует еще одна процедура, теоретически эквивалентная методу минимакса, с помощью которой всегда получается такой же результат, но заметно быстрее, так как целые части дерева исключаются без проведения анализа. В основе этой процедуры лежит идея Дж. Маккарти: использование двух переменных, обозначенных а н 0 (1961). Однако, несмотря на усовершенствование этой процедуры, к ней не проявляется интереса из-за одного существенного недостатка: партия играется ход за ходом без общего плана. Для человека такой стиль игры неприемлем: сила разума заключается в способности понять ситуацию, развить ее в том или ином направлении, адаптировать стратегию игры к конкретным обстоятельствам.
В настоящее время разрабатываются алгоритмы, более близкие к образу мышления человека. Исследователи в области ис- кусственного интеллекта концентрируют усилия в составлении именно таких программ. Программы, играющие в шахматы, должны учитывать весь многовековой опыт этой игры, в частности такие позиционные особенности, как двойное нападение на фигуру, наличие открытых вертикалей, недостатки рокировки, блокировка фигур и т. д. Все эти термины, обычные для шахматиста, должны быть понятны программе и использоваться в ней.-
Подобные методы, основанные на глубоком знании предмета, начинают находить применение во многих других областях: в химии, медицине, математике (разд. 6.8, гл. 7).
Алгоритм минимакса
ДАННЫЕ: (ПОЗИЦИЯ, ЛАГЕРЬ)
РЕЗУЛЬТАТ: (значение оценки позиции = МИНИМАКС)
ГЛУВ—1; ЛАГЕРЬ ч-1: £(!)<- ПАКЕТ ХОДОВ (ПОЗИ
ЦИЯ,ЛАГЕРЬ);
ОЦН(1)<- —оо
ПОВТОРЯТЬ ПОКА ГЛУБ>1
ПОВТОРЯТЬ ПОКА £(ГЛУБ)^ пусто
ХОД —ЗАГРУЗКА ПАМЯТИ (Е (ГЛУБ)) ПОЗИЦИЯ*-ИГРА (ПОЗИЦИЯ,ХОД) ЕСЛИ ГЛУБ = МАКСГЛ
ТО ГЛУБ ГЛУБ + 1
ЛАГЕРЬ^--ЛАГЕРЬ
Е (ГЛУБ) ПАКЕТ ХОДОВ (ПОЗИЦИЯ,ЛАГЕРЬ) ОЦН (ГЛУБ) -оо
ИНАЧЕ {уровень максимальной глубины:оценка и сравнение позиции}ОЦН (ГЛУБ) — МАХ [ОЦН (ГЛУБ),ЛАГЕРЬ * ОЦЕНКА (ПОЗИЦИЯ)!{ход назад с уровня максгл}ХОДРАЗГРУЗКА ПАМЯТИ•位(ГЛУБ))ПОЗИЦИЯ^-ХОД НАЗАД(ПОЗИЦИЯ, ХОД)
{оставаться на этой глубине пока есть ходы}
-КОНЕЦ ЕСЛИ
КОНЕЦ ПОВТОРЯТЬ
{Возврат к началу цикла}
ЕСЛИ ГЛУБ= 1 ТО МИНИМАКС ♦ ОЦН(1); конец
КОНЕЦ ЕСЛИ
ЛАГЕРЬ ^-ЛАГЕРЬ
ГЛУВ — ГЛУВ- I
{Взятие назад последнего хода на этой глубине} ХОД<-- РАЗГРУЗКА ПАМЯТИ (Е (ГЛУБ))
ПОЗИЦИЯ^-ХОД НАЗАД (ПОЗИЦИЯ,ХОД) {Нахождение восходящей оценки по методу минимакса}
ОЦН (ГЛУБ) <-МАХ [ОЦН (ГЛУБ),ОЦН (ГЛУБ + 1)] КОНЕЦ ПОВТОРЯТЬ КОНЕЦ МИНИМАКС
Альфа — бета-процедура
Основная идея метода состоит в сравнении наилучших оценок, полученных для полностью изученных ветвей, с наилучшими предполагаемыми оценками для оставшихся. Можно показать, что при определенных условиях некоторые вычисления являются лишними. В отличие от метода минимакса, который по сути заключается в построении пространства ходов путем их прямого перебора, в данном методе значительная часть ходов подвергается неявному перебору, проводимому с помощью процедуры отбрасывания частей дерева.
На примере, приведенном на рис. 6.8, поясняется идея процедуры отсечения. Предположим, что узел S соответствует позиции, в которой ход принадлежит нам. При этом в нашем распоряжении несколько возможных ходов, два из которых показаны на рисунке. В результате одного из них возникает позиция Л, в результате другого ——позиция У. Предположим также, что позиция Л уже полностью проанализирована и найдено значение ее оценки〈а〉. Перейдем к анализу позиции У. Допустим, что один ход из этой позиции приводит к позиции Z, оценка которой (полученная по методу минимакса) равна z.
Предположим далее, что z & а. Кроме того, пусть величина s и у являются значениями оценки в узлах S и У. Тогда в любом случае выполняется неравенство у ^z, поскольку в пози-
Свои jcod: тав
Свой асод: таа;
Ход противника: min
Оцениваемь(е позицииОцениваемь(е позицииОцененные ।1
Оцениваемь(е позиции
Оцениваемь(е позиции
позиции II
Рис. 6.8. Неглубокое альфа-отсечение.
ции У ход за противником, который из всех возможных ходов выбирает такой, который приводит к позиции с минимальной оценкой.
Отсюда следует g W 2 W а, а так как очевидно, что s больше или равно а н у, то справедливо соотношение у W z W a W W s. Эти неравенства показывают, что неизвестное значение оценки у в узле У не будет оказывать влияния на последующие результаты, и, следовательно, анализ всех последующих ветвей, выходящих из узла У, кроме Z, оказывается бесполезным. Другими словами, после анализа узла Z остальные ветви дерева, выходящие из узла У, могут быть отброшены (альфа-отсечение) .
Эти рассуждения легко распространить на случай, где на первом уровне ход принадлежит противнику. При этом оценка о)на глубине 2 должна удовлетворять условию s ^ В (бета- отсечение). Но это справедливо и для узлов, находящихся на существенно различных глубинах дерева, при условии, что они принадлежат уровням одного из противников. Такими узлами являются Д и Z на рис. 6.9.
Рассмотрим этот рисунок более подробно. Пусть, как и в предыдущем случае, мы должны сделать ход из позиции S и имеем всего две возможности, которые приводят к позициям А и U. Предположим, что полный анализ позиции Л уже завершен и полученная оценка равна а. Начиная анализ позиции отметим, что после нечетного числа промежуточных ходов, в данном случае равного 3, возникает позиция Z, оценка которой
Рис. 6.9. Глубокое отсечение.
равна z. Снова допустим, что найденное значение z меньше а. Для узла У, расположенного на более высоком уровне, непосредственно следующем за Z, найдем оценку у, которая удовлетворяет соотношению у ^ z, так как ход из позиции У принадлежит противнику. Покажем, что и в данном случае результат анализа остальных позиций, вытекающих из вершины У, не может изменить конечного результата, т. е. оценки S. ■
Рассмотрим позицию V. Ее анализ может привести к двум различным результатам: v> у или v — у. Очевидно, что в первом случае результаты анализа других ходов не могут привести к изменению значения оценки и, так как уже известно, что у W z, а величина у .в результате такого анализа может быть только уменьшена. Во втором случае справедливо равенство у = 〃 отсюда с учетом предыдущих неравенств имеем и = у W W z W а, т. е. узел V получает меньшую по величине оценку, чем узел А, и таким образом опять возвращаемся к схеме, приведенной на рис. 6.8. Окончательно получаем, что в обоих случаях оценка s позиции S не зависит от других ветвей дерева, выходящих из узла У, и анализ последних может не проводиться (глубокое отсечение типа а)..
Рассуждая аналогично, можно рекуррентно спуститься до узла Z, лежащего на уровне произвольной глубины, принадлежащей той же стороне, что и уровень S. Если в этой позиции ход принадлежит противнику, то, естественно, пределом для
Начальная позиция S
Рис. 6.10. Альфа ― бета-процедура отсечения дерева, приведенного на рис. 6.6
анализа позиций на нисходящих ветвях дерева служит уже минимальное значение оценки 0. Отсечение типа 0 можно выполнить всякий раз, когда оценка позиции, возникшей после хода противника (обозначим ее з), превышает значение & Алгоритм поиска строится так, что при анализе дерева оценки своих ходов и ходов противника сравниваются с величинами а и § соответственно. В начале вычислений этим величинам присваиваются значения плюс и минус бесконечности, а затем, по мере восхождения к корню дерева по описанной выше схеме, находится оценка начальной позиции и наилучший ход для одного из противников (рис. 6.10 и табл. 6.3) .
Таблица 6.3
Ход
Наилучшая оценка
Позиция на глубине п
Оценка позиции
Условие
Действие
Свой
а
Своя
2
之=a
альфа-от-
сечение
Противника
В
Противника
ш = Р
бета-отсе-
чение
Найденный ход существенно зависит от позиций, лежащих на произвольной глубине и принадлежащих той же стороне. При проведении анализа величине а необходимо присваивать пре^ дельные значения оценки для четных уровней, а величине р —■ для нечетных, -начиная с корня (единственной вершины нулевого уровня).
■ Процедура отсечения может быть применена только начиная с того момента, когда получены оценки по крайней мере двух конечных узлов. По мере нахождения оценок значение а для каждого уровня постепенно увеличивается, а р ——уменьшается. В конце анализа их значения выравниваются.
Альфа「бета-алгоритм дает тот же результат, что и метод минимакса, но выполняется быстрее. С его помощью можно получить хорошие результаты при удачно составленной оценочной функции и достаточно большой глубине анализа, что, однако, требует большого объема вычислений. Очевидно, что этот метод можно с успехом использовать при решении шахматных задач на мат в п ходов (п обычно меньше 6). Оценочная функция в этом случае является точной, а достижение максимальной глубины анализа потребует разумного времени. В настоящее время для программ, разработанных для современных микроЭВМ и играющих по этому методу, характерен переход от среднего качества игры к хорошему.
В заключение отметим одно интересное свойство: алгоритм находит тем больше ходов за определенное время, т. е. является тем более производительным, чем более упорядоченно расположены вершины при отыскании каждого хода. В идеальном случае (естественно, недостижимом на практике) вершины на каждом уровне должны располагаться по монотонно убывающим значениям оценки. Для приближения к идеальному случаю в некоторых программах, прежде чем применить алгоритм до глубины, например, 6, сначала используется этот алгоритм до глубины 2, после чего на основе полученных результатов выполняется упорядочивание узлов. Затем вновь проводится анализ уже до глубины, например 3, производится новое упорядочивание, и только после этого алгоритм применяется к полной глубине 6. Два первых захода, в течение которых обрабатывается небольшое число вершин, выполняются очень быстро и позволяют заметно приблизиться к идеальному упорядочению вершин для уровня 6. При этом полное время вычислений сокращается по сравнению со случаем выполнения анализа сразу на всю глубину без предварительной подготовки.
Основные недостатки игровых программ, основанных на анализе дерева ходов
Игровые программы, построенные по принципу систематического перебора допустимых ходов, обладают рядом существенных недостатков. Рассмотрим два основных недостатка, присущие подобным программам.
Первый недостаток: полное отсутствие стратегии
abcdef ghabcdef ghОчевидно, что при таком подходе к игре, который реализуется в подобных программах, каждая новая позиция рассматривается в отрыве от всех остальных. Можно сказать, что программа не ведет игру, а анализирует последовательность позиций, полностью независимых друг от друга. Альфа — бета-процедура не позволяет составить единого плана игры, она не дает возможности действовать в соответетвии с заранее выбранной стратегией. Все принимаемые решения умещаются в оценочной функции и определяются ее видом! Иными словами, текущая игровая ситуация, определяемая, в частности, степенью развития фигур, наличием линий атаки, организацией пешечной защиты, наличием проходных пешек, оценивается всего лишь с помощью нескольких очень просто вычисляемых членов. Конечно же, они не в состоянии ни предсказать развитие партии на большое число ходов, ни направить партию к
abcdef gh
abcdef gh
заранее определенному вы ИГ- Рис. 6.11. Окончание партии. Ход рышному окончанию. Наибо- бель1Х- лее простые примеры, иллюстрирующие этот недостаток, часто встречаются в окончаниях. Рассмотрим позицию с тремя пешками у черных против двух пешек у белых, приведенную на рис. 6.11.
Каждому любителю шахмат ясно, что выигрыш белых неизбежен. Но для его реального достижения требуется составить план на большое число ходов вперед, который обеспечил бы продвижение пешки а2 в ферзи. Своим первым ходом @2 — а4 белые в конце концов обеспечивают себе победу. Шахматист сделает такой ход немедленно, он с неизбежностью приведет к проигрышу обладателя черных фигур, так как его король уже не сможет войти в квадрат пешки а4 (квадрат а4, а8, е8, е4). Пешка а4 может пройти в ферзи самостоятельно без помощи короля. Так как ни одна пешка черных не в состоянии проделать то же самое, то для них партия проиграна. Игровые программы, составленные в соответствии с рассмотренными выше методами, часто не способны провести даже такой простой анализ. Покажем, что в данном примере анализ на 10 полуходов вперед (с учетом вынужденного хода короля белых для уклонения от промежуточного шаха) не достаточен для проведения
пешки 。2 в ферзи. На основании этого алгоритм, заложенный в основу подобной программы, придет к однозначному выводу о том, что черные обладают преимуществом ——три пешки против двух! Можно сказать, что в программе делается ставка только на гигантскую производительность ЭВМ, но никак ни на способность к формальному мышлению с логическим анализом позиций и эффективным поиском решений. В игре против программ такого типа может сложиться впечатление, что программа придумала красивую идею нападения на ту или иную фигуру, однако при ближайшем рассмотрении оказывается, что уже через два хода позиция становится проигрышной, т. е. в действительности никакой идеи и не было!
Программы этого семейства исильны,т лишь постольку, поскольку они в состоянии рассчитывать большое число ходов за ограниченное время. Производительность ЭВМ в принципе влияет одинаково и на. вычисление квадратного корня, и на игру в шахматы. Единственное различие между микропроцессором и большой ЭВМ состоит в скорости вычислений: первые в состоянии к настоящему времени (1986 г.) вычислить тысячу ходов, а вторые (как ЭВМ типа Cyber) —пятьсот тысяч ходов за время 〜1 мин. Но даже такой производительности может не хватить для систематического перебора всех допустимых ходов.
Второй недостаток: эффект горизонта
Необходимость иметь фиксированное значение максимальной глубины анализа в программах, работающих по принципу перебора допустимых ходов, как уже говорилось, приводит к двум основным недостаткам. Первый уже рассмотрен выше — программа может не “видеть" (и тем более оценить) последствия хода, которые проявляются на глубине, превышающей заранее установленную. На второй, менее очевидный недостаток обратил внимание Ганс Берлинер (в прошлом чемпион мира по шахматам по переписке) в своей диссертации в 1974 г. Он получил название эффекта горизонта и является неизбежным следствием первого недостатка. Оказывается, что программы, построенные по принципу систематического перебора допустимых ходов, по природе стремятся все .сделать для того, чтобы все невыгодные события оказались за пределами максимальной глубины анализа, т. е. за пределами горизонта. Они не хотят видеть надвигающуюся катастрофу и располагают одним средством борьбы с ней ——отодвигать неизбежный исход с помощью абсурдных ходов.
Рассмотрим пример, приведенный в диссертации Г. Берлин нера (рис. 6.12). Слон белых, расположенный на поле о4, окружен черными пешками, и его потеря неизбежна. Стратегия
хорошего шахматиста, играющего белыми, заключалась бы в том, чтобы максимально скомпенсировать эту потерю. В данном случае имеется возможность получить за слона одну пешку и бороться за выигрыш другой (таким образом, перевес остается за белыми, которые в приведенной позиции имеют преимущество в одну фигуру—коня).
а Ь с d е f g hа Ь с d е f g hРис. 6.12. Эффект горизонта (Н. Berliner, 1974). Ход белых.Рис. 6.12. Эффект горизонта (Н. Berliner, 1974). Ход белых.В шахматах приняты следующие обозначения 1): К — конь, С — слон, Л — ладья, Ф — ферзь, Кр — король, для пешек специальные символы не используются. Вертикали обозначаются буквами от а до А, горизонтали — цифрами от 1 до 8, знак X означает взятие, + шах. Таким образом, 1 — е5 означает, что пешка на вертикали е продвигается пер
а Ь с d е f g h
а Ь с d е f g h
Рис. 6.12. Эффект горизонта (Н. Berliner, 1974). Ход белых.
Рис. 6.12. Эффект горизонта (Н. Berliner, 1974). Ход белых.
вым ходом на один шаг (исходное поле не указывается), а 3 — К X Се7 + означает, что на 3-м ходу конь берет слона, расположенного на поле е7 и объявляет при этом шах.
Если же за белых играет программа рассмотренного выше типа, то она выбирает совсем другую стратегию. Ей достаточно построить ход игры таким образом, чтобы потерю слона вывести из поля своей видимости (со своего горизонта), а в этом случае все происходит так, как будто бы слон никогда не будет взят. Это находится в полном согласии с прямолинейной механической логикой альфа ——бета-метода: достаточно найти последовательность из большого числа ходов с вынужденными ответными ходами черных, отодвигающую момент взятия слона противником. Так, в рассматриваемой позиции, если глубина анализа составляет 5 полуходов, лучшим ходом, найденным с помощю альфа ——бета-процедуры окажется ход е5! С этого хода начинается реализация следующего плана <<cпaceния^^:
1― е5 d><e「(B противном случае теряется конь f7)
— Kd5 и если К X Kd5, то 3 — Л X Kd5:(а)
если слон уходит с поля е7, то 3 — С63;(Ь)
если b X Са4, то 3 — КХСе7+.(с)
) Обозначения шахматных ходов в книге соответствуют принятой в западных странах системе обозначений, отличающихся от используемых в нашей страйе тем, что на каждом шаге указывается лишь поле, на которое ставится фигура, совершающая ход. ~ Прим. 0cd.
В случае (а) черные, очевидно, должны продолжать Ь5Х X Са4, но угрожает Л X Cd7. Эту угрозу черные вполне могут отвести ходом 4 — ...Себ, но он уже лежит за пределами глубины анализа. В итоге программа, играющая за черных, выигрывает пешку вместо слона! В случае (Ь) программа играет СЬЗ. При этом оба коня защищены, а слон якобы спасен! На самом же деле он потерян, так как затем последует ход черных 3 ——...с4. Наконец, в случае (с) взятие черными слона является преждевременным и. белые отыгрывают фигуру. Правильный ход на первом уровне программа сможет найти только в том случае, если максимальная глубина на анализе МАКСГЛ для нее равна 7. Для рассматриваемого случая это равносильно анализу 168 800 позиций!
Эффект горизонта может привести к очень большим потерям, и его устранение не представляется возможным, так как он порожден самим подходом к составлению программ. Именно с его последствиями связаны основные отличия игровых программ от игры человека. Он способен причинить много огорчений программисту, наблюдающему за игрой своей программы. Известен случай, когда в игре программы Chess 4.4 возникла позиция, в которой пешка достигла седьмой горизонтали. Для программы такая пешка стоит очень дорого, но более глубокий анализ показал бы, что защитить ее невозможно и она будет потеряна. Программа, естественно, играет так, чтобы не потерять эту пешку, максимально отдаляет момент потери и... после серии неудачных ходов теряет все накопленное преимущество. В конце концов ее противник берет пешку. (Правда, после этого Chess 4.4 обнаруживает все свои лучшие качества, начинает хорошо играть и выигрывает!).
Психологические аспекты принятия решения
Нелегко точно определить, когда появились первые работы по психологии принятия решения. В 1894 г. во Франции Альфред Бине опубликовал работу uПсихология шахматистов и людей, выполняющих большие объемы вычислений". В ней он впервые затронул, в частности, важные вопросы изучения памяти человека, его воображения и эрудиции. Он интересовался возможностями абстрактного мышления человека и делал выводы на основе своих наблюдений над людьми, которых заставлял выполнять вычисления или играть в шахматы вслепую и вслух комментировать ход своих мыслей.
Впоследствии опыты Бине в абласти шахматной игры были продолжены и завершены рядом психологов, таких, как Адриан Де Грот, Герберт Саймон и Джон Байлор. Бергсон, первый ком-
ментатор опытов Вине, в 1902 г. высказал такую мысль: кажется, что представление в мозге содержит не столько информацию о собственно физическом мире (в шахматах — это фигуры и доска), сколько указание о будущих направлениях развития.
В 1920 г.. малоизвестный психолог Вюрцбургской школы Отто Сейц разработал первую концептуальную модель процессов мышления, которые он описал как линейную цепочку элементарных операций. Сейц, таким образом, выделил элементарные операции, дал им определение и в то же время точно описал общие, как ему казалось, процессы, присущие любой человеческой деятельности. Он показал, что в процессе принятия решения большую роль играют такие понятия, как интеллектуальная индивидуальность, существо и частные характеристики решаемой проблемы. По его представлениям движущей силой, которая толкает мышление по этим цепочкам, является “общий закон предвидения результатов”, способность с определенной степенью абстракции рассуждать по плану, двигаясь от одной промежуточной цели к другой.
Заслуга и удача исследователей искусственного интеллекта на сегодня состоит в способности эффективно с помощью программ демонстрировать справедливость этих идей. Сейчас видно, как сбылись предвидения таких ученых, как Бине и Сейц. Они, несомненно, первыми рассмотрели' и научно показали, что такие способности мозга, как мышление и умозаключение, находятся в одном ряду с другими наблюдаемыми на опыте явлениями. Они уже на пороге двадцатого века показали, что наши интеллектуальные возможности прежде всего обусловлены двумя хорошо различаемыми явлениями: памятью и восприятием.
Л. Память
Оперативная память современных ЭВМ, обладающих максимальной производительностью, насчитывает от 10 млн. до 1 млрд, двоичных единиц информации. Оперативной называют такую память, которая постоянно доступна для ЭВМ. По аналогии можно сказать, что наш мозг, в котором мы храним всю необходимую информацию, является нашей оперативной памятью в отличие от внешней памяти, которая для ЭВМ представляет собой диски и ленты, а для нас ее роль играют книги в библиотеках ——они снабжают нас внешней информацией, доступ к которой осуществляется не так легко.
Среднее время доступа к информации, хранящейся в оперативной памяти ЭВМ в двоичном виде, составляет в настоящее время 〜10-9 с. ЭВМ. умеет очень быстро выполнять небольшое
число элементарных операций. Но было бы ошибкой считать, что ЭВМ превосходит нас по объему памяти. В человеческом мозге в среднем находится около 10 млрд, нейронов, каждый из которых имеет синаптический контакт с большим числом ——от одной до десяти тысяч (точное значение неизвестно)——своих маленьких собратьев. Таким образом, в мозге существует 10 000 млрд, точек обмена информацией (невероятно, не правда ли? Вы, возможно, плохо представляете свое настоящее богатство!...). Кроме того, никто сегодня не в состоянии оценить объем информации, содержащейся в одном нейроне; без всякого сомнения, он намного больше, чем двоичная единица, принимающая значения типа да/нет. Не исключено, что один ней- рон содержит тысячу или миллион таких единиц информации. Возможно, что информация кодируется одновременно во многих нейронах сразу. В любом случае не вызывает сомнения, что мы обладаем гигантской памятью по сравнению с оперативной памятью самых больших современных ЭВМ. Наличие такого громадного объема предполагает, что должен существовать также развитый и эффективный механизм доступа к этой памяти. Вот почему почти не удивляет экспериментальное подтверждение того факта, что мы непрерывно структурируем наше знание, выделяем множество опорных точек,, даем имена новым элементам информации, кодируем, отбираем и, наконец, все это... забываем!
Эксперимент также показывает, что часть мозга используется особым образом. Речь идет о существовании так называемой кратковременной памяти. Множество образующих ее нейронов находится в прямой связи с органами чувств и взаимодействует с ними. Именно эта часть мозга воспринимает всю новую информацию перед тем, как ее отправить в долговременную память. В кратковременной памяти информация разрушается очень быстро — если ее не подкреплять, то через 5 с она уже будет разрушена. В долговременной же памяти информация сохраняется значительно дольше —часы, дни, годы — без дополнительной внешней активизации, только за счет чисто внутренних процессов, которые, возможно, происходят с нами во сне. В то же время чтение из долговременной памяти требует гораздо больше времени, чем из кратковременной — многие секунды вместо сотых долей секунды.
.2. Восприятие
Приведем некоторые данные, позволяющие лучше понять трудности решения проблем, связанных с человеческим мозгом. Двухуровневая организация нашей памяти показывает, в ча-
стности, что наиболее важная часть мозга находится в прямой связи с рассмотренными уровнями. С ними связано моделирование восприятия и организация управления мозгом в процессе всей его эволюции. При этом первостепенную роль играет визуальная система восприятия. Кроме того, в мозге возникают структуры, способные эффективно кодировать пространственновременную информацию, которой мозг буквально “пропитан”. Конрад Лоренц утверждает, что человеческая порода произошла от породы больших обезьян, которые в один прекрасный день в своем восприятии реального пространства пришли к выводу, что жизнь стала сложнее, охота труднее, и они смогли представить себе обстоятельства, опасные для своей жизни. В то же время установилась доминирующая роль пространственных представлений. Действительно, реальное пространство служит нам фундаментальной моделью для описания всех остальных внутренних отношений и представлений. В частности, пространственные понятия широко используются в языке; примером может служить фраза иВы это ясно видите?1'
Нам осталось рассмотреть один важный и удивительный момент, который касается экспериментальных оценок объема нашей кратковременной памяти. Объем оказался очень небольшим: кратковременная память человека не может содержать более 7 (±2) элементарных единиц информации. Легко убедиться, что эта величина мала с практической точки зрения. Мы мгновенно вычисляем, например, произведение 7X8, но для вычисления произведения 72 X 8 нам требуется больше времени; сказывается то, что нужно приложить небольшие усилия для управления памятью, на что уходит дополнительное время. Для выполнения умножения 72 X 89 почти всем потребуется бумага и карандаш, которые представляют собой часть нашей обычной внешней памяти. Если запретить использование этих инструментов, операция будет выполняться значительно дольше, так как обмен с нашей долговременной внутренней памятью, как мы видели, требует много времени.
Из-за малого объема кратковременной памяти (всего 7 единиц информации) всякая новая информация разрушает предыдущую. Вот почему оказывается довольно трудно проследить обратный ход своих мыслей.
Рассмотрим теперь, что представляет собой единица измерения информации, которую мы назвали элементарной единицей. Введем ключевое понятие и дадим ему точное определение. Элементарная единица информации представляет собой блок информации, который мы способны сразу и целиком распознать, закодировать и запомнить. Его величина и содержимое зависят от конкретного индивидуума. Например, если кто-нибудь
диктует громким голосом последовательность из нулей и единиц, вы с большим трудом сможете запомнить с пол^южины последовательных цифр. Но если эту последовательность слышит специалист по информатике, который привык к работе в восьмеричной системе счисления, в каждом блоке кодирует и запоминает группу из трех двоичных цифр, то он без труда удержит в памяти 6 или 7 блоков, в каждом из которых находится по одной восьмеричной цифре, т. е. около двадцати двоичных элементов.
Пример
1 0 1
1 0 0
1 0 1
0 1 1
0 0 0
0 1 0
1 1 1
разбивается на
101
100
101
011
000
010
111
кодируется в
5
4
5
3
0
2
7
Запоминаемое число: 5 453 027
Кодировка: ООО: 0 001 : 1 010:2 011 :3 100:4 101:5 110:6 111 :7
Еще один пример — память музыкантов, которые запоминают мелодию по мере ее звучания, что связано с очень высоким уровнем организации их долговременной памяти. В отличие от этого слабо натренированное ухо смогло бы запомнить не более двадцати первых нот.
Из этого можно сделать вывод, что содержащаяся в кратковременной памяти информация представляет собой имена блоков, размещенных в долговремейной памяти данного индивидуума.
Исследование психологии шахматистов
Рассмотрим (по работам де Грота, Саймона и Виникоффа) два различных аспекта анализа шахматной игру: восприятие и вывод. Особенно выделим работы де Грота, который смог четко разделить предметы исследований и провести их сравнение. Он выполнил анализ протоколов рассуждений шести гроссмейстеров (два из них — чемпионы мира), четырех международных мастеров, двух голландских чемпионов и десяти экспертов.
Восприятие
Эксперимент заключался в том, что шахматистам показывалась доска с воспроизведенной на ней позицией, взятой из реальной партии (обычно из ее середины). При этом анализировалось движение глаз шахматистов (в определенных случаях оно автоматически регистрировалось с помощью камеры, установленной перед ними). Через время t\ доска убиралась, и после выдержки в течение времени /2 их просили восстановить пози-
цию> которая была у них перед глазами. Обращалось внимание, в особенности, на порядок, в котором восстанавливалось положение фигур, и на число правильно поставленных фигур.
Эксперимент показал, что глаза шахматистов не очень часто останавливались на какой-либо точке доски ——не более четырех раз в 1 с. Во время каждой из этих остановок можно было с помощью бокового зрения просмотреть пространство в два угловых градуса, т. е. около девяти примыкающих друг к другу полей доски. Более того, последовательность остановок обнаруживала повторяемость даже у гроссмейстеров. Отсюда можно сделать вывод, что восприятие позиции происходило не в геометрическом порядке (например, слева направо и снизу вверх), но во всех случаях определялось логическим порядком, который зависит от анализируемой позиции. Взгляд чаще задерживается и возвращается на определенные критические поля, от которых он перемещается по различным направлениям. К ним всегда относятся поля, занимаемые королями и прилегающие к ним. И наоборот, некоторые фигуры и конфигурации полей (например, для белых это поля /2, g2,九2, Л/il) были «сфотографированы» взглядом всего лишь один раз. Очевидно, что они соответствуют классическому элементарному блоку информации для специалистов по шахматам. Дольше всего рассматривались, а следовательно, и запоминались, необычные конфигурации, в которых фигуры слишком продвинуты или плохо защищены.
В экспериментах выбиралось время наблюдения tx — Ь с, время выдержки /2 = 30 с, в среднем каждая позиция состояла из 24 фигур. При этом процесс восстановления позиции у всех шахматистов проходил одинаково. Сначала появлялась на доске одна фигура, а затем другие, логически с ней связанные прямой или косвенной защитой или нападением. В случае эквивалентности логических связей шахматист сначала рассматривал фигуры, характеризуемые наиболее необычным расположением. При таком малом времени наблюдения почти не оставалось надежды на правильное восстановление позиции. Тем не менее гроссмейстерам это удалось в 5 случаях из 14. Полные результаты показывают заметное различие между мастерами и другими шахматистами (табл. 6.4).
Отметим, что для гроссмейстеров характерно прежде всего то, что они делали гораздо больше, чем простое восстановление позиции, они еще приводили ее анализ: это единственно верный путь, поскольку именно так шахматист «сживается» с позицией. Его вниманием и глазами начинают управлять линии наиболее активных действий, воображение подсказывает интересные ходы, следующие не только непосредственно из данной позиции, но и на несколько ходов вперед.
Таблица 6.4: Оценка качества восстановления шахматной позиции. Для определения счета использовалась функция, предложенная де Гротом, которая учитывает число правильно восстановленных фигур
Гроссмейстеры
Мастера
Эксперты
Шахматисты класса С ')
Число абсолютно правильных
5
4
0
0
восстановлений из 14
Общий счет из 264
217
217
158
.119
1) К шахматистам класса С относятся хорошие
клубные игроки.
Приводимые здесь результаты де Грота относятся к экспериментам с реальными позициями. Когда же предлагаемые для запоминания позиции характеризовались случайной расстановкой фигур, все шахматисты — от гроссмейстеров до любителей
ab с de f g hab с de f g hРис. 6.13. Позиция? предъявляемая шахматистам на 5 с для восстановления (ход черных).Рис. 6.13. Позиция? предъявляемая шахматистам на 5 с для восстановления (ход черных).из клубов — оказывались равны между собой. Никто не справлялся с поставленной задачей, все оказались совершенно неспособны запомнить позицию за 5 с!
ab с de f g h
ab с de f g h
Рис. 6.13. Позиция? предъявляемая шахматистам на 5 с для восстановления (ход черных).
Рис. 6.13. Позиция? предъявляемая шахматистам на 5 с для восстановления (ход черных).
.Математик и шахматный гроссмейстер М. Эйве, когда ему на 5 с показали позицию, приведенную на рис. 6.13, провел следующий анализ. «Сначала я запомнил, что позиция
черных никуда не годится». Он восстановил блок фигур вокруг черного короля: король +
+ ферзь черных + два коня черных + пешка еб + ферзь белых и последний в блоке слон черных /8. Блок фигур, возникший после рокировки белых, был
восстановлен сразу без затруднений. Время между размещениями фигур хронометрировалось. Если оно было меньше 2 с, то де Грот считал, что эти фигуры принадлежат одному блоку информации в памяти. Таким образом у Эйве пока выявлены два блока. Он отметил, что предложенная позиция ему слегка напомнила партию, сыгранную Флором и Фином! (Это не под
дается проверке, но несомненно, что такая аналогия очень помогла Эйве восстановить позицию.)
Две пешки а2 и Ь2, а также пешки А7, g6, ладья 丘8 также были расставлены вместе, тогда как все оставшиеся фигуры раздельно: е5, К65, Jldl, Л64, а7. По поводу последней пешки Эйве
заявил следующее: 《Я не рассмотрел правую сторону позиции черных. Но у них должна быть пешка на。7》.(Это следует из логики развития партии и присутствие на доске пешек а纟 и й2 подтверждает этот вывод.)
Эйве тем временем продолжает извлекать сведения из своей памяти. Он увидел и другие любопытные особенности позиции: 《Атака белых оказывает сильное давление на позицию черных, но в противовес ей у меня две лишние фигуры» (Эйве считает своей сторону, которой принадлежит очередной ход). «Чем пожертвовать? Очень силен конь белых, но его можно взять ходом Л X К65, это действительно неплохо, так как ладья занимает странную позицию на й4 и больше никому не угрожает. Теперь я думаю, что выигрыш у черных в кармане, но минуту назад я бы этого сказать не смог».
В этих рассуждениях можно проследить связь между восприятием и вторым объектом наших исследований — выводом.
' 6.7.2. Вывод
На рис. 6.14 приведена позиция, взятая также из реальной партии, сыгранной самим де Гротом. Он тщательно изучил эту
abcdefghabcdefghРис. 6.14. Анализ позиции (de Groot, 1935).Рис. 6.14. Анализ позиции (de Groot, 1935).позицию, установил, что белые могут сделать не менее 56 ходов, а затем показал ее экспертам, которые должны были определить наилучший по их мнению ход. По условиям эксперимента эксперты должны были рассуждать вслух.
abcdefgh
abcdefgh
Рис. 6.14. Анализ позиции (de Groot, 1935).
Рис. 6.14. Анализ позиции (de Groot, 1935).
Все шахматисты пришли к выводу, что прежде всего следует решить тактическую задачу —постараться найти спасение для фигур, находящихся под боем, вместо того чтобы сразу составлять план игры на длительную перспективу. Пе-
ред тем как обратиться к тщательному анализу результатов размышлений шахматистов, приведем несколько общих выводов, которые будут полезны в дальнейшем.
Избирательный анализ позиции. Дерево ходов у гроссмейстеров содержит от 20 до 76 узлов, что существенно меньше, чем чрезмерное комбинаторное увеличение числа допустимых ходов. Среднее число ходов, предлагаемых шахматистами для
белых в этой позиции, меньше 5. Например, Керес предложил 3 хода, два из них он проанализировал очень подробно, и они оказались наилучшими. 20 шахматистов из 56 возможных ходов предложили только 22.
Небольшая глубина анализа. Этот факт подтверждается и во многих других случаях. В противоположность широко распространенному мнению большее мастера шахмат очень редко рассуждают на глубину более пяти или шести ходов (здесь, например, оказалась достаточной глубина в четыре хода). Более того, не было обнаружено никакого различия в глубине анализа у различных групп обследованных шахматистов.
Частые возвращения назад. Часто анализ хода или даже целого эпизода повторялся по многу раз. По этому признаку де Грот различает три фазы анализа у шахматистов: а) разведка; б) обработка; в) доказательство.
Шахматист в каждом из трех случаев повторяет изучение позиции с различных точек зрения. Свои ходы и ходы противника многократно перерабатываются, по мере того как увеличивается глубина анализа. Задача, которую ставит перед собой шахматист, периодически переопределяется в зависимости от рабочей гипотезы; это происходит беспрерывно до принятия, окончательного решения. Все ходы в данной позиции, которые не имеют связи с текущей гипотезой, полностью игнорируются. Шахматисту, помимо всего прочего, необходимо иметь свою оценочную функцию позиции, он должен уметь измерять дистанцию, на которой он находится от текущей гипотезы и от цели, которую он должен достигнуть (табл. 6.5).
Таблица 65 Средние значения некоторых сажных параметров при изучении шахматной позиции исследуемыми шахматистами,
Число анализируемых ходов на 1-м уровне
Полное число изученных позиций
Максимальная глубина . анализа в полуходах
Время
Число возвратов при анализе
Гроссмейстеры
■ 4,8
35
6,8
9, 6〃
6,3
Эксперты
3,4
30,8
6,6
10z 8〃
6,4
Бедность оценок, используемых шахматистами. В протоколах часто появляются фразы такого типа: «Теперь белые имеют выигрышную позицию с далеко продвинутой пешкой»; «Черные заняли открытую линию»; «Сила атаки подавляет противника».
Кроме того, при анализе оценивается очень малое число позиций. Оно определяется достижением стабильной позиции, в которой тем или иным образом разрешается проблема, которую ставит перед собой шахматист в данный момент. При этом необходимое решение находится без помощи традиционных оценок. Используемые человеком оценки, как и общий анализ партии, основаны на общих, не поддающихся численному описанию концепциях работы мозга, имеющих мало общего с банальным описанием позиции с помощью оценочной функции. При этом непрерывно появляются и исчезают такие понятия, как открытое или закрытое пространство (или позиция), контроль (над полями, фигурами, зонами), слабая или сильная позиция. Для оценки позиции и выработки стратегии приближения к цели служат такие абстрактные формулировки, как《ход черных ферзем», «отступление слона», 《защита короля», 《пустой ход», «усиление давления», «отступление без потери темпа》.
Обратимся теперь к деталям и результатам анализа позиции, приведенной на рис, 6.15. Большое число шахматистов пришли к выводу, что ход С X Kd5 является наилучшим или поставили его на второе место. Удивительным является то, что этот ход найден в общем без достаточно глубокого анализа. Его действительно легко увидеть, но дерево ходов, с помощью которого его можно полностью обосновать, является весьма громоздким. Это обстоятельство наводит на еще одно направление исследований кратковременной памяти. Примером, показывающим, что шахматисты имеют тенденцию упрощать анализ с помощью грубых оценок, является реакция Алехина. Он быстро высказал свое мнение об этой позиции:《Я с удовольствием сыграл бы за белых... С X К, безусловно, является очень сильным ходом, нужно проверить все варианты, но если время поджимает, то я играю С X ^5». Построение дерева анализа заняло у него несколько минут — быстро сориентироваться в сильно разветвленном дереве невозможно. Даже гроссмейстеры могут в них запутаться. Флор, например, допустил в этой позиции явную ошибку. Рассматривая среди многих других вариант
КХСсб &7ХК
CXKd5 сбХС
СХК/6 схс
он сказал, что ход 4.Kd7 является вилкой на ферзя и ладью черных. Здесь произошла путаница, так как на поле е5 коня больше нет, он не может пойти на d7!
Можно отметить нечто общее, что помогает шахматистам выполнить задание исследователя—это хорошее знание позиций,
1-й ход 5елыз^
с* ка5
Aw bq8 черных
CxCd5
KxCd5
(9)
ев к Cd 5
2-й 纪о"
CxKfB
LT
2-й ход черных
CxCf6
KxKdS;>
0 as
3-й aw? белызс
37 ⑺
К^Се7
(с)
3一炉 g& черных
Ход дхрзем
Ход коронен
%以 ход 露олс
К* "8
Кхс8
風)
Рис. 6.15. Дерево ходов, ции Л (de Groot(65)).
■уКс4(f)
1 Се7 僞
доказывающее правильность хода С X Kd5
в пози-
<а) вилка на ферзя н ладью; (Ь) выигрыш качества; (с) вилка на короля и ладью;(二 рыш фигуры и качества; (е) если 2. С X К ^5, 3. С X К f6, то выигрыш фигуры; (f) очевидна слабость черного коня на f6 и белые получают сильную атаку; (g) угроза -вскрытого
(d) выиг-
нападения на слона черных е7.
Возможность белых ответить четырьмя ходами на ход черных «9ХС дает основание считать этот ход черных неудовлетворительным. Во всех вариантах белые легко выигрывают, давление на позицию черных достаточно велико, и все гроссмейстеры останавливаются на этой глубине анализа.
уже встречавшихся в сыгранных партиях. Алехин сразу заявил, что эта позиция ему напоминает недавнюю партию Ботвинника. Он предположил, что в дебюте был разыгран принятый ферзевый гамбит, а позиция соответствует 16-му ходу. Он смог даже восстановить все предыдущие ходы, сыгранные в партии. Очевидно, что это говорит об очень большом числе сыгранных и изученных партий, которые Алехин держал в памяти и связывал с ними отдельные ветви дерева ходов анализируемой позиции.
Глубокие знания, которые позволяют хронологически восстановить всю партию, являются в то же время и основой анализа: в этом дебюте белые с самого начала не дают покоя черным, у них очень открытая позиция и преимущество в атаке. В отличие от них черные должны защищаться до конца партии.
Единственное обстоятельство, которое дает им шанс в финале — это лучшая пешечная защита.
Именно в таких ситуациях проявляются различия в культуре шахматистов. Общеизвестно, что слон по силе немного превосходит коня, главным образом в конце партии, когда он может свободно передвигаться по доске. Поэтому недостаточно опытные шахматисты исключают ход С X ^5, так как в результате этого слон разменивается на коня. Но что касается гроссмейстера, то он чувствует, что в данной позиции можно найти решающую атаку и завершить партию за небольшое число ходов. А это значит, что общеизвестные сведения не следует принимать в расчет, поскольку существенной характеристикой данной позиции является наличие атаки у белых, которую надо развивать. Кроме того, к особенностям позиции относятся сильный конь на е5, который угрожает ходом Kd7; относительная слабость позиции короля черных, возникшая после рокировки; незащищенная пешка белых 62, находящаяся под боем черного ферзя; четыре возможных нападения на фигуры: К X d5, С X /6, С X *^5, КХсб. Последние являются наиболее вероятными ходами белых и требуют детального анализа.
Порядок рассмотрения этих ходов может быть и другим. На практике лучшие шахматисты сначала с помощью параллельного отбора получают только некоторые указания, а затем и полное решение поставленной задачи.
Далее при анализе партии будем ориентироваться на четыре приведенных выше хода. Так как заранее ясно, что в этой позиции сильны ходы конем на d7 н е7 c двойным нападением на черные фигуры, то вполне естественным будет стремление устранить черного коня и сохранить при этом белого. Таким образом, размен слона а2, который некоторыми шахматистами был отвергнут, нужно рассмотреть в первую очередь, поскольку он соответствует стилю атаки в этой партии. Теперь понятно, почему шахматисты, в том числе и гроссмейстеры, чаще всего ограничиваются анализом только небольшой части дерева ходов, как показано на рис. 6.15.
Психологические исследования шахматного анализа позволяют сделать три важных вывода:
Гроссмейстеры своим мастерством обязаны не объему вычислений, который они проделывают, а своей способности выделить правильный ход.
Поиск хороших ходов существенным образом связан со способностями шахматистов к восприятию позиции.
Способность к восприятию позиции зависит от широты знакомства с опытом шахматной игры и в особенности от способности ассоциировать с конкретной позицией определенные
структуры, присутствующие в большом числе в памяти шахматиста.
Психологи изучили также поведение человека при поиске решений в других областях.
Ньюэлл и Саймон (1982) анализировали протоколы работы студентов, выполнявших упражнения на логические предложения (гл. 3) и решавших арифметические задачи (гл. 8). Стратегии этих студентов, знания, которые они использовали, были переведены в форму правил выполнения определенных операций (гл. 7), после чего был довольно верно смоделирован общий ход их рассуждений. Мэтью и Томас (1985) опубликовали аналогичные работы, в которых приведены результаты анализа процессов игры в го, расчета электрических цепей, решения проблем механики.
Все исследования подтверждают приведенные здесь выводы: основная особенность анализа заключается в том, чтобы в конкретной ситуации обнаружить группы «важных» объектов (таких, которые участвуют в наибольшем числе взаимных связей). Успех анализа зависит от знания предмета исследования и качества структуризации этих знаний. .
ROBIN — интеллектуальная программа для игры в шахматы
В разд. 6.1 описано семейство программ для игры в шахматы, которые по качеству игры значительно уступают шахматистам.
Поэтому фундаментальной проблемой для исследователей в области искусственного интеллекта является понимание того, как человеку удается достигать таких высоких результатов, если доступное ему для анализа дерево ходов по своим размерам в тысячи раз меньше, чем для ЭВМ. На основании полученных результатов могут быть разработаны принципы построения игровых программ, отличные от систематического перебора ходов. Именно в этом направлении начал работать в 1972 г. французский ученый Жак Питра (CNRS, Париж).
В его работе отправной точкой служило следующее важное обстоятельство: если существует такое большое различие между деревьями, которые анализируются человеком и программой, то, следовательно, речь идет не об одном и том же дереве!
Это подтверждают и исследования Бине, де Грота, Саймона. Они показали, что шахматист быстро схватывает существенные особенности позиции, ему «бросаются» в глаза ходы, на которые нужно обратить внимание в первую очередь. Таким образом, хороший шахматист начинает исследование с углубленного
анализа начальной позиции, очень точные характеристики позволяют ему тонко описывать ее потенциальные возможности и сильные стороны, а также выявлять недостатки каждого хода. На основе начального анализа ведется поиск наилучшего хода как по ширине дерева, которое ограничено только ходами, связанными с результатами анализа, так и по глубине вплоть до позиций, в которых перестают сказываться нестабильности, вызванные промежуточными ходами.
Следует также учесть еще один важный момент, отличающий мозг шахматиста от игровых программ первого поколения,——при мысленном анализе не соблюдается реальный порядок ходов: анализируются невозможные ходы, в первую очередь рассматриваются более поздние ходы, мгновенно рождаются планы, которые развиваются, отвергаются, снова принимаются и так далее до тех пор пока окончательно не будет найден очередной ход.
Из рассмотренной картины можно сделать вывод, что в мозге шахматиста возникает не что иное, как дерево планов, а не слепое дерево ходов, имеющее к тому же и громадные размеры. Программа Жака Питра работает по тому же принципу. Большая часть ходов, найденных с ее помощью, вообще не замечается другими программами, а иногда даже и специалистами! Ее можно отнести ко второму поколению, игровых программ, которое существенно отличается от первого и представляет настоящий интерес с точки зрения искусственного интеллекта, так как заложенные в его основу принципы, можно перенести на многие другие области человеческой деятельности.
Приведем сначала пример игры программы Жака Питра, которая называется ROBIN, а затем более подробно рассмотрим принцип ее работы.
Пример анализа, выполняемого программой
Встретившись с позицией, приведенной на рис. 6.16, программа начинает поиск хода с ее детального анализа. На этом этапе основной задачей программы является составление возможных в данной позиции планов продолжения игры, к которым в данном случае могут относиться:
прямая атака на короля противника, начинающаяся ходом ФЛ7 +;
связка ферзя ходом ладьи на поле el;
взятие незащищенного черного ферзя Ф X Ф-
Эти планы на практике могут реализоваться с помощью последовательности элементарных ходов, приближающих
противника, а еслипротивника, а есликонечную цель, в данном случае нападение на короля или ферзя черных. Эти цели часто сомнительны, иногда просто недости- жимъЛ Но программа развивает каждый план в таком направлении, чтобы оказались возможными ходы, которые не были таковыми сначала, чтобы создавались угрозы, расшатывалась “достигнуть поставленной цели не
противника, а если
противника, а если
представилось возможным, то чтобы выявились другие преимущества.
abcdefghabcdefghРисг 6.16. Е42. Ход белых.Рисг 6.16. Е42. Ход белых.План имеет четко определенную конечную цель, и программа приступает к анализу позиции、начиная с этой конечной цели, а заканчивает нахождением наилучшего хода на первом уровне, т. е. ходы отыскиваются как бы в обратном порядке по сравнению с тем, как они делаются в реальной партии. Это может явиться полной неожиданностью и выглядеть неестественно для тех, кто не привык ставить перед собой четкие цели!
abcdefgh
abcdefgh
Рисг 6.16. Е42. Ход белых.
Рисг 6.16. Е42. Ход белых.
В рассматриваемой позиции программа до конца разрабатывает все три плана, но для игры останавливается на плане 3, против которого у черных нет достаточно сильных ответных ходов. План в общих чертах выглядит следующим образом (приведен вариант плана, приводящий к успеху; программой анализируются также и другие варианты):
—программа нацелена на взятие ферзя, занимающего поле е2 ходом Ф X Ф;
——для этого белым нужно убрать своего коня с поля g4;
—на это последует ответ черных Ф X ①九5;
——следовательно, белым нужно убрать коня, нападая на фигуру противника, как минимум равную ферзю. Это может быть только король;
——возникает промежуточная цель ——поставить конем шах королю, находящемуся на поле е7;
——прямой шах невозможен, единственными доступными для коня полями вблизи короля являются е5 и f6;
—возникает новая промежуточная цель — переместить короля черных;
——только ладья белых, расположенная на поле dl, в принципе может сделать это (ходы ферзем нужно отбросить, так как должна сохраниться возможность взятия ① X ①);
——поле el не защищено (см. план 2);
— таким образом, остается только поле d7 для объявления шаха королю;
.——отсюда следует ключевой ход 1 ——JId7+l со следующими основными вариантами: 1 — Jld7 + Кр X ^ 2—К X /6 + (но не Ке5+ из-за Ф X К и ферзь уходит из-под боя) JIX К и 3 — ФХ ①е2. Программа проверяет также ходы 3 — СX f2 + и 3 — ЛХ,2, которые ничего не дают черным;
—наконец, учитывается возможность для черного короля не принимать отравленный подарок JId7: 1 — Креб (единственный ход). Но это еще хуже, так как следует ход 2 —①d5 мат.
Безусловно, эта позиция находится в пределах досягаемости предыдущих программ (МАКСГЛ = 7 полуходов), но она очень хорошо иллюстрирует возможности поиска наилучшего хода с помощью очень небольшого дерева — всего 305 ходов против 407 или 16-1010 для программы, работающей с помощью перебора ходов. Как мы увидим ниже, в сложных позициях ROBIN может спускаться до глубины 20 полуходов и более.
6.82 Различные типы планов в шахматах
Для программы целью улучшения начальной позиции является определение благоприятных ключевых ходов. Они являются отправной точкой для разработки планов, т. е. линейных последовательностей промежуточных целей (или обобщенных ходов), которые в конце концов приводят к материальному перевесу. При разработке планов программа учитывает только те ходы, которые так или иначе связаны с поставленной задачей. Для ROBIN существуют планы четырех типов, простейший из которых представляет собой простое взятие фигуры противника.
План типа 1: простое взятие
Для каждой фигуры программа определяет число и вид фигур, которые на нее нападают и ее защйщают, что является несложной и быстровыполнимой задачей. Учитываются также возможные нападения и защиты по вскрытым линиям, т. е. замаскированные своими фигурами. Затем подсчитывается итог. Если для фигуры число нападений количественно или качественно равно или превышает число защит, то считается, что фигура расположена на позиции простого взятия и начинается разработка соответствующего плана.
В предыдущей позиции (Е42, рис. 6.16) мы видели, что ферзь черных находился под скрытым боем. Для черных ладья белых dl и пешка q2 были непосредственно под боем, пешка f2 и конь
g4 могут быть взяты после добавления одной нападающей фигуры или устранения по крайней мере одной из защищающих.
План типа 2: двойное нападение
Очевидно, что существует более опасный для противника случай, чем предыдущий. Он соответствует ситуации, когда одна и та же своя фигура нападает одновременно на несколько фигур противника (обычно на две). При этом вероятность получить преимущество увеличивается, так как противник имеет
abcdefghabcdefghРис. 6.17. М58. Ход черных.Рис. 6.17. М58. Ход черных.право только на один ход и часто может спасти только одну из своих фигур. Это и есть двойное нападение, частным случаем . которого является связка (ферзь на е2 оказывается связанным на предыдущей диаграмме после хода белых ладьей на el). В качестве одной из фигур, подвергаемых двойному нападению, может оказаться и король, которого другие фигуры защитить не в состоянии.
abcdefgh
abcdefgh
Рис. 6.17. М58. Ход черных.
Рис. 6.17. М58. Ход черных.
Вопрос, на который ищет ответ программа при разработке такого плана, состоит в следующем: «Существует ли такое поле, что если переместить на него одну из своих фигур, то она будет нападать на две фигуры противника, находящиеся на позициях простого взятия?»
При поиске такого хода программа предусматривает определенную свободу:
поле-мишень может быть занято, тогда промежуточной целью является удаление фигуры с этого поля;
на каком-либо промежуточном поле может стоять фигура, препятствующая нужному ходу, тогда это поле нужно освобо
дить.
В примере, приведенном на рис. 6.17, анализ простых взятий показывает, что если ферзь черных займет поле еб, это может привести к взятию короля белых el и пешки @2, т. е. существует возможность двойного нападения на эти незащищенные фигуры. Однако поле еб занято, и для достижения цели нужно сначала удалить занимающую его пешку, а затем еще одну пешку d5, маскирующую поле а2.
План типа 3: атака на короля
Когда играешь в шахматы, необходимо иметь в виду особую роль, которая отводится королю среди других фигур — если он
взят, партия проиграна. Это дает богатый материал для планов атаки на короля.
При разработке этих планов в качестве начальных рассматриваются все ходы, приводящие к шаху: если фигура, объявляющая шах, сама не находится под боем или если король противника не имеет другой возможности, как только ее взять. Таким образом, в позиции Е42 (рис. 6.16) ход JId7 + не приводит к возникновению плана в отличие от хода 9/7 +, ибо во втором случае не остается поля для бегства короля; заранее ясно, что атака гораздо более сильная. Но чтобы ее завершить, нужно, с одной стороны, удалить черную ладью на /8, с другой ——защитить белого ферзя на /7. Возможность этого будет показана дальнейшим развитием плана.
Наконец, на доске существует другой тип фигуры, играющий особую роль — это пешка. Достигнув восьмой горизонтали, она превращается в любую другую фигуру.
План тмна 4: продвижение
Так как для всякой пешки не следует строить план похода в ферзи, то программа начинает поиск продвинутых пешек только к середине партии и создает такой план только для пешек, достигших шестой или седьмой горизонтали. План состоит в продвижении пешки с проверкой, что в результате этого она не будет потеряна. Если лродвижению мешает фигура, ROBIN, кроме того, изучает возможности:
удаления этой фигуры;
привлечения на соседнее поле фигуры противника, для того чтобы использовать возможность взятия пешкой по диагонали.
Все эти начальные планы программа находит одновременно для обеих сторон. Более того, для ограничения исследований только такими планами, для которых имеется надежда на успех против любой защиты противника, программа сохраняет только те из них, которые первоначально не требуют более двух модификаций промежуточных полей.
Язык для разработки планов
Элементы языка
Для записи ходов мы пользуемся удобными общепринятыми обозначениями типа 厶九7, d X с, 0 — 0. Аналогично, полезно иметь специальный язык для программы, работающей с деревом планов, для того чтобы выражать направленность действий или 《сулерходн» в планах.
①Ее2f V £◎4 f [ ЕКа8 —Е》КK4・g4f !/*①Ее2f V £◎4 f [ ЕКа8 —Е》КK4・g4f !/*Типичным действием является требование модификации поля, для кодирования которого в этом языке используются следующие обозначения: поле в произвольный момент может быть пустым V, занятым своей фигурой /1 или фигурой противника Е. В двух последних случаях указывается занимающая его фигура. Обозначения действий в планах приведены в следующих примерах:
①Ее2f V £◎4 f [ Е
Ка8 —Е》К
K4・g4f !/*
①Ее2f V £◎4 f [ Е
Ка8 —Е》К
K4・g4f !/*
удалить ферзя противника с поля е2 освободить поле &4 от пешки противника и оставить его пустым или занять своей фигурой на пустое поле 〃8 заставить пойти коня или не менее ценную фигуру противника убрать своего коня с поля g4. Звездочка служит для уточнения; выполнить это действие надо с сохранением атаки.
План двойного нападения на ферзя черных в позиции М58 (рис. 6.17) будет выглядеть следующим образом:
/・25—> 丿:удалить пешку черных с поля d5, со
хранив атаку
Л.еб / *то же для пешки еб
①4.b6f ебпереместить своего ферзя с поля Ь6 на
①4.е6 — е1 ИЛИ 。2 уточнение .целей двойного нападения
Развитие планов
После составления планов программа переходит к их более детальному изучению. Каждое действие плана уточняется указанием ходов, которые его могут реализовать, т. е. из одного исходного плана возникает множество производных. Отыскиваются обходные пути для действий, прямое выполнение которых невозможно. Если, например, программе нужно удалить фигуру, то:
• если она своя, достаточно этой фигурой сделать ход (как в позиции Е42, рис. 6.16):
K4・g4 f V *, т. е. белые ходят конем на поле h2 или『2 или еЗ или е5 или /6 или Л6
кой (сохранить инициативу), поэтому программа должна предпринять другое действие:
Кр£*.^7 -> У * удаление короля равносильно сохранению^ инициативы.
Мы убедились в том, что конь не может ни взять, ни атаковать, ни быть взятым.
Остается ход ладьей, находящейся на поле dl, после чего КрЕе7 f V* приводится к виду:
JIA.dl ~> Л X Кр * взять короля или ЛЛ.й! Л+ * напасть на него или JIA.dl -> Л^б, d7 или d8 подставить ему свою фигуру.
Для реализации первой из этих задач в данной позиции не существует ни одного хода, поэтому связанный с ней промежуточный план отвергается. Для выполнения второй задачи существует единственный ход Л^7 (который пригоден и для третьей задачи, так как возможен последующий ход Кр X Л).
Далее продолжается развитие этого плана:
Jld7 Кр X d7 добились перемещения короля.
К объявляет шах н 3.①乂 ①.
Для выполнения любых действий программа ставит перед собой ряд промежуточных целей.
Приведем еще один пример. Чтобы не допустить взятия (такая задача часто ставится в локальных планах), необходимо:
убрать фигуру из-под боя;
поставить на пути другую фигуру (свою или противника).
В позиции А158 (рис. 6.17) один из планов связан с ходом ①еЗ+, но последует немедленный ответ Ф X Ф-
Возможность устранения этой опасности состоит в следующем:
P・g3fqp (занять поле g3 какой-нибудь фигурой)
①/力6 f e3+
Этой фигурой, в частности, может оказаться пешка противника й2, которая сможет выполнить эту роль, если ей подставить для взятия другую фигуру. Таким образом, V.g3-> П V можно записать по-другому: Г!包/i2f g3. В реальной позиции только одна фигура может, пойти на поле g3. Это ладья g8, для которой единственной причиной такого хода будет выполнение рассматриваемого плана.
Теперь 1. JIg3 ZiXg3 дает
. ФеЗ+ Се2
Последний ход найден программой, которая вынуждена не— прерывно составлять планы и для противника, в данном случае с помощью того же приема — постановки фигуры на промежуточную позицию. Но в этом варианте простое взятие ① Хе2 приводит к выигрышу черных. Поэтому программа продолжает составление планов, в которых предусматривается удаление ладьи с поля g3, угрожающей Л X Ф- Очевидно, что самым простым решением является Ф X Л. На это программа немедленно находит ответ, привлекая механизм промежуточных целей: ход СЛ4, с помощью которого черные выигрывают ферзя белых.
В процессе анализа программой отвергается большое число планов, что может в действительности привести к следующим последствиям:
решающий ход для осуществления плана стал невозможен (например, из-за потери фигуры);
материальный баланс очень неблагоприятен (или хуже того, который предполагался) даже в случае успешной реализации текущего плана;
план логически невозможен из-за наличия противоречий (например, требуется одновременное выполнение условий
ху-^V и ху ЛД);
невозможно устранить возникшее препятствие (например, из-за отсутствия подходящего хода);
план отвергнут из-за слишком большой доли оптимизма при его составлении: даже если все идет лучшим образом, окончательный материальный итог неблагоприятен.
Несмотря на непрерывно происходящий процесс изменения и завершения планов, программа должна помнить основную идею первоначального замысла. Это может быть сделано с помощью специального действия, которое предусматривает в определенные моменты времени проверку условий, Например, если первоначальный замысел заключался в освобождении какого-либо ноля, необходимо проверять, что данное поле действительно свободно в нужный момент времени и оно не оказалось случайно вновь занятым в результате ходов, найденных при разработке плана.
Оптимизация защиты: понятие опасного хода
На каждом этапе шахматной партии один из противников ищет пути к победе, в то время как другой пытается выровнять положение. В соответствии с этим и программа в каждый мо-
мент времени играет за одного играющего — того, кто проигрывает при разработке текущего плана.
Чтобы найти спасительный ответ, проигрывающий сам составляет планы. В ходе игры он может вновь получить преимущество, тогда программа вновь обращается к позиции его противника. В конечном итоге этот шахматист может и проиграть партию, и окончательный анализ тогда покажет, что все попытки спасения безрезультатны.
Рис. 6.18. М39. Ход черных.Рис. 6.18. М39. Ход черных.последствиям приводит ответпоследствиям приводит ответОбработка программой дерева планов оказывается очень близкой к человеческому образу мыслей при игре в шахматы. Сначала изучается наиболее многообещающий путь. Затем анализируется, к каким наихудшь противника. Если найдено опровержение одного из путей, рассматривается другая линия игры на более высоком уровне.
Рис. 6.18. М39. Ход черных.
Рис. 6.18. М39. Ход черных.
последствиям приводит ответ
последствиям приводит ответ
Таким образом, в игре постоянно находятся и отвергаются «опасные ходы». Р1х точное определение дано ниже. Устранение опасности состоит в отражении этих ходов или в устранении их неприятных последствий с помощью других опасных ходов. Сначала ищут
спасение против ходов, для отражения которых у другой стороны остается наименьшее число своих опасных ходов.
Для того чтобы найти план, опровергающий план противника, необходимо отразить все опасные ходьь плана противника. Идея достижения этой цели состоит в различной реакции на различные опасные ходы противника. Их можно разделить на 4 типа, каждый из которых рассмотрен в отдельности.
При анализе опасных ходов учитывается только баланс материальных сил, а сам анализ напоминает процедуру восхождения в методе минимакса.
Предположим, что программа ищет для шахматиста / план, который обозначим v[J). Тогда опасным ходом является такой ход противника, который на момент анализа приводит к меньшему значению оценки, чем ожидается по плану и(/).
На рис. 6.18 приведен пример одного из разработанных программой планов, который связан с продвижением черной ладьи с поля d8 на dl, где она не оставляет королю белых ни одного поля для отступления. Этот план можно записать следующим
образом:
К4d5 —> V отойти конем
Л4.d8 fdi пойти на поле dl
ЛД.^1->ЛХКр
Материальный баланс в пользу черных (взятие короля), ход Л X Кр опасен для белых, и программа, которая начинает строить планы за белых, ищет способ его отражения. Она немедленно найдет способ устранения угрозы:① XJIdl или Л X Л-dl. Также опасным для белых является и ход K/・d5f 匕 который может быть ходом К X КсЗ. Но равновесие и здесь быстро восстанавливается с помощью Л X К^З.
Результат анализа показывает, что для белых не существует больше опасных ходов. Как мы убедились, все угрозы могут быть ликвидированы. Программа возобновляет игру черными.
Опасными для черных являются и три только что рассмотренных хода белых.
Рассмотрим теперь реакцию программы на опасные ходы и ответные способы предотвращения угрозы.
Программа вырабатывает 4 типа планов в ответ на опасные ходы: новые взятия, логические разрушения опасных ходов, наложения, локальные планы.
Новые взятия. Каждый ход в шахматах, кроме рокировки и взятия на проходе, изменяет содержимое двух полей. В результате последних двух ходов — своего и противника — изменяется содержимое четырех полей. Программа постоянно следит, не появились ли возможности взятия за счет модификации этих полей.
В обычной шахматной позиции подобные действия позволяют очень быстро расширить и углубить начальные планы.
Логическое разрушение. Здесь речь идет о том, чтобы сделать невозможным опасный ход противника, исключить его из списка опасных ходов. Достигается это за счет воздействия на начальное, промежуточное или конечное поля опасного хода, в результате которого фигура Q лишается возможности сделать опасный ход или вынуждена уйти со своего отправного поля d:
QE.df、E,
И наоборот, если на конечном поле а находится своя фигура Р, то необходимо выполнить действие
РЛ.и —> 1 А, нейтрализующее опасный ход противника.
Другая возможность состоит в перемещении на одно из промежуточных полей и. расположенных на пути от d до а, про-
извольной фигуры, например
К—] У
Наложения. Здесь в качестве защиты от опасного хода используется нападение.
Программа позволяет противнику осуществить свой план, но пользуется возникающими при этом на доске модификациями полей для реализации контр плана, который начинает действовать немного позже. Этот способ защиты очень обманчив. С помощью программы Ж- Питра удалось исправить несколько ошибок, допущенных знаменитыми шахматистами при анализе партий (позиция Т149 на рис. 6.21).
Возможность использования наложений обусловлена двумя причинами:
действия плана не являются обязательно выполнимыми в существующей позиции, т. е. они нечувствительны к определенным изменениям и могут оставаться в силе спустя много ходов;
все начальные планы противника составляются одной и той же программой, поэтому в случае опасности программа легко может поставить себя на место противника.
Как только первое действие оборонительного плана становится возможым, программа заносит его вместе с соответствующим планом в список подготовленных ответов на последний ход противника.
Локальные планы. Здесь речь идет о подготовке косвенной атаки на фигуру, которая может сделать опасный ход, с помощью двойного нападения, угрозы мата, взятия фигуры после отступления ее защитника.
Каждый подобный анализ похож на- анализ позиции, который делается вначале с участием всех фигур на доске, но он ограничивается лишь одним полем.
Результаты
В этом разделе мы завершаем в общих чертах описание программы ROBIN для иры в шахматы, разработанной Ж- Питра. Мы уже познакомились с основными особенностями этой программы, которые отличают ее от слепых программ, построенных с использованием альфа — бета-процедуры. Программа ROBIN действительно способна рассуждать и руководствоваться идеей при развитии созданного ею же плана.
Для нее не существует никаких предварительных ограничений на глубину или ширину дерева анализа. Дерево, которое
она,, строит, является деревом планов, т.. е. последовательностей действий или “метаходов”, используемых для нахождения последовательностей реальных ходов. Заранее ясно, что это дерево гораздо меньше по размерам, чем дерево реальных ходов. Программа выполняет анализ логической последовательности действий плана, а не последовательности ходов, наблюдающейся во время реальной игры.
В реальных шахматных партиях программа показывает игру на уровне игры человека. Она находила комбинации, которые ускользали от внимания таких выдающихся шахматистов, как Эйве, Ласкер и Смыслов, и от таких аналитиков как
а Ь с d е г ghа Ь с d е г ghРис. 6.19. М42. Ход белых.Рис. 6.19. М42. Ход белых.ладью черных. Идея, котораяладью черных. Идея, котораядю Мон. Она нашла неточность в комбинациях, найденных дю Моном и Таррашем (в одном случае она показала, что противник избегает поражения) .Рассмотрим пример анализа позиции М42, приве* денной на рис. 6.19.
а Ь с d е г gh
а Ь с d е г gh
Рис. 6.19. М42. Ход белых.
Рис. 6.19. М42. Ход белых.
ладью черных. Идея, которая
ладью черных. Идея, которая
плана, состоит в прямой атаке на короля черных ходом Л Xплана, состоит в прямой атаке на короля черных ходом Л XЭта позиция является очень трудной. Однако программа с помощью анализа до глубины 23 полуходов показывает, что если белые будут играть наилучшим образом, то выиграют лежит в основе выигрышного
плана, состоит в прямой атаке на короля черных ходом Л X
плана, состоит в прямой атаке на короля черных ходом Л X
ХЛе8+, после которой король не имеет возможности для отступления. Успех плана определяется тем, что ферзь черных, занимающий поле d7, перегружен, так как должен защищать одновременно поля с8 и d8. Для реализации идеи составляется план Р1, который можно записать следующим образом:
Р1 ЛХ Л.е8 л х Kp・g8
Последний ход является опасным для черных (опаснее некуда!), они его могут отразить взятием фигуры, которая создает опасную ситуацию. Взять ладью е8 могут две фигуры черных —— ферзь и ладья. Для белых оба исхода приводят к невозможности реализации плана в таком виде. Тогда в план вводятся изменения и появляется план Р2:
Р2 ① Е.”—ФЕ
Л£.с8-> ЛЕ
далее по плану Р1
Чтобы убрать черного ферзя с ключевого поля, программа, как мн знаем, может предложить жертву фигуры. Один из ее вариантов реализуется в плане РЗ:
РЗ ① 4d4 fg4 .
Т ①Re7(можно добиться с помощью ФД X ①е7
или ①Е X ①g4)
далее по плану Р2
, Достигнув этой точки, программа определяет, что остался еще один опасный ход черных. Их ферзь может сохранить контроль над полем е7 без взятия белого ферзя, просто отступив на поле Ь5.
Такой оборонительный ход черных также должен быть нейтрализован. Для этого белые составляют новый план, который является вариантом плана РЗ:
Р4 ФЕ.Ь5-^~}ФЕ
далее по плану Р2
Кроме того, с самого начала в плане Р2 имеется другой опасный ход — Л >< е8・
Эти два хода предотвращаются одним и тем же ходом белых Фе4.
Далее возможны два продолжения: Ф X ①方5 или Ф X 厶с8
Р5 ① 4g4-» с4
Q4X ①Ь5
~) Ф£.&5
далее по плану Р2
Преследованием ферзя черных белые эффективно добиваются выполнения этого плана, основной вариант которого имеет вид
.①g4l Ф65
.①с4! Ф&7
. Фс71 Ф&5
. а4 ① X а4
. Ле4 Ф&5
.①Ь7 и черные теряют ферзя, иначе Ле8Х・
В общем чтобы доказать, что первый ход хорош и что он приводит к выигрышу ферзя черных, необходимо спуститься до глубины 23, а в одном случае——11 полуходов. На этот ход .черные имеют в своем распоряжении не менее 26 ответов!
в каких случаях иногда оывает необходимо проводить анализ на очень большую глубину. У Берлинера программа находит правильный ход следующим образом: король черных находится в опасности, так как ему недоступны все окружающие его поля, ход белых с шахом ФЙ5+ может оказаться фатальным. Программа, работающая по принципу систематического перебора, быстро отбросила бы этот ход после одного или двух обменов ходами, защиты ферзя белых от ходав каких случаях иногда оывает необходимо проводить анализ на очень большую глубину. У Берлинера программа находит правильный ход следующим образом: король черных находится в опасности, так как ему недоступны все окружающие его поля, ход белых с шахом ФЙ5+ может оказаться фатальным. Программа, работающая по принципу систематического перебора, быстро отбросила бы этот ход после одного или двух обменов ходами, защиты ферзя белых от хода
в каких случаях иногда оывает необходимо проводить анализ на очень большую глубину. У Берлинера программа находит правильный ход следующим образом: король черных находится в опасности, так как ему недоступны все окружающие его поля, ход белых с шахом ФЙ5+ может оказаться фатальным. Программа, работающая по принципу систематического перебора, быстро отбросила бы этот ход после одного или двух обменов ходами, защиты ферзя белых от хода
в каких случаях иногда оывает необходимо проводить анализ на очень большую глубину. У Берлинера программа находит правильный ход следующим образом: король черных находится в опасности, так как ему недоступны все окружающие его поля, ход белых с шахом ФЙ5+ может оказаться фатальным. Программа, работающая по принципу систематического перебора, быстро отбросила бы этот ход после одного или двух обменов ходами, защиты ферзя белых от хода
Из приведенного анализа ясно, что программа способна играть и действительно играет безупречно. Последнее не всегда получается у играющего шахматиста, которому на практике достаточно показать, что сделанный им ход выглядит сильным в большей части вариантов. На рис. 6.20 приведена позиция М42, в которой программа нашла лучший ход за белых 1.Ф^4. Его анализ нам не под силу, так как для этого потребовалось бы изучить как минимум 2454 варианта.
Эта позиция была предложена Берлинером в его диссертации для того, чтобы показать,
Рис. 6.20. В5. Ход белых (Берлинер), так как она не видит способ КХФЛ5.
В отличие от этого ROBIN ищет для белых защиту от опасного хода К X ①.Локальный анализ поля, которое занимает фигура, делающая опасный ход, выявляет возможность контрудара——в данном случае связки этой фигуры. Ее можно осуществить с помощью ладьи fl, если ввести в действие еще один резерв — заставить пешку『5 отступить с занимаемого ей поля.
Это достигается с помощью простого взятия f5 X еб. Однако программа определяет, что если этот ход сделать вначале, то он позволит ладье черных сделать ход Ле8 X еб, что для белых неприемлемо, так как для короля черных открывается путь к спасительному бегству.
Поэтому игровым вариантом остается Ф/г5, за котоым следует f5 X еб. Первым ходом объявляется шах королю, который так и не имеет ни одного поля для отступления. Анализ, проведенный программой, показывает, что потеря ферзя будет компенсирована после нескольких обменов ходами: ■
ФА5+ КЛ5
Анализ полей, занимаемых королем, позволяет найти следующую последовательность ходов:
f5Xe6++ Kpg6
Сс2+ Kpg5
Л/5+ Kpg6
Были изучены и другие планы. Но этот приводит на пятом ходу к очень сильному двойному шаху:
Л/6++Kpg5
Л^6+Кр九4
Ладья g6 защищена слоном с2, и король вынужден продвигаться в направлении противника!
Ле4+ КМ
В игру вступает вторая ладья белых:
Л Xf4 КрЛ5
Все ходы черных до сих пор являются вынужденными. Белые форсированно реализуют свой план, преследуя удаляюще
гося от своего войска короля, при этом другие черные фигуры играть не могут.
abcdefgtiabcdefgtiПродолжение находится без труда. Атака белых Л/г4+ является преждевременной из- за опасного хода черных Кр X X ЛЫ. Однако не допустить этот ход можно простым продвижением пешки: 9.g3. Фигуры черных неподвижны, король парализован: 10.ЛЛ4Х.
abcdefgti
abcdefgti
На рис. 6.21 приведена по
зиция Т149, в которой Тарраш Рис- 6.21. Т149. Ход черных, демонстрирует выигрыш пешки с помощью:
СХЙ2+ 2. КрХ 力2 ①九4+ 3. Kpgl С последующим Ф X С〃4!
Его анализ основан на п/占не двойного нападения на 用2 и Са4. Но программа, которая разрабатывает также планы белых, видит возможное наложение с планом двойной атаки белых на с7 и Л/8 после освобождения поля е5 на первом ходу.
Таким образом, план белых наталкивается на ход черных
4.Фе7!
Один из возможных ответов черных состоит в одновременной защите двух фигур с помощью хода 4.Cd7. Но у белых есть возможность продолжать атаку на защищающих друг друга слона и ферзя, а также готовить угрозу слабозащищенной пешке Й7 с помощью ходов Л/4, затем ЛМ с преимуществом белых» которое сводит на нет перевес в одну пешку, полученный на первом ходу.
Таким образом, программа ROBIN показала, что анализ Тарраша является неполным.
Глава 7
ЭКСПЕРТНЫЕ СИСТЕМЫ
Введение
Со временем доля работ на ЭВМ, связанных с обработкой чисто числовой информации, будет постоянно уменьшаться. Уже в настоящее время большая часть программного обеспечения предназначена для работы с информацией более общего вида.
В этой главе речь пойдет об одном семействе программ, предназначенных для оказания помощи специалистам в конкретных областях знаний, а именно об экспертных системах. К их основным свойствам относятся возможность обработки символьной информации, использование неполных данных для построения логических выводов, взаимодействие с человеком с помощью естественного языка.
Первая часть главы содержит формальную концепцию построения систем и описание их некоторых конкретных вариантов. Во второй части рассмотрены свойства систем, различные способы подготовки информации по специальной тематике, а также современное состояние и перспективы развития подобного подхода к программированному взаимодействию человека и ЭВМ.
В первых исследованиях в области искусственного интеллекта часто ставились слишком грандиозные цели, такие, как автоматический перевод на другой язык, доказательство теорем в произвольных областях знаний. Но следует заметить, что человечество в течение веков накопило громадный объем конкретных знаний и совершенно очевидно, что традиции, сформировавшиеся в одной области знаний, не обязательно автоматически переносимы на все остальные.
В последние годы системы искусственного интеллекта развивались с учетом именно этого обстоятельства. Сегодня ясно, что для разработки качественных интеллектуальных программ необходима их ориентация на определенные узкие области человеческой деятельности, в которых они должны уметь обучаться своей специальности, структурировать полученные знания и правильно их применять.
В этой главе рассматриваются системы, работающие с большими объемами знаний. Их целью является достижение результатов, получаемых лучшими специалистами в своих областях, поэтому такие системы и получили название экспертных. Важной особенностью этих систем является то, что они задуманы для использования человеком и оказания ему эффективной
помощи. Необходимым средством для этого является возможность диалога на естественном, языке программы со специалистом.
Кроме того, необходимо, чтобы специалист понимал систему и в случае необходимости мог сообщить ей свои рассуждения и убедить ее в их справедливости. Для этого нужно, чтобы декларативные знания, используемые системой, были отделены от обслуживающих их программных средств и в то же время были доступны непосредственно самой системе. Необходимо также, чтобы вы&оды системы были простыми и устойчивыми и их можно было легко объяснить.
Наконец, самое главное состоит в том, чтобы специалисты и эксперты могли легко передавать системе свои знания, обогащать ее. Для этого нужно иметь возможность вводить в систему знания в произвольном порядке, чисто описательным способом (не ориентируясь на их будущее использование, в отличие от классических жестко алгоритмических процедур). Сама система должна уметь упорядочивать и структурировать эти знания, сравнивать их с уже имеющимся и строить свою собственную модель знаний..
Для примера рассмотрим два реальных диалога с одной экспертной медицинской программой MYCIN:
постановка диагноза;
объяснение системой хода своих собственных рассуждений.
Кроме того, в разд. 7.2 дан пример корректировки базы знаний в режиме диалога.
Примеры диалогов в экспертной системе
Медицинская диагностика
MYCIN: Моя рекомендация будет основываться на возможных типах инфекции и потенциальных путях проникновения возбудителей инфекции. Возбудителями заболевания могут быть следующие микроорганизмы: 1) pseudomonia aeruginosa; 2) klebsellia pneumoniae; 3) escherichia coli; 4) bacteroides fragilis; 5) enterobacter; 6) proteus non mirabilis.
Пользуясь шкалой от 0 до 4, как вы оцениваете серьезность заболевания Фреда Смита?
Пользователь: 3.
MYCIN: Наблюдаются ли у Ф. Смита аллергические реакции на какой-либо антибиотик?
Пользователь: Нет.
MYCIN: Вес пациента в килограммах?
Пользователь: 70.
MYCIN: Моя первая рекомендация состоит в следующем: для того, чтобы охватить варианты болезни 1—6, давать клиндамицин в дозах по 595 мг в течение 14 дней. Возможно, вы хотите исключить использование некоторых медикаментов?
Пользователь: Да, клиндамицина.
MYCIN: Для того чтобы охватить варианты 2——6, давайте хлорамфеникол (левомицитин) в дозах по 1 г в течение 14 дней. При этом:
Следите за уровнем лейкоцитов у пациента. Для того чтобы охватить вариант 1, давайте гентамицин в дозах по 119 мг в течение 10 дней.
Измените дозу в случае почечной недостаточности.
Объяснение системой хода своего рассуждения
MYCIN: Произошло ли инфицирование больного в больнице?
Пользователь: Почему?
TEIRESIAS. (Почему важно это знать?) Это поможет определить, к какой категории относится микроорганизм, ответственный за инфекцию.
Уже установлено, что, во-первых, организм грамотрица- телен; во-вторых, это бактерия и, в-третьих, она аэробна или анаэробна.
Следовательно, заражение произошло не во время пребывания в больнице.
Почти наверное (0,8), что организм относится к категории энтеробактерий; более того, возможно (0,1—правило 37), что это pseudomonia aeruginosa.
Пользователь: Почему вы не предположили возможности того, что причиной заболевания является стрептококк?
TEIRESIAS: Для того чтобы идентифицировать организм как стрептококк, нужно было бы использовать правило 33, но уже известна сложность его второй предпосылки, а именно «морфологический тип — оболочка», поэтому правило 33 неприменимо.
72 Функционирование системы MYCIN — TEIRESIAS
MYCIN вместе с дополняющими ее программами TEIRESIAS и BAOBAB образуют типичную экспертную систему, которая оперирует с большим количеством знаний, заданных в описательной форме. Ниже описаны ее цели, достоинства и характер функционирования. ,
Цель ..
Система M.YCIN была задумана для оказания помощи врачу в режиме взаимодействия врача и системы при постановке диагноза и лечения бактериальных заражений крови.
Консультация ведется по-английски с врачом, располагающим всей полезной информацией о пациенте и результатах лабораторных анализов. Рассуждения MYCIN в случае отсутствия полной информации (результаты лабораторного анализа культур бывают обычно известны только через 24 или 48 ч) основываются на множестве так называемых продукций (продукционных правил), выражающих индивидуализированные знания. Система MYCIN способна объяснить свои рассуждения и ответить на вопросы, поставленные на обычном языке. Более того, такая продукционная база знаний может быть видоизменена или увеличена, причем в каждый момент система обладает моделью своих знаний, т. е. в известном смысле знает, что именно она знает.
Достоинства
Достоинством системы MYCIN — одной из самых совершенных в области искусственного интеллекта ——является то, что используемая техника имеет достаточно общий характер, и то, что программа является действующей: она получает результаты высокого качества и находит эффективное применение в практике.
MYCIN, разработка которой была начата в 1974 г. Шорт- лиффом, образует основное звено в цепи исследований, проводимых в течение более десяти лет в Стэнфордском университете под руководством Дж. Маккарти в рамках Станфордского проекта эвристического программирования. Система разрабатывалась в тесном взаимодействии с врачами из инфекционного отделения медицинского факультета этого же университета.
К этому времени Букханан и Фейгенбаум из Станфордского университета разработали экспертную систему DENDRAL и METADENDRAL (1968), предназначенную для работы в области органической химии. Тот же коллектив специалистов разработал систему приобретения знаний TEIRESIAS (1974) и программу BAOBAB (1980), которая автоматически создает структуру, основываясь на базе знаний, содержащихся в истории болезни пациента.
Впоследствии этот коллектив обратился к другим предметным областям, таким, как авторемонтное дело, лечение менингита, диагностика легочных инфекций, оказание помощи при
горнорудных изысканиях или генетических манипуляциях — что показывает силу и общность принятого подхода. Следует отметить, что проблема диагностики, даже ограниченная вполне определенной областью применения, как, например, микробные инфекции, является весьма сложной. В самом деле:
не существует единого универсального метода лечения инфекционных заболеваний;
статистика показывает, что, хотя пенициллин дают годами каждому человеку из четырех, в 9 случаях из 10 он оказывается бесполезным. Отсюда необходимость установления характера инфекции до начала лечения;
необходимо также как можно лучше знать инфицирующий возбудитель, что' является довольно трудной задачей: для получения достаточно точных характеристик с помощью лабораторных анализов требуется 48 ч, еще больше — для получения антибиограммы. Кроме того, необходимо перекрывать новые пути проникновения инфекции;
во многих случаях инфекция настолько серьезна, что необходимо начать лечение еще до того, как известны результаты анализов, а в некоторых случаях (например, заражение вирулентными бактериями после операции на сердце) и при отсутствии штатного бактериолога;
дополнительные сложности вносит недопустимость для пациента некоторых лекарственных средств (аллергии, тяжелое состояние пациента, возрастные ограничения).
Любая система, будь то человек или программа, которая приступает к решению этой задачи, должна располагать всей возможной информацией по всем отмеченным пунктам, должна знать, могут ли они взаимодействовать между собой, и, наконец, должна принимать решение в течение очень короткого промежутка времени. Это решение является компромиссом, достигаемым в недостаточно изученной ситуации, между требуемой эффективностью лечения и требуемым для этого временем.
Некоторым утешением может служить то обстоятельство, что эта сложная проблема на самом деле весьма ограниченна в том смысле, что для ее решения, нет необходимости в знаниях по общей медицине, по теоретическим моделям инфекций или по устойчивости микробов к антибиотикам.
Мы увидим, что представление знаний в декларативной форме с помощью продукций вполне годится для рассматриваемой области и что оно облегчает диалог с пользователем на естественном языке, причем программа действительно в состоянии пояснять ход своего рассуждения. Наконец, система,
постоянно учитывающая новые данные, может быть хорошим учителем, способным помочь специалисту использовать свои знания.
Описание
Система состоит из базы заданное множество правил, иСистема состоит из базы заданное множество правил, изнаний, представляющей собой четырех главных программ, ко-знаний, представляющей собой четырех главных программ, ко-
Система состоит из базы заданное множество правил, и
Система состоит из базы заданное множество правил, и
знаний, представляющей собой четырех главных программ, ко-
знаний, представляющей собой четырех главных программ, ко-
Рис. 7.1. Принципиальная схема системы MYCIN.Рис. 7.1. Принципиальная схема системы MYCIN.
Рис. 7.1. Принципиальная схема системы MYCIN.
Рис. 7.1. Принципиальная схема системы MYCIN.
торые взаимодействуют между собой по схеме, изображенной на рис. 7.1..'
Правила
Основная совокупность знаний — это база знаний, состоящая примерно из 400 правил продукций, каждое из которых содержит множество посылок, описывающих некоторую ситуацию, и множества действий, которые нужно предпринять в ответ, если посылки окажутся удовлетворенными.
Каждое правило имеет следующую форму:
Если 尸1 н 尸2H... Pt, то ai н а? ... н 勿,где Pi — посылки или условия. В системе MYCIN они представлены следующим образом:
<предикат> (объект) (определение) <оценка)
Примеры. MYCIN, правило 85. Если 1) место нахождения культуры — кровь, и 2) микроорганизм — граммоотрицателен, и 3) микроорганизм имеет вид палочки, и 4) пациент относится к группе риска, то с уверенностью 0,6 микроорганизм представляют собой pseudomonia aeruginosa.
MYCIN, правило 217. Если 1) микроорганизм — бактериален и 2) местонахождение культуры — стерильно, то можно рекомендовать терапию с использованием следующих средств: хлорамфеникола, клиндамицина, тетрациклина, линдомицина, гентамицина.
MYCIN располагает стандартным набором из 24 предикатов (например, 《есть》, 《тот же самый», «известен», «принадлежит к» ...), 11 объектами («микроорганизм», «культура», «лекарство» ...) и 80 определениями («идентичность микроорганизма», «чувствительность», «местонахождение» ...), которые служат для описания рассматриваемого случая.
Правила представляются на естественном языке. Одна группа правил предназначена для диагностики, другая ——для построения рецептов лечения.
Кроме того, с каждым правилом связан коэффициент надежности (КН), принимающий значения от 0 до 1, который выражает большую или меньшую достоверность заключения эксперта. В самом деле, знание в этой области никогда не бывает абсолютно надежным. Точно так же и наблюдаемые факты — симптомы — не являются чаще всего независимыми и надежными. Мы увидим, что MYCIN в работе использует факторы правдоподобия, которые, кстати, не подчиняются вероятностным закономерностям.
Примерное рассуждение
Факты, относящиеся к внешнему миру, представляются в виде триплетов, оцененных коэффициентом уверенности (КУ), который может принимать значения от —1 до 1.
Примеры. Идентификация микроорганизма: Е. coli 0,7. Идентификация микроорганизма: klebsiella 0,4. Чувствительность микроорганизма: пенициллин — 0,9.
Коэффициент уверенности КУ, полученный из нового, факта, выведенного из правила с коэффициентом надежности КН, задается формулой
КУ = КНХтЕКУр『,
где КУр/ обозначает коэффициент уверенности для /-й посылки.
Модель допускает сосуществование многих возможных значений одного и того же параметра.
Если в процессе рассуждений два различных правила приводят к одному и тому же заключению, но с разными значениями КУ, равными K#i и КУ2, то они взаимно усиливают друг друга:
КУ = КУ1 + КУ2-КУ1ХКУ2.
Всякий факт, для которого абсолютное значение КУ меньше 0,2, рассматривается всей системой как малонадежный и исключается из базы фактов.
Некоторые авторы критически относятся к такому подсчету и предлагают другие решения (Friedman, 1981; Dayle 1979; Swartout 1981).
Механизм формирования заключений
Само рассуждение ведется в обратном порядке, отправляясь от микроорганизмов — возможных причин инфекции — к симптомам. При этом конструируется дерево И/ИЛИ.
Сначала задается цель. Затем система рассматривает все правила, заключения которых приводят к этой цели. Левая часть (звено И) каждого правила, если это возможно, оценивается и строится коэффициент уверенности КУ результата (абсолютное значение) как минимум из значений коэффициентов уверенности в посылках. Если этот КУ 2 0,2, формируется правая часть с коэффициентом уверенности, равным произведению полученного КУ на коэффициент надежности правила. Если КУ V 0,2, правило ничего не дает (исходная гипотеза отвергается).
В случае когда некоторые посылки не могут быть оценены, они соединяются вместе и рассматриваются как промежуточные подцели (звенья ИЛИ) и система повторяет процесс (см. схему из разд. 7.3.1).
Если система не приходит ни к какому выводу, она запрашивает новую информацию, относящуюся к пациенту, т. е. система не задает лишних вопросов врачу (который этого не любит) до тех пор, пока он не испробует все возможные варианты (что позволяет ему, кроме того, сформулировать осмысленный .вопрос).
Этот исчерпывающий перебор, основанный на правилах продукций, сближает систему MYCIN с системами доказательства теорем, также оперирующими в относительно узком пространстве поиска.
Некоторые другие средства дополняют описанную стандартную процедуру. В системе MYCIN делается обобщение цели. Так вопрос: «Является ли данный микроорганизм кишечной палочкой?» обычно преобразуется системой в вопрос: «Какова природа микроорганизма?» Если получение ответа на подобный вопрос стоит системе не слишком дорого, она за счет этого может обойтись без дополнительных вопросов, обращенных к пользователю.
Система MYCIN использует для каждой цели абсолютно все релевантные правила с учетом коэффициентов надежности, так как в этой предметной области желательно взвешивать варианты и составлять суждения о каждом возможном случае. Лишь в том случае, когда вывод полностью определен (КУ = 1)»
возможно более раннее прерывание процесса использования правил.
Для повышения эффективности работы системы MYCIN необходимо, чтобы она всегда имела право расспрашивать врача об обстоятельствах, которым тот не придает значения, но которые ему известны как данные текущего лабораторного анализа. Кроме того, система в течение всей работы сохраняет в памяти след всех своих знаний, в частности запоминается вся история болезни, что полезно по трем причинам:
Происходит исключение бесполезных вычислений, а также ложное смешение информации в процессе ее поиска.
Это обеспечивает способность M.YCIN объяснить эксперту, как и почему она приходит к своим окончательным заключениям (см. разд. 7.4).
На этом основывается знание того, какой вопрос нужно задать эксперту на следующей фазе, если в полученной прежде информации обнаруживается ошибка.
Метаправила
Система может работать со своим собственным представлением знаний и наделена способностью к рассуждениям по отношению к так называемым профилям и метаправилам.
Профили приписаны каждому из 24 используемых предикатов и дают системе возможность знать, какие определения управляют применимостью рассматрива'смых предикатов. Они дают выигрыш в объеме вычислений, постоянно показывая, содержится ли данное определение многократно в посылках различных правил. Таким образом, профили позволяют производить первую быструю и грубую оценку посылок. Эта оценка показывает, если следовать простой логике, будет ли данное правило применимым и нужно ли внести его в список ожидания или оно совсем неприменимо к рассматриваемой ситуации.
Метаправила — это символические данные, по структуре аналогичные тем правилам, которые используются в системе MYCIN для поиска решения. Метаправила выделяют те стратегии,. которые позволяют избежать полного перебора вариантов, указывая путь наилучшего приближения к данной подцели, а также выбор самих правил и метаправил.
Например, первое метаправило касается главной цели MYCIN — «рекомендовать терапевтическое лечение пациента». Оно выглядит следующим образом:
Если разыскивается способ лечения, нужно рассмотреть в следующем порядке правила, позволяющие:
получить клинические сведения о пациенте;
найти микроорганизмы, если они существуют, которые могут быть причиной данной инфекции;
выделить из них наиболее правдоподобные микроорга- • низмы;
найти все потенциально полезные лекарства;
выбрать из них наиболее подходящие, оставив возможно меньшее число вариантов.
Другим примером метаправила является метаправило 2:
Если 1) пациент инфицирован и 2) существуют правила, одна из посылок которых касается pseudomonias, и 3) существуют правила, одна из посылок которых касается klebsiellas, то с вероятностью 0,4 сначала следует использовать правила из первой группы.
Метаправило 25 гласит:
Если 1) местонахождение культуры нестерильно и 2) существуют правила, в прсылках которых упоминается микроорганизм, уже встречавшийся у пациента ранее (возможно, совпадающий с микроорганизмом, поиск которого ведется), то несомненно ни одно из этих правил не может оказать помощь.
(Инфекционное заболевание, от которого ранее пациент был излечен, может возобновиться. Поэтому в медицинской практике принято искать действующую бактерию среди тех, которые уже встречались у того же пациента. Однако этот метод не подходит в случае, если изучаемая культура взята из нестерильной среды.)
Это метаправило на языке Лисп записывается следующим образом:
Посылка: (($AND (MEMBF SITE CONTEX) (NONSTERILESITES) (THEREARE OBJRULES) (MENTION CONTEX PREMISE SUMFBUG))
Действие: (CONCLIST CONTEXT UTILITY YES TALLY-1)
Таким образом, метаправила, имеющие тот же формат, что и основные правила, просматриваются для каждой подцели. Они могут приводить в порядок множество правил или уменьшать общее число правил, используемых в ходе анализа, редуцируя дерево поиска, образуемое разными правилами. Каждое ребро дерева требует доступа ко всей имеющейся информации, метаправила тесно связаны с данным ребром, и поиск приспосабливается к текущему контексту. .
Именно эти структуры управления и соответствующие эвристические данные выявляются в метаправилах, а не извлекаются из тела программы.
Наконец, поскольку интерпретатор системы MYCIN вызывает правила по их содержимому, а не по имени, система естественным образом приспосабливается к любым дополнениям и изъятиям правил или другим модификациям базы знаний.
Объяснения, предоставляемые системой, и диалог на естественном языке
При разработке концепции системы MYCIN важное требование состояло в том, чтобы программа могла объяснить свои действия для того, чтобы сделать их понятными врачу, а также сделать их более убедительными. Легкость встроенного диалога позволяет пользователю задавать вопросы системе в любой момент.
Способность к пониманию вопросов и объяснения осуществляются элементарным интерпретатором вопросов на основе ключевых слов и жестких форматов ввода-вывода. Функционирование этого интерпретатора в значительной степени облегчается благодаря стандартной форме представления знаний (правила продукций) и требует достаточно простой схемы перебора. Мы не будем здесь вдаваться в подробности относительно обработки естественного языка программы TEIRESIAS, описываемой ниже; это не входит в наши намерения и не составляет основного содержания книги.
Приобретение новых знаний. Система TEIRESIAS
TEIRESIAS — интерактивная программа, предназначенная для оказания помощи эксперту в разработке системы, функцио^ нирующей в области, характеризующейся большой массой знаний. Это промежуточная программа (интерфейс), ведущая диалог с экспертом на естественном языке с целью освободить его от анализа отдельных частностей. Система TEIRESIAS может не только непосредственно использовать свои знания, но также заниматься их изучением, обобщением и обсуждением (Тире^ зий — имя слепого предсказателя в трагедии Софокла «Царь Эдип»). Предусмотрена также возможность ведения диалога между двумя специалистами.
Первый вариант системы TEIRESIAS был некоторым обоб^ щением системы MYCIN, предназначенной для диагностики и лечения инфекционных заболеваний крови (R. Davis, Stanford, 1976). Ее целью является создание возможности простого перехода к другой предметной области и помощь эксперту при кон* струировании базы знаний. С тех пор такой подход получил широкое распространение (разд. 7.4). ■
Единственное важное предположение состоит в том, что представление (в форме правил продукций) и введенные понятия——правильные и что допустимо лишь просто расширение или модификация базы данных. Все происходит так, как будто профессор-эксперт читает свой курс. Затем он дает учащемуся новые задачи, внимательно следит за их решением и исправляет ошибки.
Пример работы программы TE1RESIAS с комментарием
Проиллюстрируем работу системы TEIRESIAS, основываясь на диалоге, представленном на рис. 7.2, который был описан Дэвисом. Для большей наглядности медицинские термины были вручную заменены биржевыми (например, кишечная палочка перешла в Американскую телефонную и телеграфную компанию, инфекция — в инвестицию, принять лекарство — купить акции и т. д.).
Система TEIRESIAS принимает во внимание мнение эксперта после каждого сеанса консультации с ним.
TEIRESIAS: Являются ли следующие объекты дла инвестиции в самом деле наиболее подходящими, а именно корпорация Вариан и Американская телефонная компания (АТТ)? Так ли это?(1)
Эксперт: Нет.
TE1RESIAS: Каких-то компаний не хватает?
Эксперт. Да. Диджитал Эквипмент и Дейта Дженерал.
TEIRESIAS: Вошла ли в приведенный перечень какая-либо фирма, которая не должна туда входить?
Эксперт. Да. АТТ.
TEIRESIAS: Желаете ли Вы, чтобы я произвела поиск ошибок?
Эксперт: Да.
TEIRESIAS: Итак, начнем с АТТ.(2)
Я использовала правило 27, так как:
область инвестиций не уточнена;
ожидаемая выгода выше на 10%;
инвестиция рассчитана на продолжительный срок.
Таким образом, АТТ — правдоподобный выбор с коэффициентом надежности 0,4-
Верно ли само это правило?
Эксперт: Да.
TEIRESIAS: Нужно уточнить одну из его посылок?
Эксперт: Да, посылку 1.(3)
TEIRESIAS: Я не пришла к определенному заключению относительно области инвестиций. Нужно ли мне ввести какие-то уточнения?
Эксперт: Да. Усовершенствованную технологию.
TEIRESIAS: Все попытки поиска правил, которые могли бы сделать вывод об области, где применяется усовершенствованная технология, окончились неудачей, так как все явные посылки оказались ложными (таково впечатление от двух рассмотренных мною правил)..
Верны ли эти два правила?
Эксперт: Да.
TEIRESIAS. Следует ли применить одно из них?
Эксперт: Нет.(4)
-TEIRESIAS: Не хватает ли какого-либо правила?
Эксперт: Да*
TEIRESIAS: Хорошо, тогда мне нужно иметь правило, из которого я могла бы сделать вывод о том, что в нужной области применяется усовершенствованная технология. Могли бы вы указать мне такое правило?
Эксперт: Ёс л и предел обложения клиента налогом доставляет 50 % и если клиент внимательно следует тенденциям развития рынка, то очевидно с коэффициентом 0,8, что инвестиция осуществляется при условии использова-. ния высокого уровня технологии.(5)
TEIRESIAS: Назовем новое правила R383. Вот, как я его понимаю:
Если -. ■... ,「,
предел налога, который платит клиент, составляет Ъ0(%;
недавно на рынке произошел скачок цен;
клиент внимательно относится к использованию своих ценных бумаг, то инвестироваться должна отрасль с высоким уровнем технологии (0,8). Согласны ли Вы с этим?(6)
Эксперт: Нет.
.TEIRESIAS: Нужно ли изменить посылки?
Эксперт: Да, измените посылку 2.
TEIRESIAS: Предположите, что посылка 2 изменена на 2’ «клиент внимательно следит за рынком». Согласны ли Вы?
Эксперт: Да.(7)
TEIRESIAS: Вы хотите теперь еще отменить посылку 3. Согласны?
Эксперт: Да-(8)
TEIRESIAS: (Идет повторение R383.) Затем: я не люблю критиковать Рэнди, но знаете ли Вы, что, вообще говоря, правила', касающиеся областей инвестиций, в которые входит предел налогообложения и способ слежения клиента за положением на рынке» означают, что клиент имеет опыт в вопросе инвестиций? Должна ли я попытаться сформулировать третью по сылку?1
Эксперт: Да.(9)
TEIRESIAS: Как бы Вы отнеслись № такой формулировке: в вопросе инвестиций клиент имеет известный опыт?
Эксперт: Согласен.(10)
TEIRESIAS: Большинство подобных правил * дает также заключение о желательном классе риска для инвестиций. Скажите, должна ли я попытаться привести здесь подобное заключение?
Эксперт: Нет.
TEIRESIAS: (Идет повторение скорректированного правила R383). Затем: Пожалуйста, обоснуйте кратко, почему Вы использовали это правило.
Эксперт: Система не поняла, что требуется уточнение области инвестиций, а это привело к тому, что правило 27 было применено неправильно.
TEIRESIAS: R383 было присоединено к базе знаний. Консультация будет использована для эффективной проверки обоснованности правила. Располагайтесь поудобнее. Это может потребовать много времени.
Результаты. Для инвестиций предлагаются: корпорации Вариан, Дейта Дженерал, Диджитал Эквипмент. Кажется, что теперь все исправлено, не так ли?
Эксперт: Да.
Рис. 7.2. Диалог с программой TEIRESIAS. Цифры в скобках обозначают ссылки на помещенные ниже комментарии.
Именно здесь после результатов, выдаваемых системой MYCIN, включает-* ся в работу TEIRESIAS. Первая фаза состоит в выявлении ошибки.
Экспериментально выделенные эвристические данные были заданы про- (грамме в форме метаправил. Одно из них говорит о соглашении: а) рассма-
тривать Проблему в целом; б) первое предпочтение отдавать выводу, которого не должны были получить.
Эксперт указывает, что данное правило не должно было быть применено. В противном случае TEIRESIAS указала бы ему, что не хватает некоторого другого правила, противоречащего принятию АТТ.
Положительный ответ возможен в случае, если бы была ошибка при оценке посылки за счет объявления ее ложной другим правилом.
Выявление ошибки путем точных и подходящих вопросов происходит довольно быстро. На этом втором этапе система интерпретирует новое правило.
Ошибка в формулировке системы TEIRESIAS произошла из-за элементарного лингвистического пословного анализа (даже не синтаксического) английской фразы пункта (5), где предикат «есть» (is) ассоциируется с объектом «рынок» (market). При этом система думает о посылке того типа (тенденция рынка есть...), который представляет собой модельную фразу, известную системе (разд. 7.3.2), усиленную здесь следующим далее английским предлогом《up》.
После этого ошибка легко исправляется. Второй выбрр оказался правильным. Предложение 3 отменяется, так как уже нельзя, как прежде, предполагать, что фраза распадается на две независимые посылки, потому что система хорошо знает, что слово «внимательно» не может быть использовано дважды. Это объясняется тем, что тексты и число возможных вариантов анализа невелики, так что необходимые корректирующие тесты легко проделать.
Вот первый текст на понимание в его завершенном виде:
Чтение оригинального текста на английском языке.
Преобразование в форму внутреннего представления.
Повторный перевод на английский и предъявление пробного текста.
В конце этой фазы удовлетворяются требования эксперта, на последнем этапе система сама определяет, удовлетворена она или нет.
В следующем разделе объясняется механизм создания системой нового правила.
Во всяком случае правило должно быть применимо к текущей ситуации——《умеренный эксперимент» (см. программу Уотермана для игры в покер, разд. 7.3.2).
Работа системы
Система просит эксперта сделать свой собственный вывод в следующих случаях:
Основой для вывода является программа необычного типа, а не до конца понятый метод исследования, опирающийся на систему простых правил описательного характера.
Система благодаря способности запоминать последствия своих действий предвидит такие из них, которые мешают получению правильного заключения. Получив подсказку, система может скорректировать как возможные предположения, так и ожидаемые эффекты от них.
Система считает необходимым задать конкретный вопрос: «В этой определенной ситуации что знаете вы и чего не знаю я?»
Модели правил, систематизирующие знания, позволяют программе TEIRESIAS не только использовать эти знания, но и предугадывать то, что ей может встретиться.
Модели правил. Модели правил высокого уровня представляют собой краткие обобщенные описания подмножеств правил более низкого уровня, объединенных какими-либо общими свойствами. Модель правила состоит из четырех частей:
список примеров, представляющий собой просто то подмножество правил, на основе которых создается модель;
описание характерного элемента подмножества, где посылки и выводы характеризуются часто появляющимися признаками с учетом взаимной корреляции этих признаков. Для получения этих сведений используются методы статистического анализа;
два списка правил: один ——специфичных правил, другой — общих правил. Они придают множеству моделей вид дерева, корнем которого является наиболее общая концепция.
Построением моделей правил занимается сама программа TEIRESIAS при достаточном увеличении ее базы знаний, начиная с того момента, когда в ее распоряжении оказывается несколько правил, относящихся к одной и той же области.
Пример модели правил. Модель:《尤 является-областью-ин- вестиций».
Примеры: R116, R80, R95,...
Описание:
——посылки: доход составляет/продолжительность состав- ляет/тенденция состоит в/
—корреляции: (доход, продолжительность) /(опыт, внимание). Заключение: область/риск.
Более общая модель: «область-инвестиций».
Менее общая модель: «предприятия-обслуживания-населения-яв- ляются-областью-инвестиций».
Когда программа TEIRESIAS ожидает получения нового правила (фаза 3 в приведенном на рис. 7.2 примере), она пробегает дерево моделей, начиная от корня, в поисках того, что она уже знает по поводу этого правила. В данном примере наиболее специфичная из известных моделей позволяет сделать вывод, что возможной областью инвестиций является развитая технология.
Частота появления предикатов в модели облегчает доступ к модели на естественном языке, а корреляции между появлением этих предикатов позволяют проверить, что эксперт не забыл ничего важного.
Использование моделей дает возможность компенсировать слабость проводимого в системе лингвистического анализа. Благодаря им проявляется важное свойство системы — тенденция понимать только то, что она хочет понять.
Кроме того, дерево моделей правил позволяет программе делать выводы в малознакомых областях, для которых определено малое число правил. Можно сказать, что она знает то, чему следует обучаться в первую очередь и может задавать вопросы на эту тему (но она не может определить, сколько еще осталось узнать и не имеет никаких средств для того, чтобы сразу оценить правдоподобность нового для себя факта). С помощью дерева моделей программа сама систематизирует и структурирует знания, получаемые беспорядочным образом от эксперта, что в конце концов служит для его же пользы.
Результаты испытаний системы и анализ недостатков
Система M.YCIN-TEIRESIAS написана на языке Лисп для ЭВМ PDP-10. Пятеро специалистов, не входящих в один научный коллектив, провели 15 сеансов испытаний системы, во время которых проверялись правильность лечебных рекомендаций, уместность заданных вопросов, наличие незаданных, но важных вопросов. В 72 % случаев эксперты выразили согласие с системой, в большинстве остальных случаев они сами не смогли прийти к единому мнению.
Многие экспертные системы, обзор которых приведен ниже .в разд. 7.3, имеют общие черты с программами типа TEIRESIAS. В качестве примера можно привести систему PUFF, предназначенную для оказания помощи при диагностике легочных заболеваний. Для подготовки ее к работе необходимо, чтобы эксперты потратили примерно 50 ч на ввод специальных знаний, а затем около 10 человеко-недель требуется для окончательной настройки системы.
Не вызывает сомнения, что системы, работа которых основана на правилах и метаправилах, в полной мере обеспечивают решение проблемы сбора и использования больших объемов знаний, по крайней мере в определенных предметных областях.
В разд. 7.7 дан общий обзор характеристик и предположительных свойств таких систем, их преимуществ и недостатков. В частности, более детально рассмотрены следующие недостатки системы MYCIN-TEIRESIAS:
Слабость средств обработки естественного языка. Более сильные средства ввел А. Бонне в программу BAOBAB, где максимально использовались априорные знания о предмете, записанные с помощью фреймов (Bobrow 1975). В результате удалось добиться лучшего понимания системой вводимых правил
и содержимого медицинских карт больных (разд. 7.6), но все проблемы при этом снять не удалось. Недостатки программы MYCIN, связанные с необходимостью модификации правил или требований ввода пакета из нескольких связанных друг с другом правил, в той же степени будут проявляться и в программе TEIRESIAS.
Программа TEIRESIAS заранее предполагает, что справедливость вновь вводимого правила может быть в дальнейшем подвергнута сомнению, но при этом банк знаний содержит точные сведения. В противном случае могут возникнуть дополнительные проблемы.
Даже с учетом отмеченных недостатков система в целом хорошо управляема и оказывается весьма полезной. Она эффективно управляет специализированными знаниями, при вводе которых эксперты не придерживаются никакого порядка. Система использует модель этих знаний, которую она сама же создает, для ведения диалога с экспертами, постоянно совершенствуя свои знания, т. е. набираясь опыта.
В целом MYCIN-TEIRESIAS относится к числу лучших интеллектуальных систем, .являясь очень простой по замыслу и в реализации. Специалисты легко прогнозируют ее поведение, а принимаемые ею решения могут быть легко проверены.
7.3. Продукционные системы
Цель этого раздела состоит, с одной стороны, в более точном определении того, что представляет собой экспертная система и как можно ее программировать, а с другой — показать состояние области экспертных систем на сегодняшний день.
Продукционное правило представляет собой выражение вида
MG^MD,•
в котором левая часть MG описывает определенную ситуацию, представленную в соответствии с формальными правилами рабочего пространства, а правая часть MD представляет собой действие, выполнение которого предполагается в случае обнаружения соответствующей ситуации. Такое правило очень похоже на теорему, а цепочка правил, связанных через заключения MD, MG и посылки, напоминает силлогизм. В рассматриваемых ниже системах в качестве базы знаний используются множества таких правил, а способ получения вывода представляет собой модус поненс (из р в р п q следует q). Благодаря этому результаты работы системы легко получают объяснение. Другие достоинства продукционных систем приведены в разд. 7.4.
Метод обработки информации с помощью продукционных правил не является формальным аналогом приемов, применяе-
мых в системах с использованием традиционных процедур (разд. 7.5). Впервые метод продукций был предложен Е. Постом (Post, 1936) и использован для определения языков и формальных грамматик (Chomsky 1963). С 1974 г. он находит широкое применение в многочисленных программах, которые получили уже знакомое нам название экспертных систем. Они
(切:Н,к •
(RI)А»Е
(R2)В » D
Н*А<R3>
(R3)Н * А
А+Е<R1)
<R4)Е Л G * С
<R5)е Л К *В
(R6) О Л Е Л К ♦ С
D А Е Л К+С (R6)
(R7) G Л К Л F * А
Рис. 7.3. Примеры вывода при движении по цепочке вперед.
применяются в специальных областях, где решение задач основано на логических выводах, но имеет исключительно познавательный- аспект. В основе экспертных систем лежат продукционные правила, поддерживающие весь объем доступных знаний. Эти знания представлены в модульном виде и могут быть легко модифицированы с учетом того, что их содержание не меняется при выполнении программ. На рис. 7.3 приведен пример вывода в такой системе.
Посылки А, В, ... могут быть простыми логическими предложениями типа «истина или ложь», как в системе MYCIN, или предикатами с переменными или еще какими-либо соотношениями. Богатство языка и легкость выражения с его помощью знаний, естественно, увеличиваются с развитием используемого формального аппарата (разд. 7.4 и др.).
Любопытно, что те же продукционные системы в настоящее время используются психологами для моделирования некоторых интеллектуальных процессов и успешно конкурируют с другими методами: Например, Ньюэлл (Newell, 1972) полагает, что формальный аппарат подобных систем может служить хорошей моделью для описания передачи информации между кратковременной и долговременной памятью человека и управления нашими знаниями. Следовательно, использование таких систем в области искусственного интеллекта не является случайностью.
Структура продукционной системы
Система в целом состоит из базы знаний, которая содержит множество продукционных правил, рабочего пространства (или базы фактов) и программного интерпретатора.
Рабочее пространство в начале работы содержит формулировку поставленной задачи, а затем в нем появляется множество фактов, которые программа смогла установить к текущему моменту времени. Это пространство играет роль кратковременной памяти, а факты, которые оно содержит, являются
Рис. 7.4. Элементарный цикл интерпретатора.
утверждениями, касающимися статического описания задачи и различных способов обращения к долговременной памяти. Последняя содержит базу динамических знаний, которая состоит из операторов преобразования, выраженных в форме правил. Эти правила могут содержать переменные, значения которых уточняются и приводятся в соответствие с известными фактами
с помощью процедур «квазиунификации» или «фильтрации» в процессе каждого сеанса работы интерпретатора.
Унификация является фундаментальным механизмом, который лежит в основе работы продукционных систем. В целом она позволяет ответить на вопрос, существуют ли такие комбинации подстановок переменных, которые позволяют получить две логически идентичные формулы, и является составным элементом безупречно определенного алгоритма резолюции (гл. 3).
Заключение, полученное 〃з:
■ правил с многими rrocw-халт: (ff, % f3) узел и
несколькисо разпиуньт продукционны.х! правил: 夕乙 g2) -т>> узел ИЛИ
;Рис. 7.5. Дерево вывода при движении по цепочке назад (те же данные, что ■и на рис. 7.3).
Интерпретатор является основной частью системы и полностью управляет порядком выводов, выполнение которых всегда можно представить в виде последовательности похожих друг на друга элементарных циклов (рис. 7.4). Отметим одну важную проблему, состоящую в выборе порядка выполнения правил. В дальнейшем нами будут рассмотрены некоторые подходы к ее решению.
Различие между продукционными системами заключается в том, что в одних системах новая информация, полученная с помощью выводов, просто прибавляется к базе фактов, а в других ——прибавляется с разрушением и замещением уже присутствовавших там фактов (Newell, 1971).
Движение к цели при работе системы происходит естественным образом (как при доказательстве теоремы) и может быть легко представлено с помощью И/ИЛИ (рис. 7.5).
В действительности дерево может быть пройдено в одном из двух направлений: или от фактов к заключению, или от заключения, которое в этом случае рассматривается как предположение, к фактам. В первом случае говорят о движении по цепочке вперед (рис. 7.3), во втором — о движении по цепочке назад (рис. 7.5). Чаще всего выбирается второе решение, так как оно лучше учитывает структуру фактов, которые, с одной стороны, не являются независимыми, а с другой — многие из
Рис. 7.6. Общая схема современной продукционной системы.
них не относятся к рассматриваемой проблеме, т. е. такой подход позволяет прежде всего избежать комбинаторного взрыва числа возможных цепочек, так как лишь в немногих случаях заключения можно заранее предвидеть и как-то ограничить перебор вариантов. В частности, он принят в программах MYCIN и DENDRAL (разд. 7.3.4).
' Большую часть вычислительной работы в этом случае выполняет интерпретатор Лисп с помощью рекурсивных процедур. Общая схема системы приведена на рис. 7.6. Заметим, что хороший интерпретатор должен давать возможность проходить по цепочке правил вперед или назад в зависимости от практических потребностей.
Используемые предположения при разработке продукционных систем и области их применимости
Доступ к содержащимся в системе знаниям и их использование основываются на некоторых предположениях.
Прежде всего необходимо, чтобы специалист в данной области мог описать ситуацию. Рассматриваемая область знаний должна быть хорошо разработана и основываться на твердых концепциях, в противном случае надо было бы опуститься до такого уровня детализации, что объем создаваемой базы знаний превысил бы всякие разумные пределы (Nilsson, 1980).
Структура изучаемого пространства
Прежде всего необходимо объявить действующие в данном пространстве правила. Входящие в них параметры, с помощью которых описывается изучаемая ситуация, должны быть слабо связаны между собой, в противном случае левые части правил становятся очень длинными и запутанными. Другими словами» изучаемое пространство должно быть слабо связанным, тогда каждое действие в нем над элементарными знаниями будет затрагивать лишь небольшое число параметров.
Одно-единственное правило может охватывать большую часть знаний человека. Например, правило «Правдоподобно, что микроорганизм типа палочки в грамотрицательной крови является Е. Coli» основано одновременно на знаниях из области физиологии и на клиническом опыте.
Схемы заключений
В рассматриваемом пространстве должна быть справедлива простая схема заключения типа модус поненс (из р и р => ^ следует 夕)или ее вариант модус толленс (из ~lq м р п q следует
Цель исследования должна быть хорошо определена и уточнена (поэтому возможно движение назад по цепочке правил). Более предпочтительными являются дискретные переменные по сравнению с непрерывными. Это позволяет избежать резкого увеличения объема базы фактов. Решаемые задачи не должны состоять в последовательном достижении нескольких сильно связанных друг с другом подцелей, в противном случае нужно использовать классический процедурный подход.
Априорные следствия из предположений, обеспечивающих применимость продукционной системы
Эту модель не следует применять для проблем, сложных по своей постановке или по характеру решения (например, сложные комбинаторные проблемы). Кроме того, модель по природе ориентирована больше на модификацию области, чем на использование свойств инвариантности. Тавтологии, определения или формальные отношения зависимостей в действительности не связаны с каким-либо единым основным механизмом. Они
могут быть учтены другими схемами заключений, к которым относятся «демоны» (Hewitt, 1981), «классы подобия» (Bundy, 1979) (разд. 7.4), ^приоритетные прерывания" (Gascuel, 1981).
Варианты, используемые в концепции продукционной системы
Следует отметить два важных момента, касающихся представления знаний и структуры управления, когда речь идет об обработке информации в таких системах.
Содержимое базы экспертизы
Для того чтобы адаптировать базу знаний к той или иной области, ее содержимое должно изменяться в зависимости от предмета. При этом для правил чаще всего применяется фиксированный формат, а для ограничения числа разрешенных унификаций используемые параметры стандартизуются. В системе DENDRAL левая часть правила является названием структуры (граф молекулы), а правая описывает возможные преобразования графа в спектрограф. Пример такого правила выглядит следующим образом:
"Эстроген->■ развал молекулы ((14—15), (13—17)) и передача водорода (1,12)”.
Такая условная запись позволяет выразить правило сжато и эффективно.
Наконец, многие современные системы допускают в правилах вызов процедур с последующей традиционной (числовой) < обработкой данных, хотя часто посылки и выводы правил сами > являются базовыми фактами, над которыми выполняется только проверка или модификация.
Структура управления
Проблема управления состоит в разрешении конфликтов ме- джду правилами, готовыми к выполнению. Выбор правила имеет важное значение не только для производительности системы, но Главным образом для того чтобы она могла совершенствоваться ни "гюннмать” то, что она делает.
В настоящее время в литературе упоминаются три больших с©емейства структур управления, основанных на следующих Принципах:
.• Исчерпывающий перебор.
■ • Выбор правила с помощью оценки.
• Управление с помощью метаправил.
Исчерпывающий перебор. Данный тип управления исполь- ^зуется в системе MYCIN. Эта стратегия удобна в тех случаях,
1,3 Ж.-Л, Лорьер
когда ответ на точно поставленный вопрос отыскивается путем взвешенного анализа всех возможных выводов и комбинаторика в исследуемом пространстве невелика.
Выбор правила с помощью оценки. Самый общий тип оценки состоит в выборе первого встретившегося правила, удовлетворяющего соответствующим условиям (см. работы в области психологии Уотермана или Моргана). С помощью этого способа производится эффективное упорядочивание правил, однако он сводит на нет наиболее фундаментальное свойство продукционной системы ——простота модификации базы знаний.
В других вариантах оценки сначала отыскивают все правила-кандидаты, а затем выбирают из них правило с максимальным значением оценки, полученной с помощью того или иного следующего критерия:
динамическая оценка приоритета правил в зависимости от их вклада в достижение цели;
приоритет правил устанавливается в зависимости от важности используемых фактов;
критерий специализации: выбирается наиболее специфичное правило (критерий, используемый в интерпретаторе Лисп);
выбор, определяемый графом, устанавливающим связь частичного порядка с правилом (DENDRAL) или осуществляемый с помощью программы (Gascuel, 1981);
выбор последнего использованного правила;
выбор правила, в котором упоминается последний использованный факт.
Управление с помощью метаправил. В первом приближении этой структуре можно отдать предпочтение перед всеми остальными, поскольку логика вывода при этом становится подобной самим правилам. Действие программы в каждый момент времени сильно зависит от состояния системы, а метаправила позволяют определить, что нужно предпринять в первую очередь в каждой конкретной ситуации. При этом используются те же идеи, что и при доказательстве теорем (Hewitt, 1972).
Заметим, что во всех случаях структура управления требует от системы, чтобы все сообщения проходили через базу фактов. Сам принцип продукционных правил запрещает им обращаться друг к другу (в точности наоборот по сравнению с тем, что происходит для процедур в классическом программировании) (см. разд. 7.5 для более подробного сравнения). Важное свойство метаправил заключается в том, что с их помощью элементарные правила могут быть добавлены в систему, а также модифицированы или исключены, т. е. система становится способной к самоорганизации. ,
Эффективность продукционной системы
Время вычислений и получения выводов растет вместе с произведением числа правил на число записей в базе фактов. Наиболее важным фактором является число безуспешных попыток, предпринятых для выполнения правил. Можно построить различные фильтры, которые перед унификацией исключают бесполезные правила и факты. Дермотт (Dermott, 1978) предлагает четыре таких фильтра и приводит соответствующие формулы оценки времени их работы. Решение, принимаемое многими авторами, состоит в выполнении данного правила и последующем переносе выведенных фактов с реактивацией только таких правил, в которых эти факты упоминаются как посылки. Кроме того, в некоторых интерпретаторах предусматривается оценка выражений, общих для нескольких правил, только один раз за цикл и даже сохранение результатов вычислений при переходе от одного цикла к другому, когда соответствующие факты не изменяются (Gascuel, 1981), (Ghallab, 1981), (Forgy, 1981). Простые и доступные эвристические факты используются здесь с полной отдачей: при минимальных затратах времени они упрощают поиск соответствия между правилами и фактами.
Другим средством уменьшения числа попыток является автоматическая организация элементарных фактов в более сложные структуры для получения представления более высокого уровня. При этом с увеличением разнообразия рассматриваемых объектов уменьшается вероятность успеха унификации и одновременно уменьшается число бесполезных попыток. В работе (Minsky, 1975) была предложена структура прототипов типичных ситуаций (фреймов), использовавшаяся во многих си; стемах (разд. 7.5).
Таким образом, если правила не содержат переменные, задача решается относительно просто. И наоборот, если использование переменных разрешено и, кроме того, число правил и число фактов представляются большими величинами (сотни и тысячи соответственно), то решение проблемы представляется затруднительным, комбинаторный взрыв может быть устранен только с помощью метазнания (разд. 7.7).
Теперь перейдем к обзору существующих экспертных систем.
Экспертные системы, использующие продукционные правила
Система DENDRAL
Назначение. Получение подробной формулы органического вещества исходя из его грубой формулы и масс-спектрограммы.
Разработчики. Станфордский университет. Букханан, Фейгенбаум, Ледерберг (лауреат Нобелевской премии по медицине 1958 г.). Сазерленд и Массачусетская спектральная лаборатория.
DENDRAL представляет собой результат исследований, начатый в 1964 г. Ледербергом, который создал систему для оказания помощи химику при проведении химического анализа органических веществ (структура и кодировка молекул с учетом топологических ограничений). В то время вера в возможности систем искусственного интеллекта была удивительной: существовали модн-ые течения по созданию общих программ, способных делать все, включая доказательство теорем и реализацию универсального принципа решения задач (Feigenbaum, 1971).
Система DENDRAL начиналась с программы обычного типа. (Davis, 1977). Она была полностью переделана в 1967 г., так как к тому времени она уже стала малоуправляемой.
Характеристики. Используемый метод принадлежит к поиску, основанному на перечислении. Одна комбинаторная программа обслуживает все возможные структуры с учетом ограничений, накладываемых на данные. Она очень эффективна и работает гораздо быстрее, чем химик. Когда желаемая формула получена, можно предсказать спектр вещества с помощью правила вида “Такая-то атомная конфигурация такой-то распад" и сравнить его с реальными наблюдениями.
Обычный способ действий состоит в том, что задания помещаются в так называемую записную книжку (агенда). Это делается по той причине, что при выполнении заданий могут быть выполнены несколько правил и все, кроме* одного, должны ждать своей очереди, или потому, что одно правило может требовать выполнения нескольких заданий. Записная книжка представляет собой структуру данных, с элементами которой связаны приоритеты, определяющие порядок доступа к этим данным. °
Фундаментальным представлением, которое используется в системе DENDRAL как для обозначений в самих правилах, так и для связи с экспертом, является граф структурной химической формулы. Система DENDRAL повседневно используется химиками Станфордского университета. С ее помощью подготовлено 25 статей, опубликованных в специальных химических журналах.
Система META-DENDRAl
Назначение. Автоматические выводы об используемых в DENDRAL правилах фрагментации молекул. Данные представ-
ляют собой типы фрагментации в пробах, взятых в сравнительно простых веществах.
Исходное положение. Узким местом в системе DENDRAL является получение правил на основе данных, которые предоставляются химиками в весьма неупорядоченном виде (Buchanan, 1978). Ставилась задача быстрого выделения множества правил, наилучшим образом описывающих имеющиеся данные.
Характеристики. Здесь также используется комбинаторный метод. Перебираются всевозможные графы для данного вещества, при этом каждая конфигурация делается левой частью нового правила. Правая часть образуется из таких высоковероятных пиков в спектрограмме, которые могут быть признаны интересными после статистического изучения образцов. Все полученные правила затем проверяются и приводятся в порядок согласно следующим четырем процедурам:
устраняется избыточность;
объединяются правила с одинаковой левой частью;
если имеется правило, содержащее одну негативную посылку, делается попытка его уточнения с целью устранения этой посылки;
строится обобщение правил, содержащих одни и те же положительные посылки и одни и те же результаты.
META-DENDRAL строит такие множества правил, которые успешно конкурируют с правилами, создаваемыми квалифицированными экспертами. META-DENDRAL создала новое множество правил в малоизученной области. После тщательного обсуждения химиками было сделано сообщение в международном обзоре по химии (1976 г.). Система была перенесена также на случай изучения спектров магнитного ядерного резонанса. При этом она стала создавать-, отправляясь от беспорядочных и приближенных данных, более сложные правила, чем это делалось экспертами (Buchanan, 1978).
Программа Уотермана (Waterman, 1970)
Назначение. Выявление эвристик для игры в покер путем обучения.
р Разработчики. Уотерман описывает экспериментальную интеллектуальную систему, в которой предусмотрено четкое разделение между программой и эвристиками. Кроме того, программа способна к расширению своих возможностей в ходе игры и корректировке множества применяемых при этом эвристик.
Характеристики. Применяемые эвристики берутся в форме правил продукций, которые постепенно корректируются. Кроме
того, программа способна конструировать новые правила.
Каждая отдельная ситуация в игре представляется в виде вектора с семью компонентами (номер руки, ценность комбинации, величина ставки, использование противником блефа (да или нет), отношение комбинация/ставка, произведена замена карт (да или нет), стиль (игры противника). Методы рассужде-. ний выражаются как функции этого вектора.
Принятие решения и обучение в программе Уотермана. Структура управления правилами имеет особый характер: правила располагаются не произвольным образом, а в некотором заданном порядке и выполняется первая успешная унификация в соответствии с этим порядком. Из-за этого исправление любой ошибки оказывается достаточно сложным, более того, любая модификация приводит к трудно предсказуемым последствиям.
Выход, предлагаемый Уотерманом, состоит в следующем: четко формируется новое правило, которое точно описывает данную ситуацию с новой правой частью, корректирующей ошибочное решение. Тем самым возникают две возможности: либо уже существует правило, которое можно модифицировать так, чтобы получить тот же эффект, что и новое правило, либо такого правила не существует. В последнем случае обучение происходит очень просто: новое правило ставится непосредственно перед ошибочным правилом. Первый же случай разделяется на два в зависимости от того, расположено ли подлежащее модификации правило до или после ошибочного правила. Если оно находится перед ним, то поля определения символических значений параметров левой части расширяются таким образом, что они включают значения параметров из нового правила, т. е. старое правило обобщается. Если правило стоит после ошибочного правила, происходит обратный процесс: программа выделяет правила, расположенные между ошибочным и модифицируемым правилами (включительно); поля параметров в них ограничиваются с целью исключения всех преждевременных комбинаций.
Опасности, подстерегающие подобную схему управления, многообразны: трудность проверки вручную влияния продукционных правил на ход игры, создание избыточных* правил, которые система должна периодически исключать, неустойчивость поведения программы в фазе обучения. Автор сообщает о многих сериях экспериментов на автоматическое обучение и обучение с учителем, которые доказывают эффективность обучения и дают хорошее поведение системы в игре с использованием всего двух десятков правил в заключительной фазе.
Программа демонстрирует меняющийся стиль игры, который трудно охватить противнику. Но если это свойство и хорошо для покера, оно может иметь серьезные недостатки в других областях.
Семейство систем MYC1N-TE1RESIAS
Назначение. Помощь в диагностике и лечении, помощь в получении знаний в области бактериальных заражений крови.
Разработчики. Э. Шортлиф (Е. Shortliffe, 1974), Р. Дэвис (R. Davis, 1976), Станфордский университет, коллектив под руководством Букханана и Фейгенбаума (Buchanan ——Feigenbaum).
Характеристики. Полезная, активно используемая программа. Система знает, что она знает и что нужно знать. Это помогает ей объяснять свой метод рассуждения, отвечать на вопросы, обучать эксперта, а затем давать ему советы, используя медицинскую терминологию (разд. 7.2).
GUIDON. Эта система обучает тому, о чем MYCIN рассуждает. Она предназначена для студентов-медиков Станфордско- го университета. Знания, выраженные в правилах системы MYCIN, отфильтровываются с помощью набора правил, относящихся к педагогике. (Clancey, 1979). Несмотря на то что исследование ситуации в системе MYCIN производится вслепую, методом полного перебора, этого оказывается вполне достаточно для -постепенного обучения этим правилам новичков.
При этом стратегия диагностики должна быть тщательно подобрана: зубная боль несравнима по своей тяжести с менингитом. Поэтому медики-информаторы Станфордского университета ” пришли к необходимости дальнейшего разделения правил на некоторые группы для того, чтобы, с одной стороны, выделить иерархию клинически определенных ситуаций, а с другой ——сохранить их взаимосвязи. Созданная новая система знаний получила название NEOMYCIN (Clancey, 1981).
入 ONCOCIN. Э. Шортлиф описывает весьма актуальную си- у стему помощи в лечении рака. Концепция ONCOCIN во многих отношениях отличается от концепции MYCIN:
М • За больными должно вестись наблюдение; для каждого -^больного ведется и подытоживается клинический протокол те- ^чения его болезни. Такнм образом, время выступает здесь в d качестве основного параметра. Признаки заболевания уже являются переменными, а не постоянными (это обстоятельство приводит к фундаментальным изменениям в структуре машины вы- р вода: вычисление посылок теперь не является простым делом), • Область применения настолько обширна, что необходима классификация правил по контексту их применения.
По этой же причине система должна постоянно контролировать ’совместимость» и полноту всего множества правил.
С целью устранения длинных и дорогостоящих сессий вопросов — ответов при отсутствии данных правила сами пытаются присвоить значения неизвестным параметрам.
Стратегия поиска не сводится более к полному перебору, а исходит из поставленной цели.
SU/X и некоторые другие системы
Назначение. Идентификация и локализация объектов, посылающих сигналы в пространство (Nii, 1978).
Разработчики. Система разработана Е. Фейгенбаумом и П. Нием (Е. Feigenbaum, Р. Nii, 1976), для слежения за развивающимися ситуациями и знаниями. Мгновенная память для запоминания фактов устроена по типу классной доски, исадль- зованной в системе HEARSAY из Университета Карнеги ―Беллона (Erman, 1975).
Характеристики. Правые части правил точно определяют действия, которые фактически являются вызовами процедур: вычисление того или иного параметра или замена той или иной гипотезы на другую. Таким образом, правила служат в основном для исключения возможности комбинаторного взрыва.
VM (Feigenbaum, 1979). Это продукционная система для помощи сиделкам в отделении реанимации. Она непосредственно воспринимает состояние различных клинических показателей и постоянно следит за их изменением. Она поднимает тревогу в случае серьезной аномалии.
CRYSAZYS ——производная от системы SU/X, предназначенная для определения структуры белка с помощью карты плотности электронов в трехмерном пространстве, получаемой методом рентгеновской кристаллографии. Белковые молекулы протеинов настолько сложны, что методы полного перебора систем DENDRAL и MYCIN оказываются непригодными и требуется более богатая структура управления правилами (Engel- more,,1979).
MOLGEN. Это еще одна экспертная система, созданная тем же коллективом ученых. Предметом ее применения является молекулярная биология; исходными являются различные иору- дия", предназначенные для расчленения, связывания/ включения и уничтожения молекул ДНК, эффекты, вызываемые такими модификациями, и состояние химической технологии. Речь идет о том, как и каким образом достичь цели, которая ставится генетиками. Основная трудность состоит в том, чтобы заставить взаимодействовать в базе знаний правила продукций, оперирующие разнообразной информацией из биологии, химии,
технологии преобразований, топологии, генетики (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 Тeknowledge и предназначалась для компании ELF Aquitaine. Система ориентирована на анализ несчастных случаев при бурении нефтяных скважин.
CASNET. Система обладает моделью рассуждений несколько более развитой, чем система MYCIN, позволяющей не только ставить диагноз и осуществлять уход за больным, отслеживая развитие глаукомы и соответственно изменяя предлагаемые системой лечебные рекомендации. В этом классе систем находятся также и другие конкретные системы.
HEADMED. Психофармакология (Feigenbaum, 1979, 1977).
INTERNIST (Университет Питтсбурга). Экспертная система для медиков-интернов. Большое число областей и болезней человека закодированы многими десятками специалистов и внесены в систему. Полная система содержит многие тысячи правил по 80 отдельным темам.
SACON. „Советчик инженера*4 в механике (Michie, 1980).
SOPHIE, Помощь в обучении на компьютере технике обнаружения неисправностей в электрических цепях (Anderson, 1979).
EL и NASL (Sussman, 1975, McDermott, 1978)—помощь при изучении электрических цепей.
Три последние системы используют моделирующие программы для проверки гипотез.
NUDGE. Поиск распределения времени в тех случаях, когда задача плохо поставлена.
Кроме того, появились системы, использующие правила продукций в игровых программах. Среди них PARADISE для игры в шахматы (Wilkins, 1979), система Куинлэна (Quinlan) и системы Попеску (Popescu, 1984), Фаллера (Faller, 1985) для игры в бридж.
Для понимания связной устной речи ——система HEARSAY III (Erman, 1981). Система RESEDA для анализа исторических средневековых французских документов (Zarri, , 1981). Система исследует мотивы и побуждения в действиях исторических персонажей. Система GARI используется для определения диапазона возможностей машинной обработки. Некоторые правила выражают простые советы, данные специалистами. Некоторые из этих советов могут вступать в противоречие. Система призвана также устранять подобные противоречия с помощью строго определенной и оригинальной схемы. Система SAM (Gascuel, 1981) рассматривает вопросы лечения артериальной гипертонии, мозговых кровоизлияний, рака гортани.
TOUB1B (IBM, Франция, Fargues, 1983). Помощь в диагностике при оказании экстренной помощи.
SPHINX (М. Fieshi, 1982, 1983, 1984). Система вначале была предназначена для лечения болезней брюшной полости, затем переориентирована на исследования диабета и желтухи. Она может общаться с пользователем по-французски (MEDIUM, Joubert, 1981). Система оказывается чрезвычайно полезной при обучении студентов.
PROTIS (Soula, 1983). Лечение диабета и желтухи, особенно эффективное в случае ненадежных рассуждений.
ТОМ (Cognitech, 1984). Производная система от EMYCIN для изучения болезней томатов.
CESSOL (Ayel, 1984). Делает анализ геотехнических наблюдений с целью изучения характеристики почв.
CRIQUET (INRIA Sophia). Используется для классификации галактик.
R1 или XCON. Подбор состава вычислительной системы. Экспертная система фирмы DEC для описания полных систем VAX 780, которые должны удовлетворять множеству ограничений (занимаемое физическое пространство, расстояния между местами для операторов, специальные пожелания клиента и т. д.). Система была написана на языке OPS коллективом из
15 человек. Она содержит в настоящее время 2000 правил (McDermott, 1983). Полностью готова и повседневно используется в разнообразных целях в фирме DEC.
Системы общего назначения
EMYCIN. Описанная Ван Меллем (Van Melle, 1979) система представляет собой《особенную» или «пустую» систему MYCIN. Она служит для накопления правил при создании экспертной системы, которая может быть консультантом в произвольной области. Например, с ее помощью можно реализовать системы SACON и DART.
DART. Система создана фирмой IBM (Bennet, 1981) и служит «консультантом» при поиске неисправностей в материалах или в системах (инициализация, обслуживание пользователей в режиме разделения времени). Она была написана в течение 8 мес пятью специалистами и содержит 200 правил. Правила по существу представляют собой переводы протоколов сообщений и их возможных аномалий.
OPS. Создана в Университете Карнеги——Меллона. Система отличается от системы EMYCIN наличием переменных (OPS работает не только в области исчисления высказываний, но и в области логики предикатов первого порядка), а также стратегией выбора правил и критериями оценок (Forgy, 1977).
TANGO. Создана в Университете г, Орсей М. Кордье и М. Руссе (М. О. Cordier, М. С. Rousset). Система является дедуктивной машиной для логики предикатов первого порядка и имеет некоторые специфические особенности работы с базой фактов. Новые правила создаются для каждой дедукции; кроме того, системе TANGO задается цель, позволяющая осуществлять непрерывное управление процессом поиска.
PECjOS (Barstow, 1979). Система переводит на язык Лисп абстрактные алгоритмы, предназначенные для работы с символами, выборками и графами. Представление объектов и техника программирования выбираются с помощью примерно 400 правил, которые могут приводить ко многим различным вер” сиям программы, оцениваемых и используемых с помощью 6о лее общей системы автоматического синтеза программ PSI.
АРЕ. Экспертная система программирования. Она автоматически пишет программы на языке Лисп, исходя от абстрактных спецификаций алгоритмов и типов данных. Порожденные при этом рекурсивные программы (деревья, бинарный поиск и т. д.) могут содержать примерно 60 строк кодов. Абстрактные типы данных включают списки, файлы и неупорядоченные массивы, таблицы, деревья.
Цель авторов — прийти к новой теории программирования, основанной на модульных представлениях о правилах базы знаний системы.
TROPIC. Система описана Латомбом (Latombe, 1977). Это универсальная программа, облегчающая работу в таких областях, как архитектура и электротехника. Она обладает эффективным механизмом управления советами и хорошо организованным механизмом возврата, полезным для анализа игры в шахматы.
AGE. Создана Нийем и Айелло (Nii, 1978). Система включает алгоритм систематического обобщения вводимых в нее правил,
ARGOS-II. Разработка Кэйрола, Фейда и Фэрренея (Cayrol, 1979, 1976, Farreny, 1980). Это общая система, которая предназначена для имитации принятия решений роботом. В частности, исследован логический аспект управления таким роботом: исполнение правил можно произвольным образом откладывать и возобновлять с помощью введения формальных объектов.
CAMELIA (Vivet, 1984). Речь идет об экспертной системе, помогающей формулировать теоремы интегрального исчисления, строить бесконечные ряды: решать алгебраические и арифметические задачи. Она написана на языке Лисп и использует программу REDUCE для вычислений в базе данных. Ее оригинальность состоит в том, что она строит план решения для всех возникающих задач, основываясь на метаправилах стратегического характера. Кроме того, она может при необходимости оценивать посылки правил, например таких:
если ....
и положительное (/) = истина
то ...
где /——может быть произвольным формальным выражением, содержащим, в частности, неизвестные параметры; посылка ^положительное f” становится для системы CAMELIA новой подцелью, которая достигается с помощью рекурсии.
В настоящее время эта система ориентируется на использование метазнаний для модификации сложных правил с тем, чтобы приспособить эти правила к существующей ситуации.
GOSSEYN (Fouet, 1984). Система используется в механическом производстве для конструирования штампованных деталей и производства картеров для автомобильных двигателей (2000 правил).
MUSCADET (Pastre, 1984). Речь идет о системе, предназначенной для доказательства теорем в некоторых разделах чистой математики, таких, как теория множеств, теория топологиче-
ских векторных пространств, где система MUSCADET доказала целый ряд трудных теорем. База знаний системы содержит специфические правила для отдельных областей математики, универсальных математических знаний, а также общую стратегию ведения доказательств. Все типы знаний (правила, метаправила, метадействия) интерпретируются одним и тем же механизмом. Пастр (D. Pastre) для описания своей базы знаний использовал помощь квалифицированных математиков. Основной вывод состоит в том, что эксперты оказываются неспособными формулировать логические правила в абстрактной форме. Вместо этого они рассуждают с помощью примеров, прибегая к частным случаям и используя рисунки. Они неожиданно могут надолго задуматься перед тем, как сделать первый шаг при решении проблемы, или оказаться не в состоянии ответить на вопрос, почему ими был выбран именно этот, определенный метод. Приведен пример теоремы, доказанной с помощью MUSCADET за 14 этапов (применяется около 200 правил): “Если U ——окрестность 0, то существует У — также окрестность 0, содержащаяся в U, центрально симметричная относительно 0".
Обучающиеся системы
Прежде всего назовем систему Гольдштейна PONTIUS-0, которая моделирует поведение человека, обучающегося управлению самолетом. • -
Известный успех имела система АМ, созданная Ленатом, (Lenat, 1975), которая предназначена для свершения математических «открытий». Отправляясь от некоторых исходных понятий, АМ порождает новые понятия и судит о достоинстве используемых продукционных правил с помощью оценочных функций. В частности, АМ порождает четыре различных способа умножения: путем подстановки с итерацией, путем повторного сложения способом, аналогичным нумерации элементов декартова произведения, и путем нахождения кардинального числа множества разбиений некоторого множества. Аналогично возникает понятие простого числа (рис. 7.7) и формулируется основная теорема арифметики.
“Понятие'' “простого числам в системе АМ Дугласа Лената формируется в процессе ее работы. Фасеты (или слоты) таких понятий постепенно заполняются средствами самой системы. Кроме того, система способна создавать свои собственные новые понятия путем обобщения или уточнения старых понятий*
В правой части каждого правила содержится явное указание, в соответствии с которым может произойти разветвление этого правила на несколько других. Система развивается на основе
примеров, которые она формирует и обобщает, пользуется многочисленными эвристическими моделями поведения человека, т. е. по своей природе ее рассуждения носят индуктивный характер.
Недавно Ленат описал новую систему EURISCO, которая является обобщением системы АМ. Она может действовать в
Имя: простые числа
Определение'
Начало: число делителей (尤)=2'
Предикат: простое (х), если (для всех %)
(z/x влечет z= 1 или ?=%)
Итерация: (для всех х,尤 > 1): для i = 2 до х — 1: нет (£/х)
Примеры: 2, 3, 5, 7, 11, 13, 17, 19,...
Особые случаи: 2, 3.
Выход за границы: 0 и 1
Число контрпримеров: 12
Обобщение:
Число, число с четным числом делителей, число с нечетным числом делителей
Специализация:
Единственная факторизация, пара простых, сумма простых Предположения: утверждение Гольдбаха, предельные делители■
Аналогии:
Двойственность, числа с малым числом делителей и с определенным числом делителей
Интерес:
Связь с умножением, делимость и все операции, связанные с ними Оценка: 800
Рис. 7.7. Пример представления высокого порядка.
произвольной области и конструировать собственные правила, используя метазнания (Lenat, 1983).
Аналогично работает система BACON-3, созданная Лэнгли (Langley, 1979). Она ориентирована на физику и способна заново открыть законы Кеплера, Кулона и Ома. Система APS Уотермана (Waterman,1979) способна стррить общие модели для выполнения арифметических операций, для обучения словам и для продолжения отрезков последовательностей. Список правил упорядочен, а обучение состоит в том, чтобы помещать новые правила в этот список на разумно выбранное место. Отметим, однако, что этот выбранный порядок работы системы является одновременно попыткой обойти- чисто декларативный характер продукционных систем и преодолеть ограничения нашего познания в области психологии человека. Наше знание, возможно, локально упорядоченное в некоторых важных случаях, во всей своей полноте таковым не является.
Митчелл, Банержи и др. (Mitchell, 1981) описали систему формального интегрирования, способную к совершенствованию
своих возможностей по мере ее применения: сначала первообразная определяется путем полного перебора, затем программа выделяет из дерева решения полезный путь (или пути). Таким образом она выделяет простые правила математической перезаписи, которые она использовала, уточняя контекст их применения, и тем самым преобразует их в правила продукций в обычном смысле. Затем выполняются обобщения каждой конкретной функции в своих контекстах для всего класса подобных функций: синус, например, превращается в произвольную тригонометрическую функцию и т. д,- В свою очередь неверно примененные правила сохраняются для того, чтобы в дальнейшем не употреблять их в том же контексте. Посылки могут стать слишком общими или слишком частными. Они тогда модифицируются с помощью упражнений. Авторы отмечают существенное усовершенствование преобразований, наступающее после такого обучения.
ANA. Система Макдермота (McDermott, 1979) способна научиться и запомнить способ выполнения новой задачи, опираясь на методы, которые оказались полезными при решении предыдущих задач, т. е.» рассуждая по аналогии, ANA моделирует поведение автоматического управляющего магазином, торгующим красками; она конструирует новые правила продукций, перебирая прежние ситуации и применяя их к новым возникающим ситуациям до тех пор, пока не возникнет очевидной ошибки в связи этих ситуаций. Эта система показывает еще раз, что очень простые механизмы ——в данном случае механизмы обучения—легко и естественно могут быть применены к различным моделям, при этом применение правил продукций оказывается весьма эффективным.
Программа моделирования ACT. Программа, авторами которой являются два психолога Дж. Андерсон и П. Клин (Anderson, 1979) из Университета Карнеги — Меллона, заслуживает специального упоминания потому, что она, с одной стороны, носит универсальный характер, а с другой ——способна к обучению. Эта система была создана с целью промоделировать поведение человека на основе классических экспериментов по «формированию понятий» в психологии.
Изучение системы ACT можно проводить в двух формах: в форме препозициального графа, подобного классическим семантическим сетям в системах искусственного интеллекта для декларативной части, и в форме системы продукций для процедурной части. Добавления к множеству продукций и его модификация достигаются четырьмя различными способами: назначения, подкрепления, обобщения и распознавания (Anderson, 1979).
PS. Продукционная система Ричнера (Rychener, 1976) позволяет переписывать в форме системы продукций такие разные программы, как:
STUDENT Боброва, которая решает алгебраические задачи, сформулированные по-английски;
ЕРАМ Фейгенбаума, способная выполнять тесты на правильное продолжение последовательностей букв;
GPS Ньюэлла, Шоу и Саймона, которая выполняет задачи, поставленные ё различных областях;
программа Пердо и Берлинера, которая играет окончания шахматных партий;
программа Морана, которая строит английские фразы, описывающие ситуации в мире кубиков;
SHRDLU Винограда, которая решает задачи и ведет диалог по-английски также в мире кубиков.
В следующем разделе представлено другое семейство экспертных систем, объединенных использованием предикатов первого порядка и специального метода вывода, известного под названием принципа резолюции.
7.4. Экспертные системы, основанные на логике предикатов первого порядка
Существует классический язык, специально созданный для моделирования формальных человеческих рассуждений,— это язык математической логики. На самом деле правило продукций u ситуация -> возможное следствие" представляет собой теорему, несколько необычно формализованную: это логическое выражение, состоящее из утверждений, которые могут быть интерпретированы как истинные или ложные. Единственное различие состоит в том, что все экспертные правила заранее допустимы (аксиомы) даже в том случае, если их невозможно доказать. Таким образом, правила продукций очень близки к правилам преобразований, известным в математике: формальным преобразованиям выражений, преобразованиям в полугруппах, в формальных грамматиках, в логарифме Маркова. Для луч- ' шего понимания экспертной системы представляется привлекательным использовать формализм, принятый в логике.
Большинство из рассмотренных выше экспертных систем ха , рошо описывается логикой высказываний (гл. 3), в которой все существенные понятия выражаются константами. Сейчас мы опишем последовательно две важные системы, а именно PROLOG и SNARK, основанные на формализме логики предикатов первого порядка (с переменными) и некоторых их приложений. На самом деле язык программирования Пролог, раз-
работанный Алленом Кольмрауэром (1971), в контексте решения задачи понимания естественно-языковой фразы, был создан еще до появления самого понятия экспертных систем.
Язык Пролог
Пролог ——язык программирования, единицей которого является не команда, а теорема логики предикатов первого порядка (разд. 3.1.10). Теорема содержит переменные или параметры, относящиеся к квантору всеобщности: эти переменные могут быть замещены любым правильно построенным выражением языка. Переменные принадлежат n-арным предикатам. Запись P(xlt х2, .. ., хп), где xi ——переменные, а Р ——п-арный предикат, интерпретируется так: 尸{%1, %2, ..., хп) истинно (Colmerauer, 1971 и Roussel, 1975). Сами предикаты в языке Пролог не могут быть включены в сферу действия кванторов. (Если предикаты находятся,под знаками действия кванторов, речь идет об исчислении предикатов высших порядков, т. е. 2-го 3-го и т. д.) (Huet, 1978).
Пролог — специальный интерпретатор для формул логики предикатов первого порядка. Его действие распространяется на предикаты, приведенные к нормальной дизъюнктивной форме. Любое предложение (дизъюнкция предикатов) записывается в виде
(1 Й1 V А2 V ... V 1 /ZZ) V (Ci V с2 V ... V S), что, очевидно, интерпретируется в виде
% 八无2 八■ • • A % n & 八 С2 A ■ • • А С/.
Характерной особенностью языка Пролог является то, что он имеет дело только с хорновскими предложениями, т. е. с предложениями, которые имеют самое большее один иположи- тельный" литерал (справа), другими словами, только одно заключение &. Язык запрещает иметь дело с дизъюнктивными заключениями типа G V С2. Под литералом понимается любой терм hi или с( из предложения, представленного в нормальной форме.,
Различные реализации языка Пролог фактически являются производными от версии языка на Фортране (Roussel, 1975), опирающейся на переносимый интерпретатор (Battani, 1973). В основном Пролог получил распространение в Португалии (Coelho, 1980), Эдинбурге (Warren, 1977), Венгрии (Szeedi, 1977) и Японии. В Японии программа создания ЭВМ "пятого поколе- ння" предусматривает его использование в качестве микропрограммного языка завтрашнего дня. Машина EPILOG, созданная Сансонне и Алии, уже дает пример высокоэффективного
языка программирования Пролог (Тулуза, Университет П. Сабатье, 1982).
Все интерпретаторы для языка Пролог на самом деле являются иллюстрацией доказательства теорем с использованием принципа резолюции. Этот принцип, предложенный еще Эрбра- ном (Herbrandt, 1931), был заново воссоздан и запрограммирован Робинсоном в 1965 г. (Robinson, 1965). Он является обобщением метода доказательства от противного: принцип резолюции состоит в том, что доказывается противоречивость предложения р А П^ и тем самым доказывается справедливость импликации р п q. Этот метод априори является полным и позволяет доказывать все теоремы данной формальной системы, но связан с большим объемом комбинаторных вычислений и недостаточно естествен для человека. Обычно мы очень редко рассуждаем от противного. Тем не менее интерпретирующие программы оказываются эффективнее нас...
На самом деле любое предложение языка Пролог может быть интерпретировано двумя способами: 1) процедурным образом через интерпретатор и 2) чисто логически или декларативно как простое утверждение теоремы в рабочем пространстве (гл. 3) /
Программирование на языке Пролог представляет интерес по трем причинам:
предложения непосредственно выражают полезные утверждения (теоремы);
интерпретатор содержит полностью запрограммированный алгоритм унификации;
дерево поиска, рождаемое множеством попарных унификаций, обрабатывается в системе автоматически.
«Кроме того, резолюция может направляться стратегией, которая фиксирует приоритет определенных предложений, являющихся кандидатами для унификации (разд. 3.6). Предложения отбрасываются в порядке их появления, а внутри каждого предложения литералы отбрасываются справа налево. Эта стратегия является полной.
Версия, реализованная в Марселе, использует глубокий поиск с применением запрограммированной процедуры возвращения назад, что приводит к неполной, но более эффективной стратегии. Для этого употребляется символ /, который играет роль ловушки, препятствующей любому возврату к литералу, который расположен слева от этого символа.
Система Пролог предоставляет также возможность, пользуясь простым формализмом, описывать и решать задачи. Пользователю для формулировки своей задачи остается только найти подходящие предикаты.
PEACE — экспертная программа на языке Пролог
PEACE, разработанная в Тулузе Динкбасом в 1979 г., представляет собой пример экспертной программы, написанной на языке Пролог и предназначенной для анализа и синтеза электрических цепей..
Для цепи, показанной на рис. 7.8, с заданными величинами сопротивлений, индуктивностей и емкостей и не содержащей
Рис. 7.8. Схема электрической цепи для PEACE, источников тока, проблема нахождения результирующего импеданса между точками А и D сводится к доказательству теоремы
Я impedance (Л, D, *Х).
Результат, получаемый методом от противного, будет содержаться в окончательном значении переменной *Х.
Сама цепь представляется с помощью предкатов “равно”, "ветвь'', "кратный узел", позволяющих записать следующие условия:.
«ветвь (Л, В, 〃)》вместе с《равно (£;, £“ о)» и《равно
[а,/» или
■ "кратность узла (В, 5)”.
Основополагающие знания об электротехнике, необходимые для системы PEACE, сводятся к четырем преобразованиям цепей, изображенных на рис 7.9а.
Кроме того, система PEACE должна уметь производить действия с комплексными числами. Сначала система Пролог действует только во множестве целых чисел. В дальнейшем ее база
знаний была расширена до действий во множестве рациональных (с повышенной точностью), и, наконец, до действительных чисел.
Правила определения комплексных чисел также достаточно просты.
叫заа^етька只 саселга Y^^>4 — Zi-2z/<2i + ZC
L(^<§H — z,+ Zz
Crd"& уСхема 疗
小 Звезда“ Треуеи又 ьннк 犷
Рис. 7.9а. Преобразования в системе PEACE.
Преобразования электрических цепей описываются на языке Пролог с помощью предикатов. Например, второе правило принимает вид «Последовательные (Zi, Z2) 4= ветвь (х, f, 4)А ветвь (/, у, Z?)
А различные (f, у)八 простой узел (/) Д вычеркнуть (ветвь 3 f, Z0)
А вычеркнуть (ветвь (/, у, Z?)) плюс (Zb Z2, Z)
А присоединить (ветвь (%, у, Z))»
Внутренняя стратегия PEACE для преобразования цепи состоит в последовательном применении преобразований в указанном выше порядке. Этот порядок соответствует минимальному числу остающихся неясными узлов в сети. Узнавание допустимых преобразований в любой момент происходит с помощью алгоритма унификации и осуществляется языком Пролог. Таким образом, каждое преобразование позволяет определенным образом модифицировать базу данных. Доказывается, что этот процесс неизбежно сходится к цепи, содержащей две точки. Решение было получено чисто алгоритмическим способом.
В подобной системе любая форма знаний ——факты из базы данных, процедуры, резолюции, схемы контроля — представлена единым способом с помощью конъюнкции предложений. Такое единообразие представления является также основной характеристикой другой системы — МЕСНО.
Система МЕСНО и решение задач Механики на языке Пролог
Система МЕСНО решает с помощью исчисления предикатов задачи механики, включающие материальные точки, наклонные плоскости, нити, блоки. Задачи формулируются на обычном языке. МЕСНО способна контролировать свои правила вывода и ведущийся ею поиск решения. Для этого она использует мс- таинформацию, содержащуюся также в форме правил. Система была разработана А. Банди и др. (A. Bundy et al., 1979) в Университете Эдинбурга.
Первая задача этой программы состоит в том, чтобы понимать высказывания, сделанные на естественном языке, в случае, когда из-за обширности области это невозможно сделать просто по ключевым словам (Bobrow, 1975; Charniak, 1978; Gelb, 1965). Здесь даже для простой постановки проблемы требуется глубокое погружение в мир физических явлений.
Вторая задача—- обучение тому, чему, как правило, не обучают в курсах механики: как именно происходит решение уравнений, как конструируются модели, как организуется изучение задачи. Необходимо четко выяснить, в чем именно состоит от- лйчие эксперта от новичка: оба знают примерно одни и те же основные факты и формулы, но первый всегда способен найти им эффективное употребление. Их отличает также степень знания общей модели и структуры контроля. Коллектив ученых Эдинбургского университета имел для глубокого анализа этих отличий два важных отправных пункта. Первый — книга Марп- ля (D. Marple), в которой исследуются протоколы того, как инженеры из Кембриджа сбставлйют уравнения. Это исследование проведено достаточно хорошо, чтобы можно, было определять предложения, готовые к непосредственному кодированию в виде программы. Второй отправной пункт подготовил сам Банди. Анализируя методы решения человеком линейных и квадратных уравнений, он выявил совокупность стратегий, таких, как ^перегруппировка", uизoлиpoвaниe^^. ипривлечение'\ которые могут быть выражены на языке Пролог. Оставалось изложить и привести в систему остальное, в частности найти хорошие правила вывода^ способные строить длинные дедуктивные цепи, начиная от формулировки задачи на естественном языке до ее полного решения.
Пример
Две частицы с массами Ь и с связаны тонкой нитью, перекинутой через блок. Найти ускорение частицы массой Ь.
Синтаксический и семантический анализ этого предложения « (относительно простой) начинается с глаголов и опирается на
законы механики. В данном случае анализ приводит к появлению 22 единиц, необходимых для формулировки предложений:
имеется (частица, pl) правый-конец (Si, el) имеется (блок, р/1) получить (Si, mil) . масса (pl, ml, время-1)коэффициент-трения (pH, 0)ускорение (р2, accel, 90°, время-1)имеется (частица, р2) левый-конец (S1, е2) имеется (период, время-1) измерение (m2, с)имеется (частица, 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) дано ("⑵ найти (accel)масса (р2, m2, время-1)измерение (ml, b)дано (ml)имеется (нить, S1)фиксированный-контакт (el, pl, время-1)фиксированный-контакт (е2, р2, время-1)фиксированный-контакт (р/1, mil,время-1)масса (S-, 0, время-1)ускорение . ((pl, accel, 270°, время-1) дано ("⑵ найти (accel)
имеется (частица, pl) правый-конец (Si, el) имеется (блок, р/1) получить (Si, mil) . масса (pl, ml, время-1)
коэффициент-трения (pH, 0)
ускорение (р2, accel, 90°, время-1)
имеется (частица, р2) левый-конец (S1, е2) имеется (период, время-1) измерение (m2, с)
имеется (частица, 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) дано ("⑵ найти (accel)
масса (р2, m2, время-1)
измерение (ml, b)
дано (ml)
имеется (нить, S1)
фиксированный-контакт (el, pl, вре
мя-1)
фиксированный-контакт (е2, р2, вре
мя-1)
фиксированный-контакт (р/1, mil,
время-1)
масса (S-, 0, время-1)
ускорение . ((pl, accel, 270°, время-1) дано ("⑵ найти (accel)
По методу Марпля отыскивается уравнение, которое выражает искомую величину accel в зависимости от данных ml, m2 и g. Гравитационную постоянную g программа МЕСНО добавляет к условию са«ма. На первом этапе составляются уравнения для сил, действующих на частицы. Например, для частицы pl имеем
ml Xg + натяжениеИ =mi X accel.
Введение новой неизвестной "натяжение-1” требуется используемыми правилами. Программа "знает”,что эта величина имеет смысл натяжения и ей не хватает еще одного уравнения для решения задачи. Тогда она использует тот факт, что натяг жение на другом конце нити должно быть тем же самым и составляет уравнение для сил, действующих на частицу р2. Исключая переменную "натяжение-1”,программа получает результат. Испытания программы проводились и на других, более сложных примерах.
Описание системы
База физических знаний •
Система имеет упрощенное представление о мире, подчиняющемся законам ньютоновской механики. Она может работать только с объектами 0, 1 или 2 измерений. Точка — нульмерный объект, и ее роль может играть частица с массой или простая отметка на плоскости. Линия представляет собой одномерный объект и имеет два не совмещенных друг с другом конца. Эти простые понятия используются при описании многих других объектов. Например, блок, человек, груз могут быть описаны как точки, а такие объекты, как шнур, нить, брус, планка, хотя и обладают различными физическими свойствами, могут быть представлены в виде линий.
Связь между объектами описывается с помощью предикатов. Имя предиката определяет вид связи, а аргументы служат для уточнения находящихся в связи объектов, их порядка, условий объединения, направлений и знаков. Конкретная ситуация определяется значениями аргументов при вызове. Пример связи приведен на рис. 7.96. “АС” определяет вызов процедуры
Формулы (CiMbl, II
Bacmuqa,"。〃,勿e"),F=M*Q"工,сити咚叫3p”一
AC: Миасса, &астима?М, ' вреня)
电астаб几只2图аа-ускоренна , связь меоюЗу®аст〃*а> 疗名 8рема)А) 'параметрами
Су死hQpnbie - саль】 [частиуа? /也 брем% 川
Рис. 7.96. Пример связи между объектами.
типа ^создать", которая выполняется с помощью модуля поиска названных величин. Очевидно, здесь могут потребоваться глубоко рекурсивные структуры базы знаний, поскольку, например, такое понятие, как “суммарные силы^, принадлежит области данных другой формулы.
Логика управления
Логика управления системы МЕСНО написана на языке Пролог, но запрещает нормальную для Пролога стратегию ре- шения: все действия МЕСНО последовательно разлагаются в подцели с помощью одного из 150 правил вывода из базы знаний. Каждой выделившейся подцели присваивается обозначение Р для “непосредственны^'', АС для “с созданием" или SC для “без создания". Эти обозначения используются на рис. 7.10 для пояснения стратегии решения.
Нормализация. Если возможно, каждая подцель сначала уточняется в соответствии с законами механики (если отыскивается ускорение, то обычно по отношению к земле) или выражается с помощью предикатов, более удобных для системы.
Вывод, МЕСНО ищет правило, правый член которого соответствует поставленной цели. Посылки этого правила определяют новые подцели. Поиск ведется в глубину сначала с неизменном порядком правил. Правила МЕСНО управляют созданием новых объектов, необходимых для решения задачи.
Классы подобий. Работа системы МЕСНО основана на свойствах используемых в ней предикатов, которые .могут быть транзитивными, симметричными или рефлексивными. Они сгруппированы в классы подобия, которые изоморфны деревьям, образованным множеством предложений Пролога.
Корень дерева является единственным представителем класса и может быть унифицирован, как и другие правила. Например, правилу равенства соответствует следующая аксиоматика: .
равно (а, 6) <— представитель (а, корень) А представитель 也 корень)
представитель (а, а) <- является (а, корень)
представитель (а, корень) <—дуга (а, Ь)八 представитель
(Ь, корень) ' которая позволяет упорядочить в дереве все равные элементы. Кроме равенства в системе имеются еще три предиката: "та же позиция,\ и единица .измерения,> и u пер иод времени", которые
относятся к точечным объектам, занимающим в данный момент одинаковую позицию, величинам одинаковой природы, выраженным в различных единицах, отрезкам времени.
Выполнение
Первый шаг. Сначала система МЕСНО не рассматривает уравнения или соотношения, которые вводили бы новый объект (вызов подцелей только вида D или SC). Это ограничение впоследствии отбрасывается.
Прогнозирование. Система МЕСНО использует семантическую информацию о физическом мире для того, чтобы решить, является ли промежуточная цель приемлемой или для прогнозирования свойств решения: длина должна быть положительным числом, угол по отношению к плоскости меньше 180°. Даже такая форма знания влияет на выполнение правил равенства и принятие решения.
Метод Марпля. Для нахождения неизвестной величины % система МЕСНО последовательно выполняет следующие действия: а) описывает неизвестную, т. е. уточняет ее физическую природу (например, что это — масса), и определяет связанные с ней понятия (ускорение, направление движения, время); б) ищет соотношения, т. е, составляет список возможных формул; в) находит подходящее уравнение, т. е. отбирает из предыдущего списка наилучшую подходящую к данной ситуации формулу, ориентируясь на смысл известных параметров, г) проверяет, является ли найденная формула действительно независимой от уже известных уравнений, чтобы из нее можно было определить другие неизвестные.
Формальные алгебраические вычисления. Кроме классических методов, основанных на правилах переписи, применимость которых определяется самим Прологом, вычислительный модуль использует фактическую информацию в процессе решения для исключения физически невозможных ситуаций типа неустойчивого равновесия (в частности, в задачах движения по траекториям типа русских гор) (Borning, 1981).
Включение в систему правил, специфичных для каждой задачи, осуществляется шаг за шагом, главным образом с помощью составления протоколов решения. При этом за основу берется либо метод Марпля или разработанные самими авторами методы.
Результаты
Система реализована на ЭВМ DEC-10 с памятью 80К слов и с длиной слова 36 бит. Блок естественного языка содержит 900 предложений, модуль вычитания — 600 предложений,
алгебраические вычисления — 200. Интерпретатор Пролог занимает 20К памяти.
Испытания системы проводились главным образом по трем направлениям: механические блоки, движение частиц при постоянном ускорении, движение частиц по сложным траекториям. Только часть задач может быть сформулирована на естественном (английском) языке, остальные задачи необходимо формулировать в терминах предикатов. Разрабатываются также основы решения задач, включающие рычаги, сооружения, снаряды,
Рис. 7.11. Задача на движение частицы.Рис. 7.11. Задача на движение частицы.моменты инерции, относительные скорости, гидростатику. Приведем пример формулировки задачи: Частица, находившаяся в состоянии покоя, начинает движение из точки Р. При заданном радиусе R/ найти наименьшую величину R2, при которой частица с。- в^ршит полный оборот по окружности С1. (Окружности С1 и С2 являются касательными друг к другу в точке Q (рис. 7.11).)
Рис. 7.11. Задача на движение частицы.
Рис. 7.11. Задача на движение частицы.
Чтобы сформулировать эту задачу в логике первого по
рядка, окружности разрезают на три связанные друг с другом части с помощью позиционных отношений. Условия можно описать с помощью 20 единичных предложений, которые играют для системы ту же роль, что для нас рисунок.
В литературе описывается полное решение с помощью системы МЕСНО некоторых сложных задач, условия которых (записанные на обычном языке) занимают более одной страницы текста.
Преимущества Пролога и исчисление предикатов
В первую очередь отметим, что преимуществом экспертных систем, написанных на Прологе, является единообразие пред-, ставления элементов: факты, правила выводов, сложные процедуры, управляющие структуры выражаются в единой форме соединительных' правил. Из единства механизма вычислений при реализации принципа решения следует простота программирования и семантическая простота программ. Экспериментально показано, что эффективность Пролога превышает эффективность Лиспа. Поэтому экспертная система MYCIN была
полностью перепрограммирована на Прологе, в результате чего ее эффективность существенно возросла (Warren, 1977), Кроме того, Пролог предоставляет возможность доступа к дереву доказательства, средствам ввода-вывода, составляющим правилам и механизму возврата назад при движении по дереву доказательств.
Но главный интерес к Прологу, без сомнения, вызывает возможность составления программы, управляющей выполнением правил (т. е. непосредственно процессами получения выводов) и работающей на метауровне. Это важно при работе с базой знаний большого объема. Пролог позволяет также использовать правила как аргументы для предикатов более высокого уровня и, таким образом, использовать возможности логики второго порядка-. При этом новые знания могут быть введены или исключены командами AJOUT и SUPP.
Язык управления для Пролога
Эрве Галлер и Клодии Лассерр предложили (1979 г.) метаязык для управления выводом с помощью включения в Пролог и в нормальную стратегию метаправил двух типов. По правилам первого типа Мета*厶 определяет символ для унификации в только что усвоенном правиле. Правила второго типа Мета-С служат для выбора предшественника-правила среди множества правил-кандидатов. Правила Мета-厶 служат для локальной обработки контекста, “заморозки” некоторых кандидатов или для включения обязательного возврата. Идея состоит в том, что если какое-либо действие может не выполняться, его продолжение оказывается бесполезным. В результате выполнения правил Мета-С каждому правилу-кандидату присваивается приоритет в зависимости от определенных условий, связанных с унификацией.
Например, правило
Meta-C (Р, L, /г, /?) •<= Ct А С2 А . • • А Сп
утверждает, что при выполнении условий &, С2,…,Сп каждое правило, унифицируясь с правилом 口Р V L, получает приоритет k начиная с того момента, когда R унифицируется с символом, удерживаемым на предыдущем этапе. Эти метаправила дают пользователю возможность для адаптации стратегии к конкретной проблеме.
Система METALOG, написанная в Тулузе М. Динкбасом, предоставляет в распоряжение пользователя команды, управляющие стратегией, и метаправила. Такого рода управляющие предикаты обеспечивают системе Пролог большую эффективность.
Сравнение исчисления предикатов в Прологе и продукционных систем
Между условиями Хорна, используемыми Прологом, и продукционными правилами существует сходство. Различия касаются прежде всего того, что связано в Прологе с предпро- граммируемыми управляющими структурами (разд. 7.4.1). Принцип резолюции с линейной стратегией вывода однозначно определяет тип и порядок предпринимаемых попыток. Тем не менее в Прологе остается возможность модифицировать эту стратегию. Преимущества Пролога состоят в полностью запрограммированном общем алгоритме унификации и в механизме управления деревом поиска И-ИЛИ, связанным со свойствами интерпретатора.
Таким образом, в отличие от продукционных систем Пролог постоянно увеличивает число правил (предложений), поскольку каждое решение добавляет в систему новое предложение до получения пустого правила. С другой стороны, системы, основанные на исчислении предикатов и принципе резолюции, смешивают базу правил и базу фактов. Отметим, в частности, что предположения и выводы играют одинаковую роль и поиск может начинаться как с предположений, так и с выводов в обратном порядке. Направление поиска неявно уточняется при каждой резолюции и может меняться. В классических же продукционных системах правила обрабатываются только в одном направлении.
Если в Прологе сначала не предусмотрена схема вывода с помощью коэффициентов уверенности, то ясно, что интерпретатор можно легко дополнить возможностями вычислений КУ, как, например, в системе MYCIN. Используя модульность, в Прологе легче выполнять исправление или добавление единицы знаний, чем в продукционных системах. Однако Пролог все же остается процедурным языком программирования высокого уровня и может вызвать затруднения у неподготовленного специалиста-эксперта. 、
Безусловно, существует и другое решение (кроме использования Пролога) для интерпретации логики первого порядка. Оно состоит в использовании обычноа^дедукции.
модус поненс: из р н (р n д) следует q, или модус толенс: из 7 и(Р 口 9)следует 口 р
(в отличие от системы MYCIN, которая работает по обратной цепочке, и от Пролога, который начинает одновременно в двух направлениях): При движении по дереву поиска необходимо частичное возвращение назад. Однако обычный, понятный для экспертов вывод делается с помощью модус поненс.
Система SNARK (Symbolic Normalized Acguisitiqn and Representation of Knowledge), к краткому описанию которой мы переходим, является попыткой дальнейшей разработки в этом направлении.
Язык SNARK — пример языка первого порядка
Язык SNARK построен на логике первого порядка и представлении знаний в реляционной форме. В противоположность системе MYCIN, которая ограничивается пропозициональным исчислением, здесь предусматривается постоянное использование переменных. Фраза “природа (%) = человек" означает в SNARK ““ля каждого х, который является человеком''. Точная форма связанного с этим силлогизма имеет вид
«если природа (х) = человек, тогда смертен (х) == истинам.
SNARK из факта “природа (Сократ) = человекм выводит факт
«смертность (Сократ) = истина».
Это правило выполняется для всех тех х, для которых природа (х) = человек.
Используемые отношения являются по соглашению бинарными. В записи правил переменные фигурируют в скобках.
Система предусматривает также возможность uвложенного" определения свойств, как во фразе
«возраст (крыша (х)) = min (150, возраст (стена (у)))》.
Ссылки на объекты производятся не с помощью имен, а только через совокупность связанных с ними свойств. Таким образом, геологический объект G, размещенный под слоем С, имеющим рифтовую, природу и возраст, превышающий 100 лет, будет описан следующим образом:
под (С) = G
природа (б) = рифт
возраст (G) > 100
В SNARK могут быть выражены чисто математические отношения. Например, свойство транзитивности понятия “пол”:
ЕСЛИ под(х) = (у).
ЕСЛИ под(y) = (z)
ТО под(х) = Q)
Из этих свойств следует, что язык SNARK является языком, близким к семейству языков Пролога, но отличается тем, что
в нем используется не резолюция, а естественная дедукция и он не ограничен предложениями Хорна. Порядок посылок, как и порядок правил, не имеет значения. Однако такая гибкость ввода знаний достигается ценой угрозы комбинаторного взрыва. Действительно, подготовительной операцией для оценки является замена переменной правила множеством объектов базы фактов. Угроза комбинаторного взрыва устраняется с помощью стратегии динамической оценки правил, идея которой заключается в том, что оценка начинается с известных в данный момент величин и последующего распространения символьных значений (гл. 8.).
Таким образом, система SNARK обладает обычными свойствами декларативного языка, такими же, как и экспертные системы (модульность, повествовательные знания) и решающие программы (возможность формальной обработки, формулировка предположений и движение по цепочке назад, нормализация и унификация выражений). В настоящее время он используется в геологии, медицине, археологии, математике, системах автоматизированного обучения, физике, антропологии, управлении АЭС и в комбинаторных задачах оптимизации для карточной игры в бридж. Ниже более подробно изложено его частное применение — формальное вычисление интегралов.
Вычисление неопределенных интегралов в системе SNARK
База знаний в этом случае состоит главным образом из эвристических правил, которые определяют стратегию добавления в конкретной ситуации. При вычислении интеграла, например если интегрируемое выражение представляет собой сумму (или сумму, возведенную в некоторую степень), следует разложить интеграл на сумму интегралов. В системе SNARK соответствующее правило записывается следующим образом:
Пример 1
ПУСТЬ интегрируемое-выражение (/) = (е)
ЕСЛИ сумма (е) -истина
ТО / <— интеграл (первый член (е)) + интеграл (второй член (е)) Если выражение е содержит тригонометрическую функцию, то может быть рассмотрена замена переменной.
Пример 2
ПУСТЬ интегрируемое-выражение (г) = (е)
ПУСТЬ член ® = (f)
ПУСТЬ головной-оператор (2)= arctrig。
ТОГДА замена-переменной (е) = С)
Отметим следующее:
Вызов этих правил происходит только по необходимости, т. е. когда по крайней мере одна из посылок соответствует одному из заключений предыдущих правил.
Переменная (е) играет роль глобальной переменной. С ее помощью описываются все обрабатываемые объекты и выполняются на них ссылки. Такое возможно только при благоприятных обстоятельствах, которые встречаются не во всех приложениях.
Некоторые посылки играют роль определений. Их описание включает слово ПУСТЬ. В этом случае оценка правила начинается с части ПУСТЬ, а часть ЕСЛИ тестируется, только когда известны аргументы.
В базе фактов также присутствуют переменные величины (в математическом смысле слова).
Для передачи параметров предусмотрен определенный механизм. Так выражение изамена-переменной (е) = (/)” регистрируется как в BF, а результатом его обработки является выполнение правила замены переменной, которое записывается следующим образом: “если необходимо осуществить замену переменной у = /(х), нужно выразить e^dx как функцию только от г/ и dy'\
Пример
ЕСЛИ замена переменной (е) = f(x)
ТО вычислить dy = производная f (х) • dx унифицировать (с, у, dy)(а)
проверить на отсутствие (е, х)(Ь)
Два последних действия выполняются следующим образом:
Везде в выражении применять два правила '
f (х) и dy->f(x) dx.
Проверить, что после этой операции интегрируемая величина не содержит переменную х.
При сравнении с классическим программированием обнаруживается следующее:
Не надо упорядочивать правила.
Правила независимы: они связаны только с помощью промежуточных утверждений над единственной глобальной переменной е — интегрируемым выражением, которое может видоизменяться по ходу решения; например, / = \ 々е =尼 \ е или
el + е2.
Одному и тому же интегралу могут соответствовать несколько правил. Начальный выбор правила определяется с помощью приоритета, связанного со сложностью выражения под знаком суммы. В случае неудачи делается другой выбор.
Полный набор правил для исчисления интегралов содержит 86 правил стратегического характера, 368 правил вычислений тригонометрических, степенных и логарифмических выражений.
Полный набор правил (стратегий интегрирования) должен быть относительно большим. Практика показывает, что какие- то правила могут быть забыты, другие — недостаточно точны. Наглядность записей на языке SNARK упрощает выполнение необходимых модификаций. В этом смысле он довольно близок к обычному языку записи математических выражений. Трудно даже представить себе, скольких усилий потребовало бы выполнение той же работы на классических языках программирования.
Язык SNARK позволяет описывать как очень общие правила (приведенный выше случай), так и весьма специфические, например:
I =^[[/^—Зх2— 2]dx
ЕСЛИ характер (е) = дробь
ПУСТЬ знаменатель (e) = (d)
ЕСЛИ дробная степень (d) = истина
ПУСТЬ (/) = первый-член (d)
ЕСЛИ полином (/) — истина
ЕСЛИ степень «) = 2
ТО идентифицировать 亿 ay2 + 6)
ЕСЛИ (а < 0) А (^ = 0)
ТО замена-переменной (е) = (/) выражение (0 — — cos 0
Роль переменных в системе SNARK
В предложенном представлении переменные пересылаются в записи базы фактов. Они играют 4 различные роли, соответствующие хорошо известным в программировании стандартным ситуациям, которые описываются в том же формализме функциональных обозначений:
индексация содержимого базы (связный список);
параметризация правил (передача аргументов);.
вызов цели (подпрограммы);
управление деревом поиска (приведение в порядок стека).
Рассмотрим эти роли более подробно.
Индексация. Каждая переменная базы фактов имеет значение; связанное с объектом, который определяется с помощью известных в данный момент соотношений (рис. 7.12). В частности, может оказаться, что он не обладает ни именем, ни характерными свойствами. Кроме того, имеется прямой доступ ко всем записям, определяющим одно свойство и имеющим одно значение (снова приходим к реляционной схеме базы данных).
Рис. 7.12. Объект в базе фактов SNARK.Рис. 7.12. Объект в базе фактов SNARK.
Рис. 7.12. Объект в базе фактов SNARK.
Рис. 7.12. Объект в базе фактов SNARK.
Параметризация. Переменные правил являются формальными переменными, замена которых происходит в соответствии с правилами математики. Правила можно рассматривать как теоремы, действующие для всех семейств объектов, для которых справедливы предположения. Вызовы правил осуществляются с помощью значений параметров, поскольку именно ^значения объектов базы управляют выполнением правил.
Вызов подпрограммы. Конкретный результат работы правила зависит от значений переменных, и его получение может быть связано с вызовом новой цели. Например, запись "замена переменной (е)" позволяет запомнить возможную цель замены переменной. Данное обстоятельство будет затем учтено каким- либо другим правилом. Это представляет собой оригинальный метод вызова процедуры, поскольку в любой момент могут конкурировать между собой несколько целей-процедур. Тогда окончательный выбор осуществляется с помощью правил более высокого уровня (метаправил), которые учитывают трудности достижения различных целей.
Управление деревом поиска. По природе решаемые задачи Требуют возврата назад в процессе решения. Это происходит в тех случаях, когда правило выполняется слишком рано, неудачно определен набор переменных или поставленная задача не имеет решения и надо проверить другие возможности. Мы снова приходим к управлению классическим деревом, которое иногда осуществляется с помощью рекурсивных программ. В этом случае глубина рекурсии зараадее неизвестна и может достигать очень больших значений. Индексация переменных позволяет осуществить управление гораздо проще: задание конкретного набора выполняемых правил определяет параметр индексации,
основанный ? на всех '巾актах/ Йзвёс^ных на Данный момейт. Рассмотрим, ^например, выражение %「которое; после замены переменной^и обозначим чер^з ^и. Если впоследствии ,решение задачи зашло в тупик, информация о ev теряется и поиск возоб^ новляется от первоначального выражения. В этом случае стратегию использования дерева, поиска можно определить с помощью метаправил и отдать предпочтение выражению наименьшей сложности, т. е. управление поиском осуществляется извне программы (ирежим попыт.окп (Nilsson, 80), (Farenny, 85)).
С помощью логики первого порядка системы SNARK можно, например, за несколько дней составить и реализовать блок правил для формального интегрирования. Время вычисления интеграла в среднем составляет 1 с на ЭВМ ткпа,НВМ 370/168 для интегралов вида:
\ (^3arcsin ^)/(1 — x2) dx.^
у Зыигрыш во времени, реализации по сравнению с класснч氏 скйми методами рчевиден. За 〜10 с может быть выведена в среднем тнся%а, фактов,…
В^^ная характеристика^ системы состоит в том, , что вывод# т. е. нахождение гюследовательности используемых правил, легко осуществляется в: каждое случае. Более того, используя йачальнйе знаний,' система по Требованию находит поддерево поиска, которое окажется полезным для доказательства какого- либо факта. Благодаря этому подобные экспертные системы Стайовятся автоматизированным инструментом подбора полез- йых сведений. 「
Мы рассмотрели несколько экспертных систем, при разработке которых используется декларативный подход (база Знаний независима от программы). Полезно сравнить их работу с работами классических информационных систем. В частности, в разд; ,7・5 поставлены проблемы мощности и эффективности нсно*』§зу^мМх языкбв, описаны; современные направления йс- следований/,:
В разд. 7.6 мы попытаемся сформулировать преимущества й недостатки декларатиййого пбдхрда к созданию экспертных си; стём по сравнению с обычным процедурным подходом, испрль^ зуемым специалистами пб информатике. . В разд. 7.7 рассмотрены выражения, с помощью которых осуществляется управление самим языком:, фундаментальное отличие эксперт: нМх систем от систем с правилами перезаписи сострцт в мета
знании.
Сравненце^декл ар ативногр и процедурного цбдходов,v
Этй два подхода возникли вместе с Первыми、усйешны^и реализациями экспертных систем, йспоЛьзующих базу знаний в форме продукционных правил типа: .”」
,:.:MG. MD"
Частйчно опйсаннай, ситуация '—> Ожидаемое заключение
Например», информация :丁“
^Все американскйе политики лжецы1*
вводится в форме "“'■
ЕС^ЛИ характер (х) = политик”
-ЕСЛЙггосударственность (х) = а^^риканец ,,
ТО лжец (х) == истина ,
Эти. подходы возникали также и в классическом программирование. Они привели к нрртиврстрянйю аппликативного ц повелительного, рекурсивного и итеративного^ статического и динамического, функционального и описательного, вообще в противостоянии между процедурами и описаниями. Идеал, конечно же, заключается в описании (задачи, программы, знания) независимо от используемых методов. При декларативном подходе к продукционным правилам и экспертным системам дбступ к информации осуществляется с помощью унификации или ограниченно j унификаций .(называемой сравнением с образов и фильтрацией) (Waterman, Hayes-Roth, 1979; Nilsson, 1980; Farreny, 1980р.;
Ответ на вопрос 44Лжец ли он?" отыскивается с помощью двух обращений,-к базе фактов. А из утверждения иОн честный политик" выводится с помощью унификации “Он не амег риканец".,*一
Напротив, в процедурном подходе необходимо заранее предвидеть вопросы и составить процедуру для ответа на каждый из них. Если кто-то является политиком, то, чтобы узнать, честный он или нет, необходимо, проверить его государственную принадлежность и т. д. По сути ; процедура дает поток информации и дает синтаксическое описание его" преобразования.
Что касается декларативных формулировок, то они цо определению выражают, фактическое знание чистр повествовательным образом независимо от его будущего использования. Это знание пополняется неупорядоченно и имеет полностью модульную структуру. Отметим здесь основной момент» что декларативные формулировки выражают отношения с помощью. Ьёман- тической информации.
Критика «процедурной* инфррматики или «языки программирования не являются языками»
Слово ordre во французском языке имеет два значения: 1) действие, с помощью которого руководитель проявляет свою волю (командовать, заставлять, приказывать), и 2) правильное расположение, последовательность или связку (ряд, вереница). Оказывается, что оба значения этого слова соответствуют двум фундаментальным свойствам современных языков программирования, а точнее свойствам алгоритма. Запись алгоритма на языке программирования
состоит исключительно из инструкций (первое значение);
представляет собой строгр определенную последовательность последних (второе значение).
Из этого следует, что на доступных языках программирования нельзя выразить фразы: иНа Парижской бирже повышается курс доллара'* или ^Женевское озеро очень приятно в хорошую погоду*\ так как они не содержат ничего, что могло бы быть выполнено в определенном порядке. Кроме того, если нет дополнительной информации, они независимы . друг от друга.
Были предприняты попытки устранить одно из этих драконовских ограничений, связанное с порядком инструкций, с помощью новых примитивов (First i, Next i, т; e. первый и следующий). Оказалось, что в определенных случаях порядок следования инструкций может быть изменен без изменения алгоритма, а к языкам программирования, обладающим таким свойством, применяется термин “без последствия" (в них одна и та же переменная не используется дважды). Исследования в этой области оказались связанными с такими проблемами^ как параллелизм в программировании, сети Петри, программные схемы.
Но в действительности основная проблема программирования состоит совсем в другом: мы с трудом составляем алгоритмы, потому что само это понятие нам несвойственно. Программируя, мы решаем настоящую головоломку. Мы составляем Алгоритм из разрозненных кусков, потому что в действительности наше знание является модульным и каждый такой модуль содержит от четырех до шести строк.
Кроме того, как поедоставить в распоряжение ЭВМ информацию тапа: иЭДС U, сопротивление R и ток /, протекающий по электрической цепи при комнатной температуре, связаны между собой законом Ома U — R/”?
Если подобную информацию можно поместить в базу дан^ ннх, останется только умело ею распорядиться, т. е.
обращаться к ней только при необходимости;
в случае возникновения такой необходимости иметь в виду; что не только U является функцией Л и % но н /? -^ функция U и / и / ——функция U н R. Даже если из трех значений U, R н I неизвестными являются два, то все равно можно использовдть некоторые соотношения, например для двух параллельно включенных сопротивлений справедливо Rl/R2 = 12/11.
Очевидно, нто, когда применяется этот закону он должен в свою очередь использовать другие законы, в данном случае законы алгебры и анализа (упрощение, нормализация). Таким образом, для языков программирования требуется полная информация. Для работы алгоритма необходимы все те данные; использование которых было предусмотрено при его составлении. После того как алгоритм отработал/ уже невозможна никакая параметризация, нет никаких степеней свободы.
Ставящий диагноз врач, работающий над проектом инженер, доказывающий теорему математик вынуждены использовать неполно описанные ситуации. Из этих неполных данных они выуживают все, что возможно; а затем, в случае необходимости, продолжение работы строят на гипотезах. Каждая возникающая ситуация является новой. Ходом их рассуждений не управляет никакая полная и заранее установленная схема, их действия совершенно не похожи на работу привычных алгоритмов. ' .
Эти замечания говорят о том, что классическое программирование не включает громадную область обработки информации. Речь идет о всех тех областях, где человек использует фактическую информацию, обособленные правила, неполно описанные стратегии и приему. Обработка таких данных по природе не является алгоритмической. Конечно же неплохо иметь в распоряжении подобный алгоритм, но. к сожалению, это не всегда возможно. Совершенно новый подход к решению подобных проблем, как мы уже видели, используется в экспертных системах, появление которых связано с конкретными потребностями в различных приложениях (биология и химия) и с трудоемкостью составления программ.
Управляющие структуры в экспертных системах
Заранее ясно, что управляющие структуры экспертных систем (ЭС) и процедурных программ (ПП) должны сильно различаться. В ЭС управление является ^открытым1*. Правило может быть вызвано в любой момент вне зависимости от других правил в базе фактов, описывающей данную конкретную ситуацию. Происходит чередование циклов выбора и выполнен ния правил, а после каждого цикла все перестраивается.
порядок; выполнения, правил определяется динамически. В ПП управление сильно локализовано. Основным средством управления является последовательный порядок выполнения инструкций. таких, как ЕСЛИ-ТО-ИНАЧЕ1, ДЕЛАТЫ, ПОВТОРЯТЬ ПОКА, которые работают с небольшой, частью параметров, описывающих данную ситуацию. Ход выполнения инструкций гораздо меньше связан с данными, небольшие изменения во входных данных, как правило, мало влияют на выполнение процедуры. В ЭС информация легко доступна. Способ ее использования неявно подразумевается и не определяется содержимым
Таблица 7Л. Сопоставление ЭС и ПП
Знания
Управление '
Вывод
Процедурные про-
Кодирован-
Кодированные
Черный ящик
граммы (ПП)
ные инструк-
инструкции
ции
Доступный,
Экспертное системы
Данные
Данные
(ЭС)
правила
■ в форме
явный,
и факты
метаправил■
прозрачный
правил. Этим занимаются метаправила и интерпретатор. Обратная ситуация наблюдается в ПП. Механизм управления прозрачен, а информация растворена;в самих процедурах и используемых представлениях данных (табл. 7.1).
Использование ЭС необходимо при наличии больших баз знаний, в то время как для решения локальных задач наиболее подходят процедурные программы. Этому не противоречит то, что в правйх частях некоторых правил предусматривается вызов процедуры; Для сохранения основного принципа и преимуществ ЭС необходимо, чтобы такие процедуры не вызывали взаимно друг друга и всегда располагались в конце цепочки (в правой части правил)..,
Продукционные правила и процедуры. Примеры
Два следующих примера иллюстрируют общий принцип работы продукционных систем, причем в неблагоприятных случаях, когда процедуры являются итерационными. Эти примеры являются классическими и показывают, что всегда можно, не вводя дополнительных переменных, четко разделить операции в элементарны^ модулях, выраженных в форме условных правил. Во втором примере, где в отличие от первого все сделано
для полного разделения правил и их' управляющей структуры, мы приведем хорошо известное двойство продукцидййых систем; 一 :
Пример 1. Инверсия цепочки символов с помощью алгсфит- ма Маркова. 〔
* % Xу%% X К二二一1謂額% X* % Xу%% X К二二一1謂額% X
* % Xу%% X К
二二一1謂額% X
* % Xу%% X К
二二一1謂額% X
Символы 展 и % являются управляющими и не могут замещаться. х н д могут унифицироваться с любой непустой цепочкой символов. Список правил упорядонен сверху вниз. Правило (R5), которое определяет пустое действие, отмечает конец процедуры.
Инверсия цепочки символов слова МОТ для предыдущей системы Маркова:
制匐盥靠吋LllTEIIEl制匐盥靠吋LllTEIIEl
制匐盥靠吋
LllTEIIEl
制匐盥靠吋
LllTEIIEl
При выполнении этой процедуры берутся последовательно все символы цепочки и прмеща^тся слева от уж^ инвертирован- ннх, а затем удаляются управляющие символы.
Пример 2. Имеются три следующих правила, в которых ч^- рез Cl, С2 и СЗ обозначены произвольные последовательности точек, дозможео пустые [Post, 1936]:
(Правило /) //С1/С2/->/С2/.
(Правило О /С1/С2/->/С1/С2//
(Правило /и) / • С1/С2/СЗ/Т/С1/С2/С2СЗ/
Символ / является незамещаемой константой. Входная последовательность имеет вид
р точек q точек
Эти три правила выполняют умножение двух целых чисел р и q, представленных в единичной системе. В данном случае правила унифицированы с входной последовательностью в произвольном порядке. Кроме того, они рассматриваются как продукционные, и унификация должна производиться с их левыми частями (разд. 7.3.4). Таким образом, если входная последовательность имеет вид V"-/—/, то последовательно получим
с помощью правила i :/.../....//
с помощью правила т :/../••••/••••/ (СЗ — пустая)
с помощью правила m :/./....//
с помощью правила т ://. .../•'/
и с помощью правила f ://
Замечание. С момента появления информатики мы привыкли мыслить в терминах процедур, а. не в терминах перезаписи. Поэтому не удивительно и заранее ясно, что продукционные системы для нас в некотором роде чужеродны. Но как вы думаете, не напоминает ли приведенный выше пример манеру счета маленьких детей?
В обоих приведенных примерах механизм вычислений представляется громоздким. Более предпочтительным был бы формализм языков программирования, так как эти ситуации являются явно алгоритмическими. В отличие от этого формализм продукционных правил, представляющий собой множество неупорядоченной информации, обладает преимуществом, которое । ■ заключается в повествовательном типе формулировок, независимых одна от другой, как в случаях утверждения наблюдаемых фактов или правил решения математических теорем, грамматических правил, постановки медицинского диагноза, химических Исследований, разработке фюзеляжей самолетов, электронных схем (разд. 7.2). И не исключено, что после определенного числа попыток будет сформирован пакет правил и оформлен в виде законченной процедуры.
Производительность экспертных систем
Формализм продукционных правил представляет собой не что иное, как внешнее представление знаний. Большая часть систем ^компилирует" базу правил, чтобы получить эффектив-
ное внутреннее представление, которое выражается в структурировании знания путем группировки в списки правил и посылок (как в Лиспе). Мы опишем две такие системы: POLITICS, разработанную Дж. Карбонеллем (1978) и использующую структуру вложенных правил, более богатую чем исходный формализм, и PROSPECTOR (Duda, 1980). использующую мультиграфы. Отметим также машины вывода OPS и TANGO, которые интересны тем, что применяют другие пути оптимизации выполнения правил с помощью их внутреннего представления с уменьшением времени вычислений за счет использования большего объема памяти. В обеих системах интерпретация уступает место компиляции, так как,облегчается определение фазы выполнения правил. Важно отметить, что структуризация знаний возлагается на систему, поскольку в общем случае она претерпевает глубокие изменения при изменении базы правил.
В последнее время некоторые специалисты по информатике используют моделирование с помощью сетей Петри (Petri, 62). Между этим моделированием и внутренними представлениями в экспертных системах существует глубокая связь. В частности, uпpeдикaтныe^^ сети Петри являются не чем иным, как повторным открытием продукционных систем, основанных на логике первого порядка. Отметим также, что модульность систем правил является существенным показателем производительности систем. Действительно, активизация правила происходит ассоциативным образом, а не в порядке, строго заданном процедурой. Правила активизируются и, возможно, выполняются, активизируя тем самым новые правила, и т. д.
В общем случае, поскольку могут быть выполнены сразу несколько правил и все, кроме одного, должны ждать своей очереди, а также поскольку каждое правило может требовать выполнения нескольких заданий, задания обычно помещаются в очередь в ^записную книжку" (агенда). Записная книжка представляет собой структуру данных, доступ к элементам которой регулируется с помощью приоритетов или, в более общем случае, предикатов. Нет необходимости рассматривать случаи, ко- торые не соответствуют данной ситуации (инструкции и тесты в классическом программировании). Базой фактов или базой данных вызываются только те правила, которые нужны. Для различных данных также весьма различны выводы и решения. Представляется, что это должно быть непременным условием высокой производительности. Не следует обвинять случай, если сам человек не заботится о правильном построении алгоритма. Даже для такого тривиального случая, как умножение двух чисел, мы всякий раз учитываем имеющиеся данные: более длинное число пишем вверху, кроме тех случаев, когда оно
содержит нули, единицы или повторяющиеся цифры, а более короткое ——внизу, если это возможно.
Практика показывает, что отладка правил осуществляется просто и быстро. Всего лишь несколько минут требуется после обнаружений ошибки при выполнении правила на ее исправление и/или Добавление нового правила. В отличие от этого в программе' обнаруженная ошибка не всегда может быть легко исправлена йз-з^ "системного эффекта**, связанного с последовательном выполнением инструкций. На исправление ошибки в этом случае ^ожет потребоваться, например, несколько часов. Она должна выполняться обязательно программистом, который в дантюм случае выступает в роли дорогостоящего и медлительного посредника между экспертов и программой.
Структурированные правила в системе POLITICS
Жесткая структура ЕСЛИ-TO, использовавшаяся до сих пор, может быть легко дополнена и преобразована в структуру ЕСЛИ-ТО-ИНАЧЕ, а также использоваться во вложенных структурах ЕСЛИ. Рассмотрим это решение ниже. Его очевидное преимущество состоит прежде всего в том, что условия выполнения приближаются к собственно действию, а также становится более экономной запись посылок, общих для нескольт ких ситуаций. Подобные системы были предложены И. Гол Стейном (1977) и Дж. Карбонеллом (1978).
Например, программа Карбрнедла POLITICS вызывает правила по нх контексту, используя «почерк» (Schank, 77) как результат исследований свойств естественных языков. Затем выполнение Осутцествляется много раз. Цель системы POLITICS— моделирование поведения человека в различных политических ситуациях со своими предубеждениями и мнениями. Ниже показана форма представления внутренних правил этой системы:
ЕСЛИ Y передвигает свои войска к границам X н ЗСЛИ X — малая страна и У — большая страна и
ЕСЛИ X втянута в военный конфликти нуждается в помощи
… н победа X помогла бы У в достижении своих собственных целей
Т© цель У』военная помощь X
ИНАЧЕ ЕСЛИ главной задачей У является расширение своего политического влияния
ТО цель У = завоевать X
РЙ€, 7; 13. Часть сети выводов, образованная* интерпретатором системы PROSPECTOR из набора классических продукционных правил. Стрелки указывают на предположения,: позволяющие получить заключение. 一
Семантическая сеть системы PROSPECTOR
;Система PROSPECTOR предназначена для оказания Аомощи при исследованиях в горной промышленности. Внутреннее представление правил в ней немного отличается от представления в предыдущей системе и является более эффективным. Для получения выводов здесь используется граф, вершинами которого являются элементарные предложения. Правило представляет собой подмножество дуг, связывающих вершины. Подмножество помечено И для посылок одного и того же правила, ИЛИ для идентичных заключений, получаемых с помощью нескольких правил (рис, 7.13).
Последовательные выводы из начальных фактов получаются очень просто с помощью переноса указателя в этом графе. Оптимизация достижения искомой цели (конечная вершина графа) производится с помощью классических методов, применяемых в искусственном интеллекте: поиск по дереву И-ИЛИ, алгоритм продвижения Л* (Nilsson 1980) (гл. 2).
Эти внутренние представления очень близки к семантическим сетям и фреймам, используемым при описании естествен- ного языка (Minsky, 1975, Winograd, 1982, Pitpat, 1982).
Связь описываемых систем с сетями Петри
В 1962 п Петри предложил, а в 1970 г. Холт развил общее представление процессов в форме графов. Холт назвал это представление «сетями Петри». Такие сети являются ориентированными графами, вершины которых представляют собой либо «позиции» (обозначаемые окружностями), либо «переходы» (обозначаемые вертикальными отрезками). Позиций могут содержать «жетоны». Если все позиции, предшествующие
Рис. 7.14. Пример сети Петри. Выполнение Т1 включает в работу Р2 ц РЗ. Затем внпблненне Т2 我 ТЗ включает в работу Р4 и Р5, но только один из, них может быть активным. Затем сеть, возвращается в начальное состояние.
переходу, содержат жетон, то такой переход называется активным. В этом случае ой выполняется, а каждая предыдущая позиция теряет жетон и передает его следующей позиции (рис. 7.14).
Очевидно/ что графы переходов, кай й конечные автоматы, являются частными случаями сетей Петри. Преимущество последних заключается в том, что они представляют не только сам процесс, но также и его управление, элементами которого являются жетоны и выполняемые правила. Они позволяют также моделировать процессы параллельной обработки и синхронизации, что является основой обработки информации, в частности для систем с продукционными правилами. Можно отметить еще два полезных свойства сетей Петри:
Выявление возможности конфликта между правилами (возможность одновременного выполнения правил).
Внутреннее представление набора правил для интерпретатора с целью оптимизации времени решения.
Зисман (1978) предложил следующую модификацию набора правил Для обращения цепочки символов, приведенную в разд. 7.5.3. В правой части каждого правила указывается правило, которое система попытается выпол нить после данного пр а-*
ВИЛЯ*. ..'■ .''、
(Р1)* 方一人(Р4);г
①2)展%g% А (Р2)
(РЗ) -►=# A (Pl)
(Р4) #=- А(Р4)
Отметим, что в такой записи оди» из символов можно не указывать и число правил уменьшается на два. Представление
Рис. 7.15. Представление системы продукционных правил в форме сети Пет* рц. Для простоты переходы не указаны, имеются два типа жетонов: - <исти' на» V и «ложь» 尸 в зависимости от истинности лёвоб части правила. .
этого набора правил для интерпретатора в форме сети получается сразу же (рис. 7.15). Очевидно, что представление, в котором стрелки соответствуют обычной последовательной передаче управления б программах и условным переходам, должно предназначаться только одному интерпретатору. Оно далеко от идей продукционных систем и от возможностей модульного программирования, Оно великолепно оправдывает себя в качестве внутреннего представления и с небольшими модификациями было использовано под именем ATN (Woods, 1972) для анализа письменных текстов (Kayser, 1981).
Итоги сопоставления процедурного и декларативного подходов
Отметим в заключение, что фундаментальное различие между обычными программами и системой правил заключается не в процедурном характере первых и более или менее декларативном вторых, но главным образом в том, что во втором случае структура управления полностью отделена от информации, вводимой в форме правил, и поэтому эти правил^ могут вводиться в беспорядке. В данном случае существенным свойством является отсутстйие упорядоченности. Оно определяет
действительно декларативный язык, основанный на продукционных правилах или других логических построениях. Практический интерес представляет его абсолютная модульность (независимые единицы информации, связь между этими единицами осуществляется только с помощью базы фактов, отмена упорядоченности, возможность возвращения назад при выполнении правила).
Различные типы знаний и их представления
В настоящее время целью исследований в области искусственного интеллекта является создание таких систем, которые, е одной стороны, могут использовать большое количество знаний, передаваемых им специалистами, а с другой — способны вступать в диалог и объяснять свои собственные выводы. Это предполагает наличие эффективного управления большой по объему и хорошо структурированной базой знаний, строгое разграничение между различными уровнями знаний (разд. 7.6.1), наличие множества удобных представлений для правил, схем предикатов или прототипов (разд. 7.6.2) и четко определенный процесс обмена информацией между различными источниками.
Наконец, необходимо, чтобы система знала, что она знает. Если попытаться провести аналогию с людьми, то подобное метазнание означает постоянное использование в течение жизни информации о каждом прожитом дне. Если, например, вы забыли имя приятеля) встреченного на улице, то ваше метазнание состоит в том, что либо вы его нм只 знали, но забыли, либо этого имени никогда не знали. Впрочем, мы постоянно используем важные эвристические правила, осноцанные на подобном метазнании, такие, как «если бы это была правда, то я бы это знал». .Они зависят от двух важных параметров: значимости имеющего к ним отношения факта и степени нашей собственной компетентности в данной области. В действительности каждое человеческое знание сразу же требует метазнания, связанного с тем местом, которое мы отводим данному знанию в ряду другой информации, как мы к нему относимся, для каких целей оно нам полезно, к какому семейству принадлежит. Все эти моменты рассматриваются в следующих разделах, посвящённых описанию реальных информационных систем,
Различные типы знаний
Выделим восемь основных типов знаний по следующим признакам.
4)баз。8b£g элементы, объекты реального мира. Они ;срязаны с непосредственным восприятием, не требуют обсуждения. и до; бав^нются к нашей базе фактов в том диде, в котором они полусны. - \
-.;й) Утверждения и определения. Они основаны на ба* 3owx элементах и заранее рассматриваются как достою верные. ,
Концепции. Они представляют собой перегруппировки или обобщения базовых объектов. Для построения каждой концепции используются свой" приемы. Например, в системах МЁСНО (Bundy, 1979) или AM (Lenat, 1977) они построены на основе примеров, контрпримеров, частных случаев, более рвщих" или Аналогичных концепций. ' . , . ' ? :
Отношения. Они выражают как элементарные свойства базовых элементов, так и отношения между концепциями. Кроме того, к сцойствам отношений относятся их большёе или меныцее правдоподобие/, большая или :меньшак связь с данной ситуацией. Еще раз отметим^ что представление знаний в экспертных системах близко к моделям, используемым.. в .базе данннх. Т@кнм путем построена реляционная^ (обобщенная) модель 0азы данных в системах ОР5,. PROLOG, SNARKt и TANGO, , . - , . ■,
Пара понятий. «свойство — значение^ (relationship -^ entity) хррошо известна в семантических сет»х; фрейму и скрипты я比 льются не чем цным, ,как наиболее простыми бинарными отно- щениями., Некоторые экспертные системы (JNTERNIST, ВАО* BAB, SPHINX) в качестве базы фактов используют уже базы существующих данных. * , ‘
Теоремы и правила перезаписи^ Они яёляются-частным случаем продукционных правил с вполне определенными свойствами. Теоремы не представляют никакой пользы без экспертных правил их использования. Явное присутствие тёорем в экспертных Системах представляет главное отличие' от систем управления классическими базами Данных (СУБД), в которых они либо отсутствуют, либо программируются. Модификация или добавление новых теорем является весьма трудоёмкой, хотя и необходимой йроцедурой, так как нужйо обеспечйть хорошее структурированное управление базой данных и оптимизировать получение ответов (Gallaire, 1978). ,
Алгоритмы решений. Они необходимы для выполнения определенных задач. Во всех случаях они связаны со знанием особого типа, поскольку определяемая ими последовательность действий оказывается оформленной в блок ,н строго необходимом порядке в отличие от других типов знания, где элементы
информации могут появляться и располагаться без связи друг с другом.
Очевидно, что очень трудно работать с длинными процедурами, состоящими из большого числа различных действий. Использование чистых алгоритмов ограничено очень частными случаями, большая часть которых имеет дело с обработкой числовой информации. Человек же должен уметь работать со многими другими типами информации и оказывается, что &ВМ в отличие от простого калькулятора может помочь человеку в подобных неалгоритмических ситуациях.
Стратегии и эвристика. Этот тип представляет собой врожденные или приобретенные правила поведения, которые позволяют в данной конкретной ситуации принять решение о необходимых действиях. Он использует информацию в порядке, обратном тому, в котором она была получена. В качестве примера можно привести рассуждение типа: «Я знаю, что это действие приводит к такому-то результату (информация типа 4), поэтому, если я хочу получить именно этот результат, я могу рассмотреть это действие». Человек постоянно пользуется этим типом знаний при восприятии, формировании концепций, решении задач и формальных рассуждениях.
Появление экспертных систем связано с необходимостью принятия в расчет именно этого фундаментального типа человеческих зйаний.
Метазнание, Без сомнения оно присутствует на многих уровнях и представляет собой знание того, что известно и определяет значение коэффициента доверия к этому знанию, важность элементарной информации по отношению ко всему множеству знаний. Кроме того, сюда же относятся вопросы организации каждого типа знаний и указаний, когда и как они могут быть использованы. Этому вопросу посвящен разд. 7.7, в котором’ показано, как он решается в конкретных системах.
7.6.2, Различные представления знаний в существующих системах
Приведем краткий список наиболее распространенных в настоящее время методов. Фундаментальное различие между ними состоит в простоте модификации знания. В таблице ниже они приведены в порядке от наиболее процедурного (наиболее застывшего, структурированного) до наиболее декларативного (наиболее открытого, свободного, неупорядоченного). Такая
классификация является несколько грубой, но правильно отражает идею.
Методы
Раздел в книге
Библиографическая ссылка
Процедурные ” «закрытые»
Конечный автомат
Программа
Скрипт (схема)
Семантическая сеть
Фрейм (прототип)
Графы, сети
Формальная спецификация
Исчисление предикатов
Теоремы, правила перезаписи
5.1
5.1
5.4, 6.2
5.4
5.4, 6.2
5.4
6.1
4.1
6.1
(Markov, 1954)
(Meyer, 1978)
(Schank, 1977)
(Me Carthy, 1977)
(Minsky, 1975)
(Petri, 1962)
(Germain, 1981) (Kowalski, 1979)
(Huet, 1978)
Декларативные, «открытые», «неупорядоченные»
Продукционные правила
Предложения на языке
2.3
Shortliffe, 1976)
(Pitrat,Д981)
Напомним, .что конечные автоматы, программы, исчисление предикатов и системы с продукционными правилами с теоретической точки зрения эквивалентны друг другу, поскольку их в принципе можно свести к универсальной машине Тьюринга, хотя их «эксплуатационные характеристики» сильно различаются.
Такие формальные понятия, как фреймы, скрипты, семантические сети, возникли из реальных потребностей искусственного интеллекта и приносят большую помощь в понимании языка (Charniak, 1978; Cordier, 1979; Pitrat, 1982).
Фреймы (или прототипы) предложены Минским в 1975 г. и представляют собой сложные структуры данных, описывающих какую-либо типичную ситуацию, например ожидание в аэропорту или участие в семейном обеде. Фрейм состоит из позиций (слотов) для размещения объектов, характеризующих данную ситуацию. Позиция может быть передана другому фрейму. Кроме того, он содержит информацию о выполняемых действиях (заполнение позиций, присвоение значений по умолчанию, активизация), о том, как следует поступать в типичных и нетипичных случаях, о влиянии соседних фреймов.
Скрипт или схема представляет собой описание стереотипного сценария действий с участием определенных объектов. Скрипты связаны с текущей культурой и необходимым для
понимания таких предложений, как «Я вошел в ресторан, официантка принесла мне меню» (Schank, 1975). Они могут вызывать другие скрипты н обладают большими, чем фреймы, возможностями для описания динамических аспектов знания. :
,Семантические сети это графы, которые часто представляют собой объединение двух предыдущих понятий и объектом описания которых являются элементы окружающего мира и связи между ними. Они имеют много общего с реляционными моделями баз данных. 「 ”
Изображения и графы эффективно используются для доказательства теорем (Buthion, 1975), (Pastre, 1978). Они оказывают большую помощь в проверке отсутствия зацикливания этапов, в полном и эффективном хранении задачи в памяти, в организации ввода новых элементов.
7:63 Способы использования знаний и доступ к ним「
Имеются четыре способа использования, простой информации в форме
Примером этого может служить «каждый человек ошибаете».
Самый непосредственный способ состоит в прямом использо-j нации его смысла в формулировках типа: 上
“Нетто ошибается, и я могу доказать, что это нечто -г- чело- векп. Второй способ, использующий метазнание и обратный ход мыслей, состоит в следующем: / 「
"Если я хочу доказать, что нечто ошибается, то возможная; подцель состоит в том, чтобы показать,: что; это нечто — человек". Оба первых способа используют модус поненс, два следующих используют отрицание предложения q и модус толенс: а) "Если нечто не ошибается, оно не может быть человеком”, б) "Если я хочу доказать, что нечто не является человеком, то я могут попытаться показать, что оно не ошибается*'.
Отметим, что принцип решения и, в частности, использующий его язык Пролог применяют единый формальный подход к описанию этих способов вывода.
С практической точки зрения использование информации зависит от параметров, которые характеризуют ее правдоподобие. Каждая система обработки информации должна быть в состоянии ответить на такие вопросы, как:
Какая часть утверждения А является истиной?
С какой степенью уверенности эксперт согласен с заключением? ,
Какова средняя вероятность достижения цели с использованием Л?
В какой мере следует оказать предпочтение 4 перед другими?
,Некоторые системы, основанные на продукционных правилах, используют процессы приближенного вывода, учитывающие эти обстоятельства. Системы, применяющие продукционные правила, описаны выше. В следующей разделе показано возможное различие между этими системами и подходом к решению тех же проблем с помощью логики первого порядка, отмечены также преимущества и недостатки подобного моделирования знаний.
7,64 Преимущества й недостатки продукционных систем
Начнем с недостатков. Выделим из них три главных, с которыми связаны определенные ограничения, лежащие в основе используемого формализма. Они относятся к концепции, формулировке и использованию правил.
Трудность составления продукционного правила, соответствующего элементу знания. Нужно, чтобы рассматриваемая область уже была достаточно изучена и установлены хорошие примитивы и чтобы уровень детализации не был излишне подробным- иначе потребовалось бы иметь по одному правилу на каждую ситуацию и неясно, как человек смог бы разобраться в таком обилии информации.
Трудность записи правила. Единый формат записи ЕСЛИ- ТО-приводит к громоздким выражениям в левой части и повторению тех же посылок в схожих ситуациях; с его помощью трудно выразить сложные правила. Но мы видели (разд. 7.5.4), что жесткий синтаксис, громоздкие записи представляют и определенные преимущества. Во всех случаях проблема «поймать знания» остается главной при написании экспертной системы.
Трудности использования. Связаны не с самими правилами, а с единой системой их связи. При этом база фактов играет роль кратковременной памяти, которая реально смоделирована в разработанной Ньюэллом (Newell, 1975) системе "познавательной психологии** PSC. В ней запрещен взаимный прямой вызов одного правила из другого, и она неудобна для выполнения алгоритмов в обычном смысле слова. Однако именно благодаря ей система в каждый момент времени точно знает, что она делает и что она знает.
К преимуществам относится следующее.
Модульность. Системы устроены так, что каждая единица информации может быть удалена, изменена или добавлена
независимо от всех остальных. Знания вводятся неупорядоченно, как в словаре или энциклопедии. Практика показывает, что это является естественным способом пополнения своих знаний для эксперта. .
Как ни странно, многочисленные американские авторы (Дэвис, Ньюэлл, Куинлан, Стэфик) нарушают это правило, т. е. проблема реорганизации решается у них довольно плохо.
Модифицируемость. Если добавляется или модифицируется какое-либо правило, то все, что было уже сделано ранее, остается в силе и к новому правилу не относится. Таким образом, каждое изменение обладает свойством аддитивности и локальности.
В отличие от этого в процедурных программах подобные взаимодействия ограниченны, любая модификация является трудной и может привести к непредсказуемым последствиям.
Доступность чтения.
Для нас это преимущество, безусловно, имеет место. Как уже говорилось выше, наше собственное знание является модульным, поэтому продукционные системы нам кажутся более близкими, более легкими для чтения. Этим преимуществом нельзя пренебрегать, поскольку подобные системы в первую оче* редь предназначены для врачей, биологов, архитекторов и т. д. Во многих областях реально существуют добавляемые знания и соответствующие базы правил. (Например, автоматизированные экспертные обучающие системы.)
Для машины. Более простой проверке поддается база знаний, представленная в форме правил, а не в форме процедур. Противоречия или избыточность в действительности легко определяется с помощью синтаксической обработки:
А 八 В + С и Л А В->~1С одновременно невозможны;
из D ЛЕ /\ F^- G следует £ AF-^G с помощью “подло- сылкн";
таким образом, первое правило является лишним.
Мойсет быть также обнаружена семантическая несогласованность:
Л ЛВ-^ С неприемлемо, если по определению и из свойств
А и В с необходимостью 4f
Способность к самообъясненйю. Это свойство связано одновременно и с правилами, и с их структурами внешнего управления. Система легко прослеживает цепочку правил, которую она использовала для получения вывода, так же как и использовавшиеся метаправила. ■
Однородное представление знания, определяемое установи ленным форматом, разрешает создавать модели правил, которые позволяют получить ответы на некоторые вопросы и предусмотреть большую часть изменений в случае обнаружения ошибки в базе данных.
Эффективность. Практика доказала гибкость и компетентность таких систем, как MYCIN, PROSPECTOR и R1. Эти системы являются уже не лабораторными игрушками, а высокопроизводительными устройствами. Они оказались достаточно эффективными и выдерживают сравнение с процедурными системами во многих областях, примеры которых приведены, в частности, в работе (Rychener, 1978),
Их структура управлёния позволяет принимать в расчет многочисленные параметры, характеризующие ситуацию. Причина эффективности продукционных правил заключается в том, что эти правила учитывают конкретные данные в каждом случае.
Метазнание
Метазнание представляет собой любое знание о знании. Оно является фундаментальным понятием для систем, которые не только используют свою базу знаний такой, как она есть, но и умеют на ее основе делать выводы, структурировать ее, абстра- гйрбйать, обобщать, а также решать, в каких случаях она может быть полезна. Ввод знаний в систему является задачей не только специалистов в данной области, но и самой системы, которая должна управлять этим процессом. В разд. 7.7.1 рассмотрены элементарные объекты метазнания, а в разд. 7.7.2 — стратегии и типы выводов.
7.1. Метазнание объектов окружающего мира
Решение проблем, охватывающих большие объемы знаний, требует умения обращаться с очень сложными и весьма различными типами данных как по содержанию, так и по взаимосвязи с другими элементами системы. Требуемая информация должна не только присутствовать в программных комментариях и в мыслях разработчика, но и быть доступной самой системе. Таким образом, с каждым элементарным объектом может быть связано смысловое значение — концепт. Например, в системах МЕСНО и MYCIN каждый из концептов содержит следующую информацию:
описательную часть, которая уточняет характеристики й структуру данных;
указатель на все известные примеры концепта;
связи с другими концептами;―
указатель й иерархии схем на группу концептов того ясе семейства.
Когда формулируется новое правило, которое содержит слово или группу слов, неизвестных системе, она их анализирует с помощью имеющихся концептов, используя контекст и: последовательность слов правила. Более того, если некоторые свойства известны из других примеров того же концепта, то система tf состоянии запросить у пользователя уточнения этого сёой- с¥ва для данного случйя. При необходимости она также обнаруживает нарушения связи между концёптами.
Подобные системы имеют возможность фиксировать все концепты одного и того же иерархического уровня, изменение, внесенное экспертом в один из них, а также оценивать важность изменений, внесенных в,базу данных, если в определенную структуру добавляется новый пример.
■ Кроме того, продукционные правила могут характеризоваться моделями правил (описанными в разд. 2.3): Эти модели создаются и управляются системой и учитывают периодичность использования правил. Они занимаются проверкой соответствия межДу новым правилом и базой, кроме того, именно они указ口口 вают эксперту на главные тенденции множества правил даже вуом случае, когда самих правил эксперт не знает: Именно они обогащаются с каждым новым примером по мере роста множества правил. В системе МЕСНО, например, сами формулировки задач связаны с формой метазнания. Система постоянно нбтается распознать в формулировке стандартную ситуацию. Когда ей это удается, она дополняет множество фактов всеми физическими гипотезами, справедливыми для данного случай.
7.2. Метазнание стратегий 「
В продукционных системах стратегии также представлены в форме метаправил, поскольку они затрагивают сами правила. Они являются изолированными и доступными для системы. Эвристические законы управления поиском решения используют эти метаправила в качественном и декларативном виде, вместо того чтобы использовать количественные оценки. С применением числовых оценочных функций связан риск ошибки: они плохо читаемы, отражаемый ими частичный порядок приводит к- сложным вычислениям, любая модификация приводит к возможности появления ошибки.
Стратегии, заданные в форме метаправил, являются более четкими и определенными. Выводы метаправил указывают на действия, которые необходимо предпринять в рассматриваемой
ситуации. Таким образом они реализу|от полезный потенциал, заключенный в множестве правил, и дают двойной эффект:
исключают определенные правила, не подходящие к данной ситуации, и тем самым уменьшают дерево поиска;
осуществляют частичную классификацию других правил, частично упорядочивая ветви дерева поиска.
Конечна же» можно и дальше увеличивать число, уровней знания, строя дополнительные этажи над уже имеющимся и увеличивая это ^сооружение по мере роста интеллектуальности самой системы. При этом мы добиваемся большей общности, так как тот же интерпретатор получает возможность работать в различны^ рбластях, а также большей устойчивости» так как более развитые модели не чувствительны к изменениям базы элементарных знаний.
По этой причине система CRYSALIS {Engelmore, 1979) включает три отдельных уррвня правил. Она предназначена для анализа протеинов, и размеру ее пространства поиска очень важны с комбинаторной точки зрения. 1(ласёический подход в данном случае неприменим. Правила сначала группируются в подмножества (неразобщенные). Каждое подмножество пре比 назначено для определенной обработки и используется при вц- полненда соответствующих условий. Соответствие Между конечным н классами й подмножествами правил устанавливается с помощью дравйл заданий, которые составляют второй уровень знаний. Эти правила определяют, как следует выполнить дан- цае задание наилучшим образом.
Наконец, третий уровень относится к мета-метаправилам, которые определяют подцели и выражают их в зависимости от правил задания.
В примере, приведенном ниже, показан порядок выполнения системой одного из правил заданна, в посылках которого содержится заданиё ПРОВЕСТИ-МЁЖДУ-ТОЧКАМЙ, а также указывается, какому правилу должно быть отдано предпочтем нйе при выполнении задания:
ЕСЛИ два гипотетических элемента протеина а и 6
уже размещены с коэффициентом npaBAonoAq6Hs для каждого из них йе менее 0,4
И ЕСЛИ число остаточных элементов в последовательности ab не более 5
ТО использовать правила, предназначенные для задания ПРОВЕСТИ-МЕЖДУ-ТОЧКАМИ
Такой способ группировки правил обладает преимуществами и недостатками. Преимущество заключается в той, что
управление осуществляется в самом правиле, каждое правило содержит собственные соображения по применению (ем. систему АМ Лената (1977)). Такая же руководящая идея (план) может быть легко обнаружена и в семействе правил. Недостаток заключается в том, что посылки правил могут оказаться очень громоздкими.
Однако существует и альтернативный путь решения этой проблемы, важной с точки зрения эффективности и ясности систем. Он состоит в разрешении все более и более сложных структур посылок в правилах. Эти вопросы затрагиваются при рассмотрении внутреннего представления наборов правил, описанного в разд. 7.5.4.
Работа Виленски (1981) «Метапланирование» посвящена управлению планами действий независимо от области применения. Он предложил метастратегии для разрешения конфликтов между планами, а также рассматривает рекуррентные и конкурентные планы. Одно и то же знание представлено в декларативной форме в двух различных программах РАМ и PANDORA. Одна из них составляет планы для решения задач, другая должна его понять и составить планы для участвующих в действии объектов.
Заключение
Итак, системы, использующие декларативные базы данных, а также продукционные правила, отношения, прототипы, схемы и семантические сети для представления и использования содержащихся в них знаний, открывают действительно новый подход к программированию, который заключается в возможности передачи от человека к программе наиболее простым образом знаний неупорядоченной структуры в произвольных областях. Взаимодействие с экспертными системами происходит на декларативном языке, который по сути предназначен для выражения знаний. Подобный подход представляется совершенно необходимым в области искусственного интеллекта, и на этой основе уже созданы эффективные системы (разд. 7.2 и 7.3).
В разд. 7.4 и 7.5 показано, что подобный подход имеет два преимущества. Во-первых, полная независимость элементарных фактов знания, представленных в соответствующей форме, и, во-вторых, единый и жесткий синтаксис формы. Эти свойства позволяют хорошо организованной системе иметь общее представление о содержании своего знания, а также анализировать и структурировать его с помощью метаправил, правил или схем.
Крайняя простота представления знаний не ставит ограничений перед программистом или специалистом, скорее наобо-
рот, она требует от нас мыслить наиболее естественным образом. Среди многих преимуществ подобного представления знаний, как мы видели в разд. 7.6 и 7.7, находится и обсуждаемое в современных работах одновременное решение задач и понимание естественного языка.
Кроме того, экспертные системы предоставляют в наше распоряжение специализированные базы знаний: система PROSPECTOR охватывает знания в области геологии, MYCIN используется для обучения в медицине, a PECOS оказывает помощь в программировании. .
Наконец, при изучении этих систем становится очевидным, что существенной особенностью нашего интеллекта является способность управлять большим объемом элементарных составляющих информации. Поэтому одним из предметов исследований в области искусственного интеллекта еще долгое время будут три фундаментальные проблемы, уже встречавшиеся при рассмотрении продукционных систем. Они имеют отношение к примитивным действиям, связанным с обработкой любой информации:
сформулировать — запомнить — использовать
Сформулировать
Мы постоянно оказываемся в новых ситуациях. Приходящий к нам опыт заключается прежде всего в способности абстрагироваться от этих ситуаций и описать их с помощью общих представлений, которые могут быть элементами обычного языка. Однако во многих областях этого недостаточно, так как обычно имеется много неточностей или делается слишком много ссылок .на обстоятельства, не связанные с данной конкретной ситуацией. Каждый специалист постоянно совершенствуется в своей области и вырабатывает собственный жаргон.
В некоторых книгах часто встречаются советы описывать ситуацию и предпринимаемые действия с очень высокой степенью детализации, однако в этом случае трудно достигнуть нужного эффекта обобщения. Становится сложно использовать всю накопленную информацию.
Автоматический поиск концептов, полезных в примитивных ситуациях, безусловно, возможен (как это возможно и для одаренных личностей), однако, с нашей точки зрения, в области искусственного интеллекта в ближайшем будущем этого ожидать не следует.
Запомнить
Запоминание информации технологически ограничено и связано прежде всего с эффективностью используемой информа-
ционной системы. Если для удобства работы требуется, чтобы элементы Знания вводйлись б продукционные системы независимым образом, как это делается в словарях, то храниться они Должны в упорядоченном виде. Правила, сгруппированные в древовидные структуры, представляют собой сеть, узлы которой являются моделями, содержащими описание пра- вйл.
Кроме того, необходимо, чтобы система умела инвертировать правила, т. е. умела определять, в каких ситуациях данное правило окажется полезным. Инверсия — непростая операция, связанная с обобщением, и с ее помощью осуществляется узнава* нйе концептов, кратких дескрипторов всех возможных ситуаций в процессе обработки информации. Для того чтобы уменьшить издержки, связанные с инверсией, иногда допускается излиш- нМИ расход памяти. Ясно, что в интеллектуальных, эффективно работающих системах одна и та же информация может быть представлена в нескольких различных форматах (гл. 9).
.Использовать .'
При Доступе к информации возникают проблемы распознавания форм, которые использовались на предыдущем этапе для ,образования древовидных структур, прямых и инверсных элементарных Правил. Управление поиском идет с помощью метаправил и в более общем виде с помощью моделей знаний высо^ ких уровней, которые позволяют проводить распознавание в зависимости от стратегии, связанной с контекстом* и задерживать выбор на возможно более долгое время.
Многие экспертные системы, основанные на продукционных правилах, в частности CRYSALIS, ARGOS II, POLITICS, OPSt TANGO, SNARK, уже содержат элементы ответов на поставленные три вопроса. Этому способствует прежде всего четкое разделение между самим знанием и обработкой с помощью итерационной интерпретации, которая позволяет четко разделить и анализировать эти три проблемы.
Таким образом, экспертные системы предлагают качественно новый подход к программированию. Из двух главных управляю^ щих структур — проверки и цикла — они оставляют только первую, которая позволяет довольно легко формулировать элементарные факты для интерпретатора, а также повторять циклы выполнения проверок и обработку. Таким образом устраняются два неизбежных недостатка классического программирования: последовательный порядок выполнения операций и приказной характер элемейтарных инструкций. Вместо инструкций — неупорядоченные отдельные данные» порядок использования kq・ Юрых зарайее Нельзя предвидеть.
Но в еще большей степени экспертные системы позводя^ обойтись без. всех средств произвольных языков программирования. Действительно, пользователь, эксперт по мере потребностей определяют собственные концепты^ специальную терминологию, выбирая подходящий для себя уровень детализации, пригодный для решения поставленных зада%
В отличие от этого и к большому неудобству исследователей в области искусственного интеллекта современные языки программирования являются языками слишком низкого уровня. Простое действие, элементарный факт чаще всего оказываются растворенными в большом числе инструкций, и каждая их модификация оказывается трудоемкой и опасной. Таким образом, основной целью исследователей в области искусственного интеллекта является создание форм представления и интерпрета* ции знаний типа экспертных систем, которые можно назвать языками будущего. Им присущи абсолютная модульность, чет* кость, полное разделение между данными и управлением, бол把丁 шие возможности по обработке информации, эффективное взаимодействие между человеком и программой, возможность со- стайления программного обеспечения очень больших объемов, имеющего не обязательно алгоритмическую природу.',
"Для того чтобы подобные системы были полезны и за прё- де>дами разработавших их лабораторий, осталось выполнить определенный о;бъем работ. В частности, необходимо решить дйе проблемы. Во-первых, исследовать формальные законы языков, на которых выражаются правила и метаправила, их синтаксис и семантику, типы логических связей, основные примитивы. Необходимо выполнить работу, аналогичную той, которая уже проделана для классических языков программирования, но с учётом интерпретаторов и современных ЭВМ.
Во-вторых, вывести работы в области искусственного интеллекта за пределы университетских лабораторий, в частности для экспертных систем разработку эффективных интерпретаторов н ‘механизмов вывода, которые должны найти новых пользователей^ как это было при разработке компиляторов..
Экспертные системы доказали возможность совершенно нового подхода к развитию информатики. Он заключается в формализации нашего знания с помощью декларативных незави^и* мых понятий, в организации четко определенных структур, таких, как продукционные правила, фреймы,, скрипты и семантические сети, с помощью которых можно получить изящное решение поставленных задач. Для таких систем характерны простота использования, эффективное представление знаний й
отсутствие трудностей, присущих программированию на классических языках, что позволяет взаимодействовать с такими си-* стемами с помощью обычных слов.
Конкретный пример машины вывода экспертной
системы
Ограничимся случаем, когда все факты из базы фактов имеют вид
a R Ь,
где а и 6 — две константы (произвольные слова), независимые друг от друга и связанные в базе фактов отношением R, например “является”, “принадлежит к”, иравноп, ^содержит'*, <(сле-
/ ОпредеАи/пь по^оЗящие @а裁к伏
“ правила
2.6。/勿azw правило “ /г。门ьмтатьса еео &бтоднить
J В^п^лнуть^ за门。мнить
Рцс. 7.16. Базовый цикл эксперной системы.
дует” и т. д., которое определяется экспертом. Другими словами факт @R6 соответствует оОычнрму логическому предложению, которому можно присвоить значение "истина17 или иложь", например uАнемона является двусемядольным цветком” или "Организм имеет грамположительный тип”.
Аналогично каждое правило из базы правил имеет вид триплета (слово, отношение, слово)
Ap』f А%,
в котором посылки р』и следствия qt являются предложениями. Остановимся на препозициональной логике — логике нулевого уровня, не содержащей переменных. На этом уровне задача состоит в том, чтобы из начальных фактов и данных правил вывести новые факты, выполняя каждое правило из базы правил, посылки которого удовлетворяются. Следствия, полученные из правила, добавляются к базе фактов.
Основным циклом является цикл, приведенный на рис. 7.16.
В данном случае возможны две стратегии:
Движение по цепочке правил вперед. Начинают от известных фактов, данных экспертом, и выполняют каждое пра^
вило, посылки которого удовлетворяются, добавляя полученные фа^ты. Так продолжают до насыщения системы (отсутствия новых выводов).
Движение по цепочке правил назад. Начинают с поиска ответа на вопрос эксперта, предполагая, что число возможных ответов ограниченно. Целью является получение первого из них.'
Затем рассматривают все правила, имеющие отношение к этой цели. Если таковых не оказывается, то переходят к следующей цели. В противном случае если в базе фактов все посылки удовлетворены, то цель достигнута, а если нет, то неизвестные посылки регистрируются как новые цели и все повторяется сначала. Таким образом доходят до цели из начальных фактов. Кроме того, система может задать вопрос эксперту, если в этом возникает необходимость в процессе вывода, связанная с отсутствием факта или невозможностью его использования. ,
Общая процедура является рекурсивной, поскольку проверка факта происходит с помощью проверки правил, которые включают этот факт.
На рис. 7.17 приведена рекурсивная функция ПРОВЕРИТЬ, вызываемая из главной программы в виде:
Результат = ПРОВЕРИТЬ (Ь, БФ, БП) где b является искомой целью, БФ ——начальная база фактов, БП — база правил.
Синтаксис правила имеет вид
(Правило) = ЕСЛИ (посылка) ТО (следствие)
(Посылка) . =(факт)/(факт) (посылка)
(Факт) = (слово)/(слово)
(Следствие) = (посылка)
Функция ПРОВЕРИТЬ отыскивает значение истинности & продвижением по цепочке правил назад. Результат является булевой величиной (иистина" или “ложь”),зависящей от истинности величины Ь, Эта функция вызывает саму себя для проверки совокупности целей.
Функции ПРОВЕРИТЬ и ДОКАЗАТЬ работают с объектами трех типов: ПРЕДЛОЖЕНИЕ, ПРЕДЛОЖЕНИЕ-МНОЖЕСТВО и ПРАВИЛО. Каждый объект типа ПРАВИЛО обладает двумя свойствами: ПОСЫЛКИ (г) и СЛЕДСТВИЯ (г), которые принадлежат к типу ПРЕДЛОЖЕНИЕ-МНОЖЕСТВО.
Некоторые предложения отнесены к множеству ТРЕБУЕМЫЕ и могут напрямую запрашиваться экспертом. Функция
ВОПРОС (р) задает вопрос р и возвращает значения "истина или “ложь" в зависимости от ответа эксперта. Истинность предложения р можно доказать Тремя способами:,
Функция ПРОВЕРИТЬ возвращает булево значение
Глобальные константы база правил:множество ПРАВИЛ
требуемыемножество ПРЕДЛОЖЕНИЙ
Данныецель, база фактов: множество ПРЕДЛОЖЕНИЙ
{
Цель рекурсивно выводится из базы фактов (БФ) и базы правил (БП) с возможными вопросами к эксперту.
переменная。近 БУЛЕВА;。月《ложь
ЕСЛИ 6 曰 БФ ТО ok — истина {6 уже установлено}
КОНЕЦ ЕСЛИ{первый случай тривиального успеха}
{Иначе проверяется, можно ли вывести}
ПОВТОРЯТЬ ДЛЯ всех г БП и Ь е последовательность (г) ПОКА о^=ложь
ok=ДОКАЗАТЬ (Посылки (г))
{Вызов функции ДОКАЗАТЬ, которая проверяет, что все посылки
истинны. Это второй случай возможного успеха}
КОНЕЦ ПОВТОРЯТЬ {иначе см. является ли b требуемым}
ЕСЛИ ой—ложь и если 6 е требуемый
ТО задать вопрос;。耻+ оТвет (Ь)
КОНЕЦ ЕСЛИ {iao всех случаях успеха запомнить в БФ}
ЕСЛИ ой = истина ТО БФ U {&}
КОНЕЦ ЕСЛИ
Передать (6, ok)
КОНЕЦ ПРОВЕРИТЬ
Функция ДОКАЗАТЬ возвращает булево значение
{Те же глобальные константы}
Данные: В множестство целей истина
ПОВТОРЯТЬ ДЛЯ всех 匕 н ПОКА о^=истина
Ojfe4-ПРОВЕРИТЬ 3)•
КОНЕЦ ПОВТОРЯТЬ■
{необходимо, чтобы все цели 5 были доказаны}
Передать ok
КОНЕЦ ДОКАЗАТЬ
Рис. 7.17. Пример из области логики предложений.
ЕСЛИ цветок А зерно
ТО явнобрачный
ЕСЛИ явнобрачный Д голосемянный ТО пихта
ЕСЛИ явнобрачный А 1-семядольный ТО моносемядольный
ЕСЛИ явнобрачный А 2-семядольный ТО двусемядольный
ЕСЛИ моносемядольный Д ризома
ТО ландыш
ЕСЛИ двусемядольный
ТО анемона
ЕСЛИ односемядольный Д~] ризома
ТО лилия
ЕСЛИ лист А~1 цветок
ТО тайнобрачный
ЕСЛИ тайнобрачный А~] корень
ТО мох
ЕСЛИ тайнобрачный Д корень
ТО папоротник
ЕСЛИ [ листья Д растение
ТО таллофиты
ЕСЛИ таллофиты А хлорофилл
ТО водоросль
ЕСЛИ таллофиты ДП хлорофилл
ТО гриб
ЕСЛИ ~| лист А」цветок 八 1 растение ТО колибацилла
правил (предложение a R b здесь выражено словами “на рао тений- имеется цвет6кп и сокращено до “нветок”).
Gmc)d)0 力 QA)D 力粉оти)
Если начальной базой фактов является: {корневище, цветок, односемядольный, зерно) и цель = гриб, то функция ПРО- ВЕРИТЬ выведет вопрос: таллофиты? (случай 3, система' должна спросить то, что она не может вывести). Если эксперт, дает положительный ответ, функция возвращает значение “но; тина".
Если цель = ландыш,. функция ПРОВЕРИТЬ вызывает функцию ДОКАЗАТЬ для проверки посылок единственного пра- вила е), которое позволяет сделать этот вывод. ■ К функции ПРОВЕРИТЬ обращаются для проверки первой подцели — односемядольные, которую можно осуществить, только используя правило с). Снова вступает в действие функция ДОКАЗАТЬ над данными {явнобрачный и 1-семядольный}. Первая цель достигается с помощью правила а), две посылки которого уже присутствуют в базе фактов (первый успех), в которую добавляется понятие явнобрачный. Затем, поскольку и1-семядольный" известно, добавляется также моносемядольный. Углубляя рекурсию, приходим ко второй посылке правила е), которая известна, и система выдает окончательный ответ “нстнна”.
Отмётим, что окончательное определение способа использования дерева возможных предложений происходит с помощью операции ^принадлежит целямп. Если цель управляется как стек,. действует правило “сначала в глубину” (см., например, версию для микроЭВМ, содержащую около 4б0 строк на Бейсика, в ^журнале BYTE, сентябрь 1981 или FARREN% 1985).
Эффективность функции ПРОВЕРИТЬ можно повысить с помощью преобразования двух параметров — цели и базы фактов—в глобальные переменные с явным управлением из программы.
И наконец, для того чтобы не повторять бесполезные задания, необходимо различать недостоверные и неизвестные факты. В частности, можно проверять негативные условия в правилах, находя недостоверные факты среди известных. Кроме того, нетрудно на нулевом уровне продвигаться по цепочке правил вперед. Тогда па мере продвижения по дереву поиска правила выполняются в зависимости от получаемых выводов до насыщения базы фактов (до невозможности полуц^ния новых выводов).
Глава 8
ИНФОРМАЦИОННАЯ СИСТЕМА ALICE
Дело не в том, какая система является искусственной, какая — естественной, а в том, поддается ли она программированию.
Герберт А. Саймон (1977 г.)
ALICE — информационная система, которая работает с языком высокого уровня, позволяющим формулировать задачи, и содержит модуль решения задач, использующий методы искусственного интеллекта.
При разработке системы принимались в расчет следующие два соображения:
Классическое программирование требует больших затрат. Действительно, для каждой новой задачи программист пишет новую программу. За любое изменение в программе приходится платить слишком дорого: 75 долл, за каждую вновь написанную инструкцию и 4000 долл, з占 каждую инструкцию в отлаженной программе (данные министерства обороны США, 1972 г.). Это объясняется двумя причинами:
Плохо поддаются контролю побочные эффекты. В современ- .ных процедурных языках любое изменение может иметь непредсказуемые последствия, даже если применяемая методология программирования и предусматривает определенную защиту (структурное программирование, модульное программирование, абстрактные типы данных).
Вносимые в программы изменения могут на самом деле привести к существенным изменениям в структуре данных и в алгоритме решения задачи. Так, в книгах обычно приводятся академические примеры программ, а каждый реальный случай не соответствует этому идеалу и требует перепрограммирования.
Все современные языки программирования являются императивными (т. е. приказными). Это означает, что нужно шаг за шагом сообщать машине, что она должна делать. Но для программиста единственно важными вещами являются формулировка задачи и результат ее решения, а постоянное отслеживание всех промежуточных этапов по существу излишне. Другими словами, наиболее приемлемым был бы такой метод обработки информации, при котором формулировка задачи была полностью отделена от ее решения. В идеальном случае пользователь смог бы ввести свою формулировку задачи, разговаривая с машиной на описательном языке, близком к естественному. После этого ЭВМ в реальном времени получает решение, которое пользователь анализирует и в случае необходимости исправляет первую
формулировку и решает задачу еще раз. Время полного решения уменьшается от нескольких недель (или нескольких месяцев) до нескольких минут. Такой подход заложен .при разработке системы ALICE.
В действительности эти соображения диктуют использование описательного (декларативного) языка для формулировки произвольных задач чисто формальным образом и достаточно общей системы решения, способной удовлетворить все пожелания пользователя и учесть все особенности решаемой задачи, связанные с ее формальным определением, объемом выполняемой работы и имеющимися ресурсами. Первое соображение связано с работами по описательным языкам, второе — с методологией программирования и общего решения задач.
Система ALICE понимает формально заданную задачу и доводит ее до окончательного решения. Кроме того, в разд. 8.9 показано, как в определенных случаях решаются задачи, сформулированные прямо на французском языке.
Замечание. Описание системы ALICE состоит из двух частей. Первая часть излагается в разд. 8.1 и 8.2 и представляет круг задач, решаемых системой, входной язык, используемые методы решения, примеры решения трех задач. Вторая часть изложена в разд. 8.3—8.5 и содержит описание процедур, критериев, используемых представлений, управления перебором и возникающих ограничений, которое носит бЬлее технический характер. В разд. 8.8 обсуждаются результаты, а в разд. 8.9 приводятся результаты исследований ввода формулировок задач на французском языке.
Общее описание системы ,
Человек является специалистом ■ по неспециальноыу.
Конрад Лоренц (1950 г.)
К особенностям данной системы относятся, во-первых, способность воспринимать чисто декларативные формулировки, что делает ненужным использование алгоритмов и инструкций, и, во-вторых, возможность решения довольно общего класса задач, не исключая трудных и требующих больших машинных ресурсов задач. ?
Язык, на котором формулируется задача, должен только ее определить. Его основу составляет язык обычной мате, матики.
Для разработки системы решения можно было выбрать два пути. Первый состоит в жестком переводе исходной формулиров-?
ки в специальный алгоритм, предназначенный для решения поставленной задачи, а второй——в интеллектуальной интерпретации формулировки и данных с помощью некоторого общего модуля. Второй путь, в тех случаях когда он возможен, оказывается значительно более эффективным, потому что система, подобно человеку, становится способной постоянно приспосабливаться к конкретной задаче и учитывать ее особенности. В этом случае не создается единственный и заранее выбранный алгоритм, а на каждом шаге обработки используется соответствующая процедура.
При этом достигается удивительный результат. Оказывается, что во многих случаях при решении трудных задач такая общая программа является более производительной, чем лучшие специальные программы, доступные в настоящее время. С помощью этой системы уже успешно решено более сотни задач из различных областей (разд. 8.7).
Язык системы ALICE
Название системы ALICE происходит от первых букв ее названия (A Language for Intelligent Combinatorial Exploration).
Общую основу языка составляет словарь теории множеств й классической логики. В нем использованы также многие полезные элементы теории графов, в частности понятия пути и преемника. Использование множеств, функций, декартовых произведений, матриц позволяет описывать объекты в конкретных приложениях. Связи между этими объектами определяются с помощью обычных операторов, таких, как w, V, В, =>, <=>, и, или, П, =, #=,》,+, *, /, 2, модуль.
Таким образом, класс задач, решаемых системой ALICE, может быть выражен в общем виде:
Найти величину %, % 三 X, где X ——конечное данное, которое удовлетворяет совокупности ограничений К(х).
Этот класс задач является очень общим. Он включает все классические алгоритмические задачи (бухгалтерский учет, управление, решение алгебраических систем и т. д.), задачи, связанные с операционными исследованиями и оптимизацией (взимание налогов, планирование, контроль -за ходом выполнения заказов и т. д.), а также множество других, менее классических .задач. Единственное ограничение состоит в том, что неизвестный вектор х должен принадлежать конечному множеству X.
Формулировки на языке ALICE
Формулировка задачи состоит из четырех частей:
определение, задаваемое ключевым словом “пусть", описывает объекты, участвующие в решении задачи, и задает их типы;
с помощью ключевого слова 《найти» задаются цель, которую необходимо достигнуть, и неизвестные величины, значения которых необходимо определить;
с ключевого слова “с” начинается часть ограничений, которые необходимо учесть при решении задачи (здесь полностью уточняются все остальные особенности решаемой задачи, связи, существующие между различными величинами). В этой части может быть задана оптимизация какой-либо функции, например стоимости;
наконец, задаются числовые или формальные данные в соответствии с описаниями, приведенными в первой части, на чем полностью завершается формулировка решаемой задачи.
Пример 1. В многопроцессорной ЭВМ запускается на выполнение одновременно N заданий, длительность выполнения которых с помощью одного процессора известна. Задания могут быть запущены каждое на своем процессоре, но требуется, чтобы вся обработка завершилась не позднее фиксированного момента L. Кроме того, необходимо минимизировать число используемых процессоров и определить оптимальный порядок выполнения заданий.
Этот обычный текст преобразуется в ALICE в следующий:
Определим множество Т заданий, которые перенумеруем от 1 до N. Для каждого задания f нз Т найти процессор, на котором задание f должно выполняться; номер этого процессора обозначим через р(/). Нужно, чтобы на множестве заданий ве- личинаьр(0 была минимальной с учетом заданного предельного времени 乙 Другими словами, нужно, чтобы maxp(f) для элемента из Г была минимальной со следующим ограничением предельного времени: если длит (/) является длительностью выполнения задания то
£ длит (/) < Л, ■:
где сумма берется по всем заданиям, выполняющимся на данном процессоре. Окончательно формулировка задачи для системы ALICE имеет следующий вид:
ПУСТЬ ' '
КОНСТАНТЫ М L Число заданий, предельное ”
время
МНОЖЕСТВО Т = {1, N}КОЭФФИЦИЕНТдлительность НА Т НАЙТИ ①УНКЦИЮ р: Tf 7СV г, г w ГУ длит (/) < 厶УТp(f) = r сMIN МАХ р (О一卩 f巨ТКОНЕЦМНОЖЕСТВО Т = {1, N}КОЭФФИЦИЕНТдлительность НА Т НАЙТИ ①УНКЦИЮ р: Tf 7СV г, г w ГУ длит (/) < 厶УТp(f) = r сMIN МАХ р (О一卩 f巨ТКОНЕЦЗадания, перенумерованные от 1 до NN, L длительность вводятсяЗаранее ясно, что потребуется процессоров.(для каждого процессора)Задания, перенумерованные от 1 до NN, L длительность вводятсяЗаранее ясно, что потребуется процессоров.(для каждого процессора)(Число процессоров должно быть минимизировано)(Число процессоров должно быть минимизировано)
МНОЖЕСТВО Т = {1, N}
КОЭФФИЦИЕНТ
длительность НА Т НАЙТИ ①УНКЦИЮ р: Tf 7
С
V г, г w Г
У длит (/) < 厶
УТ
p(f) = r с
MIN МАХ р (О
一卩 f巨Т
КОНЕЦ
МНОЖЕСТВО Т = {1, N}
КОЭФФИЦИЕНТ
длительность НА Т НАЙТИ ①УНКЦИЮ р: Tf 7
С
V г, г w Г
У длит (/) < 厶
УТ
p(f) = r с
MIN МАХ р (О
一卩 f巨Т
КОНЕЦ
Задания, перенумерованные от 1 до N
N, L длительность вводятся
Заранее ясно, что потребуется процессоров.
(для каждого процессора)
Задания, перенумерованные от 1 до N
N, L длительность вводятся
Заранее ясно, что потребуется процессоров.
(для каждого процессора)
(Число процессоров должно быть минимизировано)
(Число процессоров должно быть минимизировано)
Это — строгая формулировка проблемы. Мы видели, что ALICE работает с числовыми данными, которые вводятся в четвертой части в том порядке, в котором они были указаны в тексте: сначала N и L, затем вектор длительностей. Система использовалась для обработки ситуаций, в которых число заданий доходило до нескольких сотен (см. разд. 8.7) ; здесь приводится пример, содержащий только девять заданий, длительности которых составляют соответственно 6, 2, 8, 3, 6, 15, 6, 9 и 13, а значение L= 18, что даст нам возможность в разд. 8.3 проследить за полным решением задачи системой. Тогда три последние строки формулировки будут такими:
9, 18(Значения N н L)
2, 8, 3, 6, 15, 6, 9, 13 (длительности)
КОНЕЦ'
Отметим, что для различных значений длительностей решения существенно различаются, в частности, если длительность задания 1 изменится с 6 до 7. Мы увидим, что система адаптируется к входным данным, но не опирается на использование какого-то определенного метода для формального решения этой задачи (разд. 8.3).
Пример 2. Существуют программы типа <(Численный анализ'* для решения линейных или нелинейных задач в области
математического программирования. Например, найти в булевых переменных все решения системы
О =^ Х[%4 + 3尤2%5 — %] —■ 2%з — Х4Х5 — 1,
0 W 2%] + 5為—2%4 — 3%5 — 2,
0 ^^ %2汇4 + %1%4 + 2 --;5%].
В разд. 8.3 мы увидим все преимущества неалгоритмических формулировок системы ALICE и ее эффективность при обработке символьных выражений. В данном случае формулировка выглядит просто:
ПУСТЬ
' МНОЖЕСТВО / = [1, 5] МНОЖЕСТВОВ = [0, 1]
НАЙТИ ФУНКЦИЮ%:/f 8
c 0 w%⑴*尤⑷ + 3 * %⑵*尤⑸一%⑴——2 * %(3) 一
—% ⑷ * X (5) ■— 1,
0 < 2 * X (1) + 5 * % (3) — 2 * X (4) - 3 * % (5) - 2'
0《尤⑵*%⑷ + % (1) * %⑷ + 2 — 5 * X (1) КОНЕЦ
Числовых данных здесь нет.
Пример 3. В городе необходимо наилучшим образом расположить центры аварийных служб (медицинской помощи, пожарной команды и т. д.). Для каждого возможного размещения центра в прилегающем районе определяется задержка, как показано на рис. 8.1. Этими службами должны быть обеспечены все районы. Кроме того, необходимо обеспечить минимальную общую стоимость организации всех центров при известной стоимости каждого из них. (Встречаются также аналогичные задачи без оптимизации.) Через еь ..., е8 обозначены возможные места расположения центров, окружности показывают границы обслуживаемых районов, а гь ..., г3 — сами районы. Введем также обозначения R = {гь …,%}. Стоимости &, ..., & организации центров на указанных местах обозначим с помощью вектора (3, 7, 5, 8, 10, 4, 6, 9).
В данном случае требуется найти функцию f, которая связывает каждый район по крайней мере с одним центром. Кроме того, нужно обеспечить соответствие между районами и центрами служб, приведенное на рис. 8.1. На языке ALICE это ограничение можно выразить, при описании функции f с помощью понятия “преемник”. Например, преемниками района % (т. е. возможными отображениями г3 с помощью функции f) будут
Рис. 8.1. Размещение центров аварийных рлужб.
?2, &4, е6. Теперь сформулируем задачу, используя указанные обозначения:
ПУСТЬ КОНСТАНТЫ: NR, NE число районов и центров
МНОЖЕСТВО /? = [1, NR]
E = [l,NE
КОЭФФИЦИЕНТ С из Е (стоимости центров) НА访TH ①УНКНШО 尸:Rf Е преемник GY г, г w R
f (/•) == e => Vs, s w R, e = преемннк(н), f(s)=e (если преемником района s является центр е, то этот район также обслуживается центром е)
ССMIN J С (е) (минимизация стоимости)
С
С
e三e
Эг, rwR f(r) = e ;КОНЕЦ
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
КОНЕЦ
КОНЕЦ
Ранг
2 110 111 1 2 2 2 2 2 0 о о о
ОО о 200200 2n1 2 12 12 2
ПУСТЬ
Определение (часть 1)Описание данных
НАЙТИ
Цель (часть 2)
С
Ограничение (часть 3)
КОНЕЦ
Конец формулировки
CST
константаВсе эти слова соответ-
ENS
множество‘ ствуют определениям, дан-
СОЕ
вектор числовых коэффици- ным пользователем исходя
ентовнз ранее определенных объ-
СОА
вектор алфавитно-цифровых €ктов
коэффициентов
МАТ
матрица
FON
функция
INJ
инъекция
SUJ
сюръекция
BIJ
биекция
sue
вынужденный преемникпо списку объектов (см.
текст)
PRE
предшественниктам же
SYM
симметрия преемников
DIS
вынужденное разъединение ( и / разъединены, если
i* j今 f(i),f(j)
VAL
стоимость, связанная с каж-
дым образом
DMA
f максимальная и . мини-
< мальная степень в про-
DMI
(странстве образов
CHE
путь
ARB
дерево
CIR
схема
MIN
минимум
MAX
максимум
>, <,《,
小=/=,=,十,一,*, /в обычном смысле
MOD
модуль
OBJETS
определение множества че
рез его элементы
SUR
связать коэффициент/мно-
жество
PDT
декартово произведение
INC
включено в
APP
принадлежит
от ... копределение функции
QQS
каким бы ни был
EXI
существует
Таблица 8.1. Словарь языка ALICE
Словр
Значение
Комментарий
Продолжение табл. 8Л
Слово
Значение
Комментарий
Ранг
NON
логическое отрицание
1
UN
объединение
2
IN
пересечение -
2
И, ИЛИ,
в обычном смысле
2
SIG
сигма
то же
2
Таблица 82 Синтаксис языка ALICE
<формулировка>
=<фраза>*<данные>
<фраза>
=
(описание) | (ограничение) | КОНЕЦ
(описание)
=
ПУСТЬ CST <имя константы) |
ПУСТЬ ENS (определение множества) | ПУСТЬ <вектор><имя вектора) SUR <имя>| ПУСТЬ МАТ <имя матрицы>РВТ<имя> (имя> НАЙТИ <функция><Цмя функции) : <имя> ->-<имя><опция>*
<определение множества)
[<имя константы>,<имя константы〉] |
OBJET <ий^ объекта)* 1
UN <имя><имя>1
IN <имя><имя>
<вектор>
СОЕ] СОА
<функция>
<опция>
FONIINJ|SUR|BIJ
SUC|DIS|DMI|DMA1CIR|ARB|SYM|VAL ,
<ограничение>
=
С (логическое выражение)
(логическое выражение)
=
(бинарный оператор) (логическое выражение>
^логическое выражение)|
NON (логическое выражение) |
<алгебраический оператор) <выражение выражение)]・
MIN <выражение> |МАХ<выражение> ]
<квантор> АРР<имя> <имя>(логическое выра-
жение>
(бинарный оператор)
==т
今 |a|OU|ET
<квантор>
QQSIEXI
< алгебраический опера-
<|>|> 1 W" = 1 =/=
тор〉 (выражение)
=
<операция><выражение> (выражение) |
<число>|<имя>|
SIG АРР <имя><имя><выражение>
〈операция〉
+ | — |*|/|MOD
<число>
=
〈《цифра»〉1 <число><«цифра»>
<ИМЯ>
=
<^буква»>|<имя><«буква»>
Обозначения. Через <х> * обозначена логическая операция объединения величины х с самой собой произвольное число раз. Вертикальной чертой | обозначены альтернативные значения.
Во^ождн также и другие эквивалентные формулировки. В данном ci亨Е€~бнмн бы пригодны и двузначньге переменные, как в примере 2, но формулировка оказалась бы более громоздкой.
Эти задачи решаются достаточно быстро. Их решение системой ALICE описано в разд. 8.3.2.
В языке системы ALICE имеются и другие ключевые слова, хоторые облегчают запись классический ограничений. Система “знает” понятия сюръекции, инъекции и биекции. Она кпони- мает" все обычные логические обозначения, знает,. что такое дерево, путь, схема. Целью разработки системы являлось сохранение доступных, максимально понятных формулировок задач, близких к обычному разговорному языку. В табл. 8.1 приведен полный список известных ALICE слов и их значения; (ранг слова представляет собой число членов, которыми оно управляет).
Каждое слово, не входящее в этот список, рассматривается как новый объект, описание которого должно содержаться в части определений после слова ПУСТЬ.
В табл. 8.2 приведены синтаксические правила образования предложений языка в форме Бэкуса. Система использует префиксную польскую запись, которая, не нарушая однозначности выражения, позволяет записывать его единой строкой без использования скобок. Мы, однако, в тексте сохраним обычную запись для удобства восприятия.
Модуль решения задачи
Ниже этот модуль описан в общих чертах. Более подробное описание приведено в разд. 8.5. ,
Система ALICE имитирует поведение человека, приступающего к решению задачи:
Постоянно контролируется общий ход решения задачи: на каждом этапе решается наиболее простая подзадача, на^ сколько это оказывается возможным в процессе решения. Порядок решения определяется на ходу в зависимости от действую* щих ограничений и числовых значений переменных, а не так, как в классическом программировании, где порядок выполнения инструкций раз и навсегда определен программистом. На каждый момент ALICE выбирает такую степень трудности, с которой она сможет справиться, что очень похоже на действия человека. Мы, например, при решении задачи не используем единый алгоритм, но уточняем метод,решения в зависимости от имеющихся данных й даже изменяем его в процессе решения.
Для различных типов ограничений предусматривается свой подход к решению задачи. Все простые ограничения, т. е. затрагивающие не более двух объектов, находят непосредствен-
ное отражение во внутреннем представлении системы с помощью гиперграфа (разд. 8.5). Другие ограничения обрабатываются в форме, эквивалентной обычной алгебраической записи.
Составляется план решения. В его основе лежит углубленный анализ начальной ситуации, в частности он зависит от оценки трудности задачи, от переменных и ограничений, имеющих важное значение, на основе которых устанавливаются критерий, определяющие решение задачи...
В процессе решения системой предпринимаются три .основ- йых действия.
Перенос ограничений
Речь идет о таком использовании доступной системе информации, которое позволяет получить наибольшее количество новых сведений. Анализ выполняется от наиболее простого к наиболее сложному: чем более коротким является выражение для ограничения, тем больше вероятность его использования. Перенос осуществляется с помощью указателя во внутреннем графическом представлении для ограничений с двумя переменными, для других он осуществляется в алгебраической записи. В фазе переноса ограничений система ALICE остается максимально возможное время. Тем не менее для многих задач (все NP-полные задачи, разд. 8.4.4} этого недостаточно для получения результата. .
Построение гипотез
Итак, ALICE, откладывает перебор насколько это возможно. Если оказывается, что таким образом решить задачу невозможно, ей необходимо попытаться сделать интеллектуальный поиск. Вместо того чтобы заниматься слепым перебором, ALICE определяет наиболее вероятное значение для наиболее важного элемента (разд. 853). После этого ALICE возвращается к анализу и переносу ограничений. И наконец, при решении определенных задач остается найти наилучшее решение с учетом данной функции стоимости.
Получение и доказательство оптимального решения
Кроме установления критериев, оптимизирующих стоимость каждого этапа выбора,. ALICE доступны методы усиления и ослабления ограничений, которые позволяют определять окрестность оптимального значения и определять само эта значение, входя еще раз в фазу переноса. .
.3.1. Перенос ограничений ',
Эта фаза основана на алгоритме унификации (гл. 3), который позволяет выполнять операции с выражениями так же, как
мы это делаем вручную. Он позволяет также упрощать выражения типа
4<3f ЛОЖЬ,
2% — 3y + %#=0—> 3% — Зу,0, а затем х^у.
Специальные процедуры, которые уточнены в разд. 8.5.2, позволяют, кроме того, получить необходимые условия выполнимости. Например, если ALICE среди прочих известны также соотношения
2&%《5, 0《у&2, 0&К9,
0 = 2% + у —«г —9,
где х, у и г — целые, то она выводит из них новую информацию
(х = 4 или % = 5) и(2《3).
Возвращаясь к первому примеру (разд. 8.2), из алгебраического ограничения на величину вектора длительностей
Vr,厂 wT Z д『нт(/)& 厶 ter
выполняя суммирование no r, ALICE выводит
X длит = 68 & р* • L,
где р* является оптимальной величиной числа процессоров. При L = 18 получаем р*》4. Для лучшего понимания этой фазы приведем полное решение примера 2 с булевыми переменными, которое осуществляется с помощью переноса. Напомним условие: найти решение системы уравнений, в которой переменные принимают значения 0 или 1. Итак,
D⑵②D⑵②0 ^^ 打%4 + 3%2尤5 - %] — 2%3 _f 尤4X5 -■ 1,
D⑵②
D⑵②
0 《 2%[+ 5%3 — 2%4-з%5 — 2>
0 ^^%2尤4 +%1%4 + 2 — 5尤卜*
ALICE анализирует ограничения одно за другим в порядке их сложности. Ограничение (2) оценивается как наиболее простое, т. е. способное дать наибольшее количество полезной информации (разд. 8.5.3). Из него ALICE по формальным правилам выводит новое ограничение
202修 + 5尤3,(2i)
которое приводится к виду .
'1《勺 + *3, а затем к виду (修=1) ИЛИ (x3 - 1).⑵i)
Затем анализируется ограничение (3), которое дает
5尤1 & 4; отсюда Xj = 0.
С учетом ограничения (2н) находим х3 = 1.
Получается система уравнений, эквивалентная исходной:
0 &Зх2х5 х4х5 — 3,(liii)
0<3 —2х4 —Зх5,(2iii)
0&%2%4+2.(3iii)
Последнее ограничение можно исключить, потому что оно удовлетворяется всегда. Из первого неравенства находим
3 < Зх2х5,(Hv)
а также х4х5 + 3^3,(lv)
или, упрощая выражение (Иу), получаем (х2 = 1) И (х5 = 1).
Из ограничения (1о) следует(Х4 = 0) ИЛИ (х5 = 0), и приходим к окончательному результату 尤4 = 0.
С уже имеющимися результатами это дает единственное решение: (0 1 1 0 1).
.3.2. Перебор вариантов
В обычных программах получить решение можно только с помощью полного перебора, при этом стоимость решения резко возрастает при увеличении числа вариантов. В более совершенных программах, использующих методы возврата управления или йеявного перебора, Дерево поиска определяется раз и навсегда и не предпринимается никаких попыток для устранения бесполезных выборов в процессе решения, что на практике приводит к большим потерям. Действительно, если необходимо п раз сделать выбор и при этом пространство поиска каждый раз делить на два, то время вычислений достигает порядка 2拉.
В системе ALICE используется другая процедура поиска. Для того чтобы избежать экспоненциального увеличения времени вычислений, выбор варианта осуществляется с учетом контекста, благодаря чему становится доступным большое количество полезной информации и оптимизируется процесс дальнейшего решения задачи, а кроме того, максимально уменьшается полное число этапов выбора. Это возможно потому, что как только сделан выбор, система возвращается к фазе переноса- ограничений. Более того, ход решения задачи постоянно контролируется с помощью общего плана.
Различные типы и критерии выбора
Оригинальность системы ALICE заключается в постоянном самопрограммировании. Схема поиска решения не является
заранее заданной, система ,на каждом шаге сама выбирает наилучший путь. Но при этом ей приходится решать два вопроса:
Какого типа выбор должен быть сделан?
Какие критерии можно использовать, осуществляя выбор?
Выбор. Выбор соответствует временному присоединению ограничения. При этом интуитивно ясно, что пространство поиска должно быть распределено наиболее оправданным образом.
Для этого можно использовать классический способ, который состоит в присвоении переменной произвольного значения.
Временно -исге^ю vennoeВременно -исге^ю vennoeРис. 8.2. Результат выбора в пространстве поиска.Рис. 8.2. Результат выбора в пространстве поиска.
Временно -исге^ю vennoe
Временно -исге^ю vennoe
Рис. 8.2. Результат выбора в пространстве поиска.
Рис. 8.2. Результат выбора в пространстве поиска.
В системе ALICE он применяется только при последнем проходе, так как его недостатком является рассмотрение слишком малой части пространства. Система отдает предпочтение менее жесткому выбору, состоящему, например, в задании границ изменения переменной или в задании ее четности (рис. 8.2).
Другой способ, принятый в системе ALICE, заключается в выполнении вывода в обратном направлении, когда в качестве цели выступает множество возможных предшественников. При этом система ограничивает затраты своих ресурсов, оставляя их в разумных пределах. Наконец, система оказывает предпочтение разъединительным ограничениям типа «из двух элементов один или А, или В», которые для нее наиболее понятны.
Критерии. ALICE продвигается в решении задачи, постоянно руководствуясь главной стратегией: делай то, что наиболее информативно.
В ходе решения задачи эта стратегия реализуется с помощью критериев: так же как наиболее эффективными являются ограничения, содержащие одну или две переменные, так и наиболее информативным является выбор в том случае, если переменная может принимать только небольшое число значений. Всякие элементы, ограничения или переменные, которые выделяются из общей массы, привлекают к себе внимание системы, и она их анализирует с помощью переноса или выбора в зависимости от
обстоятельств. Целая группа критериев постоянно участвует в анализе каждой из величин, связанных с решением задачи, но на конкретном этапе выделить нужную величину можно только с помощью контекста, численных данных и текущего состояния.
Приведем краткие формулировки некоторых критериев:
Число ограничений, в которых участвует одна и та же^ переменная. ,
Сложность ограничений.
Число значений, еще возможных для переменной.
Число множеств, отображения которых должны быть разъ-Л единены.
Значения коэффициентов.
Значения второго члена.
Границы изменения переменной,
Различие между локальными оптимальными затратами и вторичными затратами.
Число возможных предшественников.
Все эти критерии просты и естественны. Идея их использования состоит в том, что они присутствуют все вместе, а на каждом шаге применяется только наиболее значимый. Но критерий, который был вполне приемлем вначале, может впоследствии утратить свое значение, поэтому в системе ALICE предусмотрена оценка их полезности и замена одного на другой в случае необходимости. Это происходит всякий раз, когда решение достигнуто и нужно перейти к новой цели или когда оценка, на которой основана эвристика, потеряла значение.
Лербый этап: доступноеЛербый этап: доступноеВторой зтап: хорошееВторой зтап: хорошееВ разд. 8.6 показано преимущество системы над жестким классическим программированием на примере анализа трудной проблемы из области исследования возмущений.
Лербый этап: доступное
Лербый этап: доступное
Второй зтап: хорошее
Второй зтап: хорошее
Тр&тий зтап; Заказа ■тетстби оптималь-ности.Тр&тий зтап; Заказа ■тетстби оптималь-ности.Общий план решения (рис. 8.3)
Тр&тий зтап; Заказа ■тетстби оптималь-ности.
Тр&тий зтап; Заказа ■тетстби оптималь-ности.
Прежде чем приступить к решению задачи, система ALICE предпринимает ее полный анализ. Сна
чала она записывает задачу во вну- рис. 8.3. Общий план решения треннем представлении. При этом для системы ALICE, ограничения представляются в наиболее удобной для системы форме. Предпочтение отдается графической, а не обычной алгебраической форме. ALICE проверяет ограничения на непротиворечивость и оценивает трудность решения задачи, а также проверяет некоторые стандартные значения для того, чтобы сразу найти очевидные решения.
Определяются подходящие для данного случая критерии. В максимальном объеме выполняется перенос информации, и, если это не приводит к нахождению решения, система переходит в фазу выбора с последующим возвратом к переносу информации. Если задача не допускает оптимизации функции стоимости, поиск прекращается после нахождения первого решения (или после нахождения всех решений по требованию пользователя). В противном случае ALICE изменяет порядок использования критериев для минимизации этой функции. Система в данном случае выступает в роли пессимиста и ставит перед собой цель уменьшения стоимости в зависимости от трудности задачи и оценки числа решений в рабочем пространстве. Наконец, система показывает оптимальность решения с помощью одного из следующих трех аргументов:
Она нашла нижнюю границу стоимости и умеет находить решение, стоимость которого в точности равна этой границе (см. пример 1).
Она показывает, что если к исходной задаче добавить ограничение (при этом полная стоимость ниже наилучшего известного значения), то не существует никакого решения, т. е. найденное решение является оптимальным (см. пример 1 и разд. 8.6.2).
Для получения оптимального значения она полностью анализирует пространство поиска. Система делает удачный выбор, дерево поиска часто остается разумным,, а иногда возможно и его неявно.е, но полное изучение (см. ниже пример 3).
Решение примеров
Напомним, что работа системы ALICE подробно описана в разд. 8.5.
Пример 1. План решения: 1) анализ трудности задачи; 2) поиск хорошего решения; 3) доказательство его оптимальности. ,
Критерии, подходящие для данного случая; длительность выполнения заданий; доступное место в процессоре; справедливое .распределение заданий по процессорам.
Этап /. Как только задача выражена во внутреннем представлении, становится очевидным тривиальное решение — каждое задание выполняется на отдельном пропессоре. В этом случае p(i) = /, стоимость решения равна 9. Задача оценивается как легкая, требующая небольших ресурсов.
Этап 2. Сейчас ALICE пытается найти наиболее экономичное решение. Задание с наибольшей длительностью она размещает на уже занятом процессоре с тем расчетом, чтобы не превысить
обстоятельств. Целая группа критериев постоянно участвует в анализе каждой из величин, связанных с решением задачи, но на конкретном этапе выделить нужную величину можно только с помощью контекста, численных данных и текущего состояния.
Приведем краткие формулировки некоторых критериев:
Число ограничений, в которых участвует одна и та же^ переменная. .
Сложность ограничений.
Число значений, еще возможных для переменной.
Число множеств, отображения которых должны быть разъ-Л единены.
Значения коэффициентов.
Значения второго члена*
Границы изменения переменной.
Различие между локальными оптимальными затратами и вторичными затратами.
Число возможных предшественников.
Все эти критерии просты и естественны. Идея их исполь
зования состоит в том, что они присутствуют все вместе, а на каждом шаге применяется только наиболее значимый. Но критерий, который был вполне приемлем вначале, может впоследствии утратить свое значение, поэтому в системе ALICE предусмотрена оценка их полезности и замена одного на другой в случае необходимости. Это происходит всякий раз, когда решение достигнуто и нужно перейти к новой цели или когда оценка, на которой основана эвристика, потеряла значение.
Рис. 8.3. Общий план решения для системы ALICE.Рис. 8.3. Общий план решения для системы ALICE.В разд. 8.6 показано преимущество системы над жестким классическим программированием на примере анализа трудной проблемы из области исследования возмущений.
Рис. 8.3. Общий план решения для системы ALICE.
Рис. 8.3. Общий план решения для системы ALICE.
Общий план решения (рис. 8.3)
Прежде чем приступить к решению задачи, система ALICE предпринимает ее полный анализ. Сна-
чала она записывает задачу во внутреннем представлении. При этом
ограничения представляются в наи
более удобной для системы форме. Предпочтение отдается графической, а не обычной алгебраической форме. ALICE про* веряет ограничения на непротиворечивость и оценивает трудность решения задачи, а также проверяет некоторые стандартные значения для того, чтобы сразу найти очевидные решения.
ленно оптимизировать слишком рано, когда еще нет ни одного решения или имеется только одно решение! ALICE будет искать наиболее информативные ограничения, даже если для этого придется преодолеть значительные трудности программного характера. Формальные преобразования выражений позволяют избежать использования обычных численных методов, последовательных и слепых (симплексного метода, градиентных методов).
Рис. 8.5. Локализация (внутреннее представление): район г5 не может быть обслужен с помощью е2, <?4 или еб.
Пример 3. Его формулировка в действительности целиком взята из графического представления в системе ALICE, которое приведено на рис. 8.5.
На первом этапе находим очевидное решение: для размещения каждого центра аварийной службы берется первая попавшаяся подходящая точка (первый преемник). Допустим, что f ⑴=1, f(2) =3,八3) =4, f(4) =7, f(5) =2.
Тогда полная стоимость ^) = 3 + 5 + 8 4-6 + 7 = 29^
На втором этапе в качестве критерия берется минимальная стоимость для области, которая имеет наименьшее число преемников. В этом случае ALICE полагает f(l) = 1, f(4) = 7, затем f(2) =3 и f(3) =«6, а также f(5) =6 с полной стоимостью, которая уменьшается до 3 +© + 5 + 4= 18.
На третьем этапе определяется нижняя граница стоимости, исходя из того, что каждый район должен быть обслужен, а наиболее подходящим условием для этого является минимальная стоимость, определяемая их преемниками. ALICE рассматривает сначала наиболее стесненные районы (т. е. с наименьшим числом преемников): таким образом, район,4 стоит по крайней мере 6, rl по крайней мере 3, г2 по крайней мере 4 и стоит 4. Тогда оптимальная величина Z* должна удовлетворять условию
-Z*》6+3 + 4+ 4 или Z*》17.
(Г4)(П)(г5)(г2)
Кроме того, из этих минимальных стоимостей можно всякий раз вычитать начальную стоимость без изменения решения. Далее будем рассматривать работу ALICE с новыми уменьшенными стоимостями: (0, 0, 1, 0, 6, 0, 0, 3).
Этап 3. Остаточная стоимость размещения центра 5 недопустима из-за того, что она больше разности zO— 17, то же можно сказать о центре 8. Отметим, что даже в тех случаях, когда в оптимизации нет необходимости, ALICE дает относительное расстояние до оптимума.
На этом этапе автоматизации главным критерием становится следующий: если решение с наиболее высокой стоимостью не принимается, брать любую дугу, которая эту стоимость уменьшает.
В данном случае выбор f (4) — 7 является вынужденным. Если бы f(2) отличалось от 4, то полная стоимость с необходимостью увеличилась бы на 1. Если же f(2) =4, то области 3 и 5 также охватываются обслуживанием. И наконец, f(l) = 1 с нулевой приведенной стоимостью, так что расположение мест 1, 4 и 7 является оптимальным со стоимостью 17.
Результаты ,
На сегодняшний день более сотни задач из самых различных областей были решены с помощью системы ALICE. Эти задачи связаны с такими разделами дискретной математики, как оптимальная связь, диофантовы уравнения, пути Эйлера и Гамильтона, а также с практическими приложениями, такими, как распределение тока высокого напряжения по сетям французской государственной компании иЭлектриситэ де Франс" (EDF), планирование, организация снабжения, составление расписаний, помощь в архитектурных разработках с элементами оптимизации, оптимальное обнаружение аварий, использование накопителей на магнитных дисках в операционных системах, коммерческая деятельность, организация обслуживания. Решение последней задачи весьма трудоемко, требует больших вычислительных ресурсов, и на этом примере можно оценить эффективность системы ALICE.
Кроме того, с помощью этой системы было решено около пятидесяти головоломок и логических задач (магические квадраты и кубы, задача с 8 ферзями, головоломки Льюиса Кэрролла, Сэма Лойда и Мартина Гарднера), что свидетельствует о большой гибкости программы и мощности языка. Список решенных задач с комментариями и решениями можно найти в разд. 8.7.
Отметим небольшое число выборов и малое время вычислений. После испытаний и экспериментов на этой системе в
реальных условиях в течение нескольких лет я смог убедиться в ее устойчивости и высоких эксплуатационных качествах. Основное ее преимущество состоит, несомненно, в ее практической пользе. Время, которое она тратит от получения формулировки задачи до выдачи решения, составляет от нескольких секунд до нескольких минут. Класс задач, для которых применим такой подход, огромен;
Другое преимущество системы лежит в области теории. Оно состоит в совершенно новом и открытом направлении программирования. Показана возможность создания систем, для которых достаточно дать только формулировку задачи, а ход решения полностью определяется самой программой, которая выбирает наиболее эффективный и подходящий путь.
Работа системы ALICE
Нам осталось рассмотреть следующее: внутреннее представление задач, обработку алгебраических ограничений, процедуры выбора.
Представление задач
Обычно программа разрабатывается для решения одного типа задач и используется одно представление. В данном случае необходимо уметь представлять произвольные задачи с конечными множествами и произвольными .ограничениями. В идеальном случае; как в примере 3, все формулировки надо выражать в компактной форме, предусматривающей предварительную компиляцию, хотя для выражений типа
Vi, У Е, £ а «, /) • х (/) > b (/)
не существует другого представления, кроме приведенного классического алгебраического. Для системы ALICE наиболее подходящим является представление в форме ^изображений" (графов и гиперграфов) во всёх случаях, когда это допустимо, т. е. при наличии простых ограничений, связывающих не более двух переменных и при сохранении всех остальных в алгебраической форме.
Графическое представление
На рис. 8.6а приведено общее представление организации информации. Для этого используется в основном двухчастичный граф: все точки слева, принадлежащие множеству D, являются начальными объектами, значения которых должны быть най-
Рйс. 8.6а. Схема двухчастичного графа внутреннего представления задачи.
дены. Точки справа, принадлежащие множеству /, являются возможными изображениями этих объектов.
Если в формулировке задачи нёт других указаний, возможно существование всех дуг, исходящих из каждой точки 〃,〃三 w D н приходящих в каждую точку и, и 巨 /. С дугами и точками связана определенная информация ——значения коэффициентов и других величин. В процессе решения задачи некоторые значения могут оказаться запрещенными. Постоянно доступной является важная информация: возможные предельные значения переменных^ число преемников для всех и из D, число предшественников для всех и йз L '
Когда искомые функции принадлежат особому типу — инъекции или сюръекции, опции "вынужденная .степень” минимального или максимального числа точек изображения, — то така兄 информация выражается локально: два вектора, связанные с точками множества /, указывают на минимальное (соответственно максимальное) число разрешенных предшественников. Напрнмер» для биекции они оба принимают- значение 1.
Что касается гиперграфа, то он строится на вершинах множества D: если он существует, то выражает разъединение, или, что то же самое, ограничения, которые требуют, чтобы одно семейство точек представляло собой совершенно различные изображения (задачи перестановок, окрашивания, планирования). Эти семейства (или гиперграни: они связаны с произвольным числом вершин) запоминаются. В завершение интерпретации формулировки с помощью специальной процедуры отыскивается наиболее экономичное множество разъединений, для того чтобы охватить множество D максимальными семействами. Такого рода исобирание крошек*' служит, в частности, для того, чтобы затем быстрее выполнять выводы при наличии разъединяющих ограничений.
Формальное представление
Другие ограничения обрабатывают с помощью алгоритма унификации. Выражения могут быть, в частности, нормализованы с помощью правил перезаписи, приведенных в табл. 8.3. Начальные связи всегда выражаются с помощью символов =/=, W или =, а второй член всегда равен 0.
С помощью табл. 8.3 можно осуществить некоторые тапы унификаций второго порядка (над операторами)• Например, символ OS1 в действительности означает +, X, / или модуль; OS2 означает = или =#; OS3 означает =, =/= или 4=; OS4означает =или -> (перезапись самого себя); fff означает произвольную функцию.
Предусмотрены фильтры для уменьшения числа попыток унификации. С каждым выражением связан характеристический вектор, учитывающий головной оператор, наличие числовой константы в первом члене, частоту появления каждой переменной. В зависимости от этого вектора выбираются соответствующие правила. Наличие кода CSPi указывает, что при унификации вызывается процедура численных вычислений.
Передача информации между двумя представлениями
Все ограничения, содержащие единственную переменную, исключаются из пакета алгебраических ограничений и запоминаются в графе. Таким образом, соотношения f(l) =3, f(2) У= 4 и f(3)>2 означают соответственно назначение, исключение дуги, перемещение указателя в графе.
В графе представляются также линейные соотношения между переменными типа f(4) = f(5) + 6, неравенства типа f(6) W ⑺,разъединения типа f (2) =/= f (4).
Таким образом, чем дальше продвигается решение задачи, тем большее число ограничений упрощается и большим стано-
Таблица 83
0*х->0
О + % х•
-(—%) —> X
—х>0~>х = 0
с * (x + t/) -> с * x + с * z/ .
—(х у) —х у
X 串一у -> —X * у
% *(У 承—z)—尤 * (у * z)
О 0S2 с -|х —>■ О 0S2 ■— с -J*- х
О 0S2 с + — х + у —> О 0S2 ―■ с + х + — у О 0S2 cl + (—с2 * х) —> О 0S2 — cl + с2 * х 0= с * f疗 х -> 0 = fff х истина =т f % ложь => x ^ истина истина ^=> х -> х ложь v=> х х F(V4У) >m元一1 y 1(^ху)^Ух"]у
П(х ИЛИ ^)->(Л х) И |у) □ и И у)>(1%) ИЛИ ([у)
(0< = х) -> 0 < == —1 х истина ИЛИ х истина ложь ИЛИ х -> х с 0S4 с -> истина cl 0s4 ^2 -> ложь х > g0 ^^ 尤 + — у -|—-1
少 V y f0《 一 х - " 上一f 1 x — у х + - у —х 0SO->O 0s2#
(% 十 3)+ Z ~> x + (у + z)
(x * y) * 2 -> X * (g *2)
% HX —A 0
X + (^-X + y)-> ^ x * 匂/%) f у —x*(y/x)-^—y —(^) —x/y•
x/-y->~x/y
% * (乡/Z)-*(x* y)lz x/z + y/z^ (x. -\- y)/z % + x f 2 * x x 4- (x + y) 2 * % + g x + c * 尤-> (c 十 1)家 % X + ((c * %) + y) (c + 1) * x + p —X+/* x~> (r — 1) * x —% 4" (9 * x) + y) -> (c — 1) * 尤 + g cl * x H- c2 * x -> (cl + ^2) * x cl * x 4- (c2 * x + Z/) -> (cl 十 c2) * % + у f (x +,)《+ —y
0 —> 0
* x->x
—1 *x
Продолжение табл, 8.3
(c\->fffc2)->(fffc2^c\)
(cl -> с2 + fff 6 f (fff 尤 f cl + —c2)
(x x) истина
cl 0S1 c26csp 1 cl
О 0S3 cl 今 CSP 2 cl
0 0S3 cl + c2* 疗fx,CSP 3 0S3 cl c2 * fff x
0 = —fff x + ggg у ■> CSP 4 = fff ggg x у сба x 0S3 с CSP 5 0S3 с coa x
fff x 0S3 cf CSP 6 0S3 c fffx
сое x 03 CSP 7 0S3 с coc 尤
mat cl x 0S3 c2->CSP 8 0S3 r2 mat cl x mat x cl 0S3 c2f CSP 9 0S3 c2 mat xcl 0<=cl + c2*x->CSP 10 cl c2 * % X,w£Q->CSP И i^EQ
ViwEQ 6 csp 12 Ze BQ
WiwEQf CSP 13 i^EQ
Viw SUC / Q~>CSP 14 I SUC / Q
▼У PRE j Q 4 csp 15 i PRE j Q
вится их число, непосредственно представленное в графе. В конце решения вся информация содержится только в графе.
В процессе каждой модификации графа специальные процедуры выполняют выводы, связанные с контекстом:
при назначении f(u) = у для всех объектов, находящихся в разъединении с 〃,запрещено изображение о. Если достигнута максимальная степень и, то все предшественники запрещены;
при запрещении дуги производится проверка оставшихся возможных изображений. Если осталось только одно из них, выполняется соответствующее назначение. То же происходит, если одна из вершин множества / достигает минимальной степени; 扌
8.5.2. Обработка алгебраических ограничений
Общая процедура анализа ограничений
Эта процедура применяется ко всем ограничениям вида
Тр-Тп^0 или Тр-Тп = 0,(С)
в которых все члены со знаком + сгруппированы в Тр, а остальные—в Тп.
Когда Тр или Тп содержит не более одного члена, обработка ограничений происходит специальным образом, описание которого приведено ниже. В общем случае обработка ограничений
ЕСЛИ А> В
то
НАЧАЛО (Пересечение пусто)
ЕСЛИ А = Р И ЕСЛИ оператором является》 ТО (С) тривиально выполняется. Исключить (С). ИНАЧЕ (С) не может быть удовлетворено. НЕУДАЧА.
КОНЕЦ
ЕСЛИ А = В
то
НАЧАЛО (Пересечение уменьшено на одну точку)
ЕСЛИ А = Р И ЕСЛИ оператором является •> ТО (С) является истиной. Исключить (С).
ИНАЧЕ добавить два новых ограничения: ТР=А и Тп=А
КОНЕЦ
ЕСЛИ Л < В
ТО
НАЧАЛО (Об1ций случай)
ЕСЛИ P•<^ ТО добавить: Тр^А
■ л ■ИНАЧЕ ЕСЛИ оператором является = ТО добавить: Т“^4
ЕСЛИ РР < NN ТО добавить: Тп ^: В
ИНАЧЕ ЕСЛИ оператором является = ТО добавить: ТР^В КОНЕЦ
Рис, 8,66. Алгоритм общего анализа.
происходит в зависимости от информации, содержащейся в графе, для того чтобы получить новые ограничения, обязательно удовлетворяющиеся, как и исходное.
По структуре эти ограничения оказываются более простыми, а содержащуюся в них информацию можно непосредственно исйользовать. Основная информация связана с интервалами изменений двух вершин Тр и Тп. Для выполнения ограничения (С) необходимо, чтобы оба интервала имели относительное расположение в соответствии с основным соотношением (С).
Установлено стандартом, что ALICE всегда использует положительные переменные. Тогда процедура анализа легко записывается с помощью обозначений этих, интервалов, как и их пересечений. Обозначим эти интервалы через [Р, РР] для Тр и
[М NN\ для 7% а также А = sup (Р, W) н В = inf (РР, AW) и 岡 В] = [Р, РР] П [М AW]・
Тогда алгоритм общего анализа принимает вид, приведенный на рис. 8.66.
Специальные случаи
В первом случае член Тр или Тп является нулевым, при этом очевидно, что соотношение (С) является истиной или ложью. Если одна из этих сумм содержит только один член, то процедура упрощается и порождает столько ограничений» сколько членов содержится в другой сумме. Если Тп содержит один член, то ALICE записывает для каждого / из Тр новое ограничение:一
NN — 2 max/'.
Пример. Из ограничения
2x1 + %? - 9 > 0,
при %i 三[2, 5] и х2 ^ [0, 2] следует
2尤 1 ^: 9 — 2 Й %2 ? 9 — 10,
т. e. у 4 и ничего нового для х2.
Случай диофантовых уравнений вида ах -\- by = с обрабатывается отдельно с помощью классической процедуры конгруэнции. В данном случае особенно полезны значения, которые отмечены в графе как запрещенные. Во всех ограничениях на равенство отыскиваются общие целые коэффициенты и здесь тоже приходим к уравнениям конгруэнции.
Пример. Ограничение 15х + 18г/— 4z — 6 = 0
приводит к %м0 (mod 2) н w三 0 (mod 3), что сразу отражается в графе исключением дуг, которые не удовлетворяют этим соотношениям.
Равенства позволяют исключить переменные. Тем не менее это исключение предпринимается только в линейном случае и когда каждая • переменная появляется не менее двух раз в совокупности ограничений (в противном случае подобные подстановки не приводят к получению дополнительной информации).
Пример. Из системы (х+у=2
1 х + 2y + .3z ^s 3■ r ■
приходим К х->2 — р
и, следовательно, у + 3z 戸 1.
Неявные ограничения, в которых неизвестно точное имя объекта. Например,
Vw, uw/, 2 c ⑷&氏、(1)
u^D
Мы уже видели, что подобные ограничения могут накапливаться и приводить к возникновению общих необходимых условий, которые ALICE использует еще и как проверку на исключение. Вообще говоря, каждое ограничение такого типа, которое накладывает условие на множество W объектов ⑫,обладающих свойством Q(ш), анализируется при каждой модификации назначений в W. О»но из таких ограничений записывается в виде
с (w)^b,
收Q(5)
где запись ⑵:Q®) обозначает множество объектов 侬,которые удовлетворяют свойству Q. Если на данный момент существует такой объект Зо, для которого известно, что
С (®о) + X с(з)>6, Q
то Wo не удовлетворяет свойству Q.
Пример. В предыдущем случае в процессе каждого назначения ,(卫о) =.Uo неравенство (1) проверяется для значения и0. Стоимость 々 объектов, для которых vQ является изображением, подсчитывается следующим образом:
々=£ с (и).
f (и)=Оо
Для каждого 〃卜 удовлетворяющего условию с(〃】)>Ь —山, свойство f(〃i)=u0 не может 3Tb выполнено. Соответствующая дуга исключается из графа.
Порядок обработки ограничений
.Множество ограничений в системе ALICE является динамическим с двойным заголовком. На первом месте, как мы уже видели, постоянно находятся ограничения, связанные с добавлением или отсечением, переходами из одного представления в другое. Этим система отличается от классических программ в области операционных исследований или численного программирования. Во вторую очередь в данный момент времени система обрабатывает ограничение, которое она считает наиболее интересным/ в соответствии с процедурой, описанной ниже;
Прежде всего отметим, что приоритет отдается графу. Создается записная книжка задания, и до тех пор, пока она не исчерпана, единственной выполняющейся работой являются процедуры вывода на графе. Когда управление передается алгебраической обработке, исследуются ограничения, получившие наибольшее количество информации с。времени последнего анализа. В частности, приоритетными являются такие, у которых по крайней мере одна из неизвестных получила значение. Если
Рис. 8.7. Функция Грунди.
таковые не имеются, вступает в игру число исключенных значений с помощью графа.
Для определения порядка работы с этими ограничениями ALICE распределяет их по трудности. Чем с большим трудом поддается удовлетворению какое-либо ограничение, тем более стеснительным оно является и тем большую информацию из него можно получить.
Трудность d(C) любого алгебраического ограничения С вида Тр — Тп^^ можно представить в виде эмпирической формулы
d (С) = шах (0, b)/max(l, S —b),
где 6 ——постоянный член Тп и S ——сумма коэффициентов положительных членов, поделенных на степени членов. Чем больше b и меньше S, тем легче найти набор значений для неизвестных, удовлетворяющий ограничению (С).
Система ALICE использует также тот факт, что каждая переменная из Тл несет информацию о переменной из Тр, а имен-. но верхняя граница значений переменной из Тп ограничивает верхнюю границу значений переменной из Тр, и наоборот.
На рис. 8.7 приведена схема, дающая практическое пред-, ставление о функции Грунди. Последняя отражает логический порядок, в котором информация об этих граничных значениях может изменяться .[допустимым образом.
Сначала рассматриваются' нижние границы, - затем верхние. Сначала изучаются ограничения в значениях переменных, от которых не ожидается получить никакой дополнительной инфор-
мации. Затем новые вычисленные. границы переносятся на те переменные, которые зависят только от уже известных.
Покажем это для случая линейных ограничений. Предположим, что в системе в числе прочих рассматриваются три сле^ дующих ограничения:
f ⑴+『⑵一f(3) — f ⑷一3》0,(Cl)
/⑴一f ⑵ 一1》0,(C2)
f ⑶ T⑷一 2》0.(СЗ)
На рисунке стрелками указаны зависимости между нижними и верхними границами для различных значений неизвестных, ко-
Рис. 8.8. Общая схема управления системы ALICE.
торые соответствуют дугам, соединяющим вершины f(i) и f(j), принадлежащие члену Тр в том же ограничении (С).
Допустим, известно, что нижняя граница f(3) несет информацию о нижних границах f(2) и f ⑴.Одна из вершин — f(4)一ничего не получает от вершин f(3), f(2) и 上(1); она не имеет предшественников. В этом случае ALICE обрабатывает сначала наиболее простое ограничение, в котором в части Тп присутствует f ⑷,т. е. ограничение (СЗ),
Предположим, что реальная нижняя граница f(4) равна 5. Тогда из ограничения (СЗ) следует, что f(3) >7. Таким образом, следующим обрабатывается ограничение (С1), так как его члены больше не содержат неизученных предшественников. Из него следует
f⑴+ f⑵》3 + 5 + 7.
Предположим также, что из графа следует f ⑴ £8. Тогда /(2) ^ 7. Таким образом, все ограничения учтены в правильном порядке и с получением максимальной информации. Из последнего оставшегося ограничения (С2) следует, что f(l)=8, и окончательно получаем f⑵=7, f(3) = 7, f(4) === 5. С помощью графа и подобного анализа можно получить верхние границы и извлечь новую информацию. Система ALICE в фазе вывода
остается максимально долгое время, переходя попеременно от графа к алгебраическим процедурам, максимально откладывая выбор. Однако, когда уже невозможно получить никакой новой информации, необходимо сделать какое-либо предположение, вводящее дополнительные небольшие ограничения в задачу и позволяющее продвинуться в ее решении. Система ALICE непременно должна сделать выбор (рис. 8.8).
Процедура выбора
В системе предусмотрены семь различных типов выбора. Приведем их в приоритетном для системы порядке.
Выбрать одну из альтернативных ветвей в ограничении типа ИЛИ.
Зафиксировать нижнюю или верхнюю границу значения переменной.
Установить предел стоимости назначения.
Ввести локальную нумерацию для уравнений двух или трех переменных.
Ввести глобальную нумерацию, когда размер задачи превышает фиксированный порог.
Назначить предшественника для точки из представляемого множества.
Выбрать изображение точки исходного множества.
Выбор типа выбора
Тип 1・ Выбрать одну из альтернативных ветвей в ограничении типа ИЛИ. ALICE выбирает его всякий раз, когда одна из ветвей ограничения типа ИЛИ содержит не более двух переменных.
Тип 2. Зафиксировать нижнюю или верхнюю границу значения переменной. В выборе этого типа используется переменная, которая участвует в максимальном числе ограничений и имеет наибольшее множество Изображений. Затем это множество делится на два. Выбор имеет смысл только тогда, когда множество изображения является числовым множеством.
Тип 3. Установить предел стоимости назначения. Этот выбор является оптимистическим. Он осуществляется на втором этапе, когда, уже найдено очевидное решение. Друг за другом исключаются максимальные стоимости до тех пор, пока для каждой точки множества D множество дуг не будет уменьшено наполовину.
Типы 4 и 5. Ввести локальную нумерацию для уравнений двух или трех переменных. Ввести глобальную нумерацию,, когда размер задачи превышает фиксированный порог. Эти
типы зависят от производительности ЭВМ. Бесполезно производить сложную формальную обработку, если задача стала небольшой по размеру. Чем меньше ограничений и чем меньше дуг из множества D к множеству /, тем более выражено стремление ALICE останавливаться на этих типах выбора. ALICE всегда знает, что она умеет делать, и это принимается в расчет при оценке предельного размера. Ограничения равенства связаны с наибольшим числом формальных средств анализа, и наоборот, ограничения неравенства, а тем более ограничения типа ИЛИ, не принадлежащие к типу 1, требуют меньшего числа средств. Чем большее число ограничений принадлежит к двум последним типам, тем быстрее достигается предельный размер, инициирующий нумерацию.
Типы 6 и 7. Назначить предшественника для точки из представляемого множества. Выбрать изображение точки исходного множества. В данном случае речь идет об определении пары (объект из D, изображение из /). Эти процедуры применимы только к последнему состоянию, когда пространство поиска уже достаточно уменьшено. Типу 6 отдается предпочтение во всех случаях, когда множество / должно быть получено целиком, существует хотя бы одна точка множества /, у которой меньше предшественников, чем минимальное число преемников у точек множества Q, или ALICE отдает предпочтение точке с наибольшими ограничениями. В обоих случаях ALICE использует набор критериев для выбора пары (исходная точка, точка изображения), которая даст наибольшее количество информации при последующем решении задачи.
На различных стадиях решения задачи каждый критерий применяется только в том случае, когда для этого имеется несколько причин. Обозначим через m цену наилучШего кандидата по этому критерию. ALICE считает данный критерий выделенным тогда и только тогда, когда менее четверти кандидатов имеют цену, превышающую m— (w/4). Таким образом, эта процедура исключает критерии с плоской зависимостью (все цены имеют близкие значения) или слабые критерии (слишком много высоких цен). Подмножество кандидатов, отобранных с помощью одного критерия, затем фильтруется с помощью второго критерия и так до тех пор, пока не останется один кандидат (рис. 8.9).
Список критериев, используемых системой ALICE, приведен в табл. 8.4. Они работают и в графическом, и в алгебраическом представлениях. Затем будут приведены продукционные правила, определяющие стратегию, т. е. порядок» в котором эти критерии рассматриваются в системе.
Трудность ограничения была определена в разд. 5.2.3. Глобальная трудность ограничений на переменную из множества D представляет собой сумму элементарных трудностей. Целью
Значение критерии
Рис. 8.9. Значения трех критериев для 4 переменных. Выбор системы — переменная 3.
всех критериев является выделение наиболее трудных точек. Таким образом, критерий (6) принимает во внимание точки с
Таблица 84
Список критериев для .выбора точки в исходном множестве
Минимальное число преемников.
Максимальное число точек в разъединении.
а Максимальное число алгебраических ограничений, в которых эти точки появляются.
Минимальное значение глобальной трудности для этих ограничений.
Максимальное значение коэффициентов на этих точках.
Максимум минимального значения оценки дуг преемников *.
Максимальное значение отрыва *.
А. Максимальное значение значимости *.
Список критериев для выбора точки из множества изображения
Число возможных предшественников *.
р- Число реальных предшественников *.
V- Числовое значение этой точки.
Значения коэффициентов этой точки.
Объяснения приведены в тексте.
наибольшей ■ минимально возможной стоимостью. Критерий (7) оказывает влияние на проблемы оптимизации.
Отрыв точки — разность между наиболее низкой стоимостью и стоимостью, которая следует непосредственно за ней. Чем выше отрыв, тем более критической является точка.
Критерий (8) относится к алгебраическим ограничениям. Значимость переменной х определяется суммой изменений трудностей при изменении % от минимального до максимального значения. Сумма берется по множеству тех ограничений, в которых присутствует переменная х. Значимость х возрастает, когда глобальная трудность ограничений по переменной х уменьшается.
Критерий (9) относится к предшественникам 弘 и w D и также возможен для каждой точки и из /, тогда как реальными предшественниками из критерия (10) являются точки и из Q, для которых точки V являются изображением.
Упорядочивание критериев и стратегия ALICE
Порядок, в котором располагаются критерии, выбирается самой системой. Он зависит, с одной стороны, от типа решаемой задачи (уже по формулировке ALICE знает, что определенные критерии не подходят для данного случая), а с другой —— от стадии, на которой находится решение задачи.
Два метаэвристических правила, имеющие весьма общий характер, испрльзуются для выбора стратегии:
сделать наиболее информативный набор;
сделать выбор наименьшей стоимости.
Вытекающий из них порядок критериев определяется следующими продукционными правилами:
ЕСЛИэтап = 0 (Чтение формулировки)
Ннеизвестные являются булевыми
ТО исключить критерий (а)
КОНЕЦ ЕСЛИ
ЕСЛИ не имеется ни одного разъединения
]4ЛЙ ЕСЛИ все вершины имеют одинаковое число разъединений
ТО исключить критерий (Ь)
КОНЕЦ ЕСЛИ
ЕСЛИ не имеется ни одного алгебраического ограничения
IТО исключить критерии (с), (d) и (А)
КОНЕЦ ЕСЛИ
ЕСЛИ все ограничения являются алгебраическими
4ограничения являются линейными
ТО для вычисления трудностей использовать упрощенные формулы, первым использовать критерий (А).
КОНЕЦ ЕСЛИ
16-Л. Лорьер
ЕСЛИ
решаемая задача не связана с оптимизацией
ИЛИ ЕСЛИ не имеется оценок по дугам D X ^
IТО исключить критерии (f) и (g)
КОНЕЦ ЕСЛИ
ЕСЛИ не существует коэффициента на D
IТО исключить критерий (е)
КОНЕЦ ЕСЛИ
ЕСЛИ не существует коэффициента на Z ТО исключить критерий (б) КОНЕЦ ЕСЛИ
ЕСЛИ должны быть получены все точки {DMI^i}
IТО установить критерий (а) на минимум
КОНЕЦ ЕСЛИ
ЕСЛИ требуются максимальные степени на / {QM4 = 0} ТО в качестве формулы для (а) взять: число предшественников (v) — максимальная степень (а) установить критерий (а) на максимум КОНЕЦ ЕСЛИ
ЕСЛИ задача является оптимизационной
4 требуется минимизация функции f\D)
ТО установить критерий ⑹ на максимум ИНАЧЕ установить критерий (§) на минимум КОНЕЦ ЕСЛИ
ЕСЛИ существуют ограничения на ^ {соответственно на》} 4 эти ограничения действуют на числовые значения {соответственно на коэффициенты} точек *0
ТО установить критерий (у) (соответственно (6)} на максимум {соответственно на минимум}
ИНАЧЕ исключить критерий(Y){соответственно (6)} КОНЕЦ ЕСЛИ
ЕСЛИ этап == 1 (исследование выполнимости задачи)
И ЕСЛИ не существует тривиального решения
I ТО вначале использовать критерии (a),(b),(с),(d) н (е) КОНЕЦ ЕСЛИ
ЕСЛИ этап = 2 (решение задачи)
ТО осуществить выбор типа 3, использовать вначале критерии (f),(g) и (А)
КОНЕЦ ЕСЛИ
ЕСЛИ этап = 3'
ТО
ЕСЛИ полное число возвратов назад меньше D ТО вначале использовать критерии (f),(^) и (Л) КОНЕЦ ЕСЛИ
, ЕСЛИ число возвратов назад меньше 2X0 ТО вначале использовать критерии (&),(»,(g) и (А) ИНАЧЕ сохранить только критерии (а), (Ь), (с), (d) и (е) КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
Таким образом, по мере перехода от одного этапа к другому программа сначала является «подозрительной», затем,как только найдено решение, “оптимнстячной" и снова "подозрительной" при увеличении числа неудачных выборов, когда число ограничений возрастает. Подчеркнем, что хотя сами критерии и их упорядочивание являются всего лишь эвристическими правилами, но ALICE находит безупречно оптимальные решения. Другими словами, у нее не возникает противоречия между эвристикой и строгостью решения. Перейдем к рассмотрению средств, используемых в системе ALICE для доказательства оптимальности решения, полученного с помощью этих эвристических правил.
Доказательства оптимальности
Как только получено решение, полная стоимость которого равна Z0, добавляется ограничение Z W Z0 ко всем задачам минимизации, для которых Z является функцией стоимости. Если функция имеет полиномиальный вид, это ограничение добавляется к исходным алгебраическим ограничениям. Доказав тельство оптимальности производится в том случае, когда встречается неразрешимая задача.
Рассмотрим два часто встречающихся частных случая, обработку которых выполняется по-разному. Один из них относится к функции стоимости внда
‘ Zl=min £ стоим (u, f (и)).
который встречается каждый раз, когда определены дуги (в частности, в задачах о коммивояжере, о вращении, о распределении), а для другого функция стоимости имеет вид
Z2 = min max a (u) * f (а) .
и он относится к задачам, в которых играет роль только наиболее высокая стоимость с учетом весового коэффициента а(〃) (задачи упорядочивания, окрашивания, разрезания).
Случай 1. На этапе 3 ALICE обычным образом добивается уменьшения стоимости. Каждая точка 〃 нз D приводит к Минимальной стоимости, равной
min стоим (w, у).
Эта величина разделяется между всеми стоимостями дуг, исходящих из и таким образом, чтобы минимальная стоимость для каждой точки была нулевой. Если в последующем соответствующая дуга исключается, то ALICE осуществляет новое уменьшение стоимостей. Полученная таким образом полная сумма принимается за текущую, нижнюю границу Z решения. Оптимальность доказывается исключением дуг со стоимостью, превышающей z6 —Z до тех пор, пока одна из точек не будет иметь преемника. •
Случай 2. Для получения решения, лучшего в строгом смысле, чем известное решение для величины Z0, для всех и из D изображения и должны удовлетворять следующему срот- ношению:
и < a (u) * Z0.
Это неравенство настолько же уменьшает множество возможных изображений в каждой точке. Более того, нижняя граница оптимального значения Z вычисляется, исходя из всех ограничений вида
Vu, и 三,Р(и, S=>ZQ(4)《瓦 ;
как в случае I,
Если для точек изображения устанавливаются максимальные степени DMA (v), то ALICE уменьшает также нижнюю границу Z, где Z представляет собой ближайшее целое w, такое, что сумма у ;
X DMA(v)
1
превышает число точек в D, каждая из которых должна иметь изображение.
Вычисления границ имеют важное значение лишь в том случае, если они позволяют на достаточно раннем этапе прекратить дальнейший поиск и доказательства оптимальности. Отметим, что они всегда основываются на необходимых условиях, которым должно удовлетворять каждое решение, т. е. они выполняются с помощью погружения пространства поиска в более
Рис. 8.10. Ограничения пространства поиска.
обширное пространство с меньшим числом ограничений (рис. 8.10).
Таким образом, по построению каждое решение из R является по крайней мере таким же хорошим, как и лучшее решение из Е
Вычисление нижней границы является двойственной задачей по отношению к процессу выбора и ограничивает снизу реальное значение Z*:
Z》z*》zo.
Подробные примеры решения
Логическо-арифметическая головоломка
Франсуа и Жорж играют в теннис. Франсуа побеждает Жоржа со счетом шесть три. Подающие проигрывают четыре раза. У кого была первая подача?
Для постановки задачи нам потребуется вектор, показывающий, чья была /-я подача (/ = 1, ..., 9), и еще один вектор, показывающий» кто выиграл. Введем обозначения:
ФП(/) = 1, если /-я подача у Франсуа, 0 в противном
、 случае;
ХП(/) = 1, если /-я подача у Жоржа, 0 в противном случае;
ФВ (/) = 1, если /-й раз выиграл Франсуа, 0 в противном случае;
水В (/) = 1, если /-й раз выиграл 水ор*, 0 в 'Противном случае.
Из правил игры следует:
ФП (/) = 1— ЖП 0)'(подает ф или Ж)
ЖП (/) ~ 1 — ЖП (/ — 1), для / #= 1 (Ф и Ж подают по очереди)
ФВ (/)=1— ЖВ (/)(выигрывает Ф или Ж)
ФВ (9) = 1(последний раз выигры
вает Ф)
Полная формулировка задачи для ALICE выглядит следующим образом:
ПУСТЬ МНОЖЕСТВО ИГРА = [1,9]
BOOL = [0,1]
НАЙТИ ФУНКЦИИ ФП,ЖП,ФВ,ЖВ ИГРА —BOOL
\/ \/ \1/ \|/ \/12 3 4 5/(\ /|\ /IX z(\ zf\\/ \/ \1/ \|/ \/12 3 4 5/(\ /|\ /IX z(\ zf\С Vj / w ИГРА (ФП (j) =1-ЖП(/)) л
\/ \/ \1/ \|/ \/12 3 4 5/(\ /|\ /IX z(\ zf\
\/ \/ \1/ \|/ \/12 3 4 5/(\ /|\ /IX z(\ zf\
((/ #= 1)=>ЖП (/) = 1~ЖП (/-1))Л
(ФВ(/) = 1-ЖВ(/))
С Ефв(/)=6
/ е ИГРА
с £ .[①ПО)*來ВО)十氷口⑴*(/)] = 4
/ 曰 ИГРА
(ограничения по проигранным подачам)
СФВ (9) = 1(6)
КОНЕЦ
Задача может быть решена без перебора, как это и делает ALICE. Сначала из условий (1) и (3) исключаются перемен- ные ФП(/) и ФВ(/). После подстановки в (4) и (5) получаем
£ 水в(,)=з⑷)
1ЖП(/)-2-ЖП(/)-ЖВ(/) + ЖВ(/) = 4(50
Кстати сказать, все ЖП (/) получены из одного значения ЖП(1) с помощью соотношения (2):
ЖП (/) = 1 — ЖП (1) для четных /,
ЖП (/) = ЖП (1) для нечетных /.
Подставляя эти значения в выражение (5i), получаем , *
5ЖП (1) + 4 - 4ЖП (1) - 2 Е (ЖП (/)-ЖВ (/)) + Е ЖВ(/) -4.
■(5ii)
Затем, используя выражение (4i), находим
ЖП(1)-2£(ЖП(/)-ЖВ(/)) + 3 = 0.(5iii)
Анализ с помощью модуля конгруэнции этого равенства показывает, что ЖП (1) является нечетным и в графе этот факт отражается в выражении ЖП(1) = (1). Таким образом, первая подача была у Жоржа,
Замечание. Сумма ^ (ЖП (/) • ЖВ (/)), таким образом, равна 2, и, поскольку ЖП (/) = 1 при нечетном /, число нечетных игр, выигранных Жоржем, также равно 2. Так как девятая игра с необходимостью была выиграна Франсуа, у Жоржа имеется 4-3/2 возможностей выигрыша в нечетных играх и 4 в четных, т. е. в общей сложности для данной ситуации возможны 24 партии, хотя ALICE дает решение без единого выбора.
Задача из области производства бумаги
Предприятие должно выполнить заказ по производству п различных сортов бумаги. Каждый из сортов может быть получен на любой одной из М бумагоделательных машин. Из-за высокой стоимости изменения состава бумажной массы каждый сорт бумаги должен быть обязательно произведен целиком на одной и той же машине. Известно количество бумаги в тоннах g(i), которое нужно произвести для каждого сорта г при условии, что максимальная производительность каждой машины составляет р(/), / = 1,…,m. И наконец, известна полная стоимость c(it /) производства бумаги сорта i на машине / для каждой пары (I,/). Требуется в указанных условиях организовать производство с наименьшими затратами.
Примем следующие числовые данные (реальный случай, предложенный Н. Sandi): п = 10 сортов, т = 4 машины. На входном языке ALICE задача формулируется сразу:
! р (/)12345678910
屮 91020з12 3 4屮 91020з12 3 43 ^ ^ ^ 53 ^ ^ ^ 55 9 9 5 45 9 9 5 4о 1 ^ 1 9о 1 ^ 1 91 3 6 н 21 3 6 н 23153157 8157 8155 7 95 7 93 9161243 91612481517175815171752 82 8(/)6(/)6
屮 91020з
12 3 4
屮 91020з
12 3 4
3 ^ ^ ^ 5
3 ^ ^ ^ 5
5 9 9 5 4
5 9 9 5 4
о 1 ^ 1 9
о 1 ^ 1 9
1 3 6 н 2
1 3 6 н 2
315
315
7 815
7 815
5 7 9
5 7 9
3 916124
3 916124
81517175
81517175
2 8
2 8
(/)
6
(/)
6
С & /)
Формулировка задачи:
ПУСТЬ множество Бумага = [1 ,^] Машина = [ltm]
Коэффициент g Бумага
р Машина
с Бумага * Машина НАЙТИ функцию /: Бумага -> Машина С V/ е Машина
X i 吕 Бумага 9 (0 & Р (/)
С min £ £ 曰 Бумага с&№)■
КОНЕЦ
10,
4
3,
5,
ю,
1,
2,
3,
5,
3,
8,
2.
10,
20,
3.
13:
9,
1,
3,
14,
15,
7,
9,
15,
8.
13,
9,
20,
6,
17,
7,
9,
16,
17,
1.
18,
15,
Н,
14,
13,
8,
8,
12,
17,
12.
5,
4,
19,
2,
6,
15,
19,
4,
15,
20.
Первая фаза. В самом начале первой фазы программа пы* тается определить, существует ли реализуемое решение, т. е. функция производства,, удовлетворяющая всем ограничениям» кроме оптимизации:
min £ с(/, f (0)-
Ограничение, накладываемое на производительность £ g (。& ^р(ь), определяет необходимое условие выполнимости задачи, которое достигается путем расг!ространения этого ограничения на все множество машин. Из него получаем
Е g⑴& X p(j)・
i e БумагаМашина
С приведенными числовыми значениями обе эти суммы совпадают, их значения равны 42. Из этого программа делает выводы:
Нельзя заранее сказать о невозможности решения задачи.
Для всех / знак W должен быть заменен на строгое равенство, исключение недопустимо.
Тем не менее определенные назначения запрещены в тех случаях, когда значение д(£) превышает связанное с ним значение р (/). Для таких случаев имеем д(,)> р(/)今/〃)*/•
Из этого следует, что /(3)#= 1 и /(2), /(3), /(7), /(9)=#4. Больше здесь ничего сделать нельзя, и программа должна сделать выбор. Выбор по ограничению ИЛИ не может быть выполнен, так как не имеется ни одного ограничения такого типа. Выбор по малым значениям в принципе возможен, но исключается программой, которая считает пространство поиска достаточно малым (410 = 1 048 576), для того чтобы сделать более точный выбор типа f(i) = /. Напомним критерии, которыми здесь располагает программа для определения выбора.
Критерии для выбора в предшествующей вершине Z:
min преемников
max разъединений
max число ограничений ci
max трудности ограничений
max max коэффициентов
max min оценки
max отрыва
h: max значимости
При каждом выборе программа начинает определять рассматриваемый сорт бумаги в зависимости от этих критериев. Три критерия — Ь, с и d — исключаются сразу как не имеющие отношения к данной задаче: связанные значения являются и останутся в дальнейшем нулевыми для всех i. Затем на первой фазе отвергаются критерии оптимизации Д ^ и Л.
Остаются два критерия ——а и е. Распределение значений для критерия е (10 8 5 5...) является менее значимым, чем для критерия а. Действительно, только сорт 3 имеет двух преемников и распределение для этого критерия имеет вид (2 3 3 3 4...)- Итак, с помощью критерия е выделяется сорт бумаги 3, которому этот критерий оказывает предпочтение перед сортами 2, 7 и 9. Выбор машины j происходит с помощью следующего набора критериев:
Критерии для вершины-преемника /:
число возможных предшественников
6: число д^ствительных предшественников
*у: численное значение, связанное с /
коэффициент для /
Критерий а не совсем пригоден, так как выделяет от 10 до 6 предшественников. Критерий 0 для первого выбора вообще не
принимается во внимание, так как дает нулевые, результаты. Критерий у относится к оптимизации и также не пригоден для данного случая. Подходящим оказывается толькр критерий 6, который относится к коэффициенту для /, присутствующему в данной совокупности ограничений.
Для облегчения решения задачи с учетом коэффициента р(/), который является вторым членом равенства, программа оставляет максимально возможную свободу для i и сохраняет максимальное значение р(/). Таким образом, первые рассмотренные программой критерии для выбора i и / предусматривают следующее: разместить производство наиболее трудного сорта бумаги (критерий е) на наименее загруженной машине (критерий б), т. е. производство бумаги сорта 3 на машине 3:
1 2 3 4 5 6 7 8 9 10
12 3 412 3 491020з91020з3 3 3 8 53 3 3 8 55 9 9 55 9 9 5rtv 1 ли 11 ~1 2 1 -rtv 1 ли 11 ~1 2 1 -13 6 4 213 6 4 22 4 7 3 62 4 7 3 63 5 7 815、3 5 7 815、5 7 9 85 7 9 83 9 6 2.43 9 6 2.48 5,778 5,77281^^281^^
12 3 4
12 3 4
91020з
91020з
3 3 3 8 5
3 3 3 8 5
5 9 9 5
5 9 9 5
rtv 1 ли 11 ~
1 2 1 -
rtv 1 ли 11 ~
1 2 1 -
13 6 4 2
13 6 4 2
2 4 7 3 6
2 4 7 3 6
3 5 7 815、
3 5 7 815、
5 7 9 8
5 7 9 8
3 9 6 2.4
3 9 6 2.4
8 5,77
8 5,77
281^^
281^^
Выбор 1; f (3) = 3.
Реальная производительность этой машины уменьшается до 10. Никаких других вариантов не просматривается. Для того чтобы сделать выбор 2, программа опять последовательно анализирует подходящие критерии и на первое место перед критерием а выходит критерий е, так как распределение становится следующим: (8 5 5 5...). Выбирается сорт бумаги 9. Критерии аир отдают равное предпочтение двум машинам — 2 и 3. Окончательно их выделяет критерий р: с точки зрения решения хорошей стратегией для учета ограничений на первой фазе является максимально возможное снятие ограничений с изображения. Машина 2 еще не загружена, поэтому делается следующий выбор:
Выбор 2: /(9) = 2.
Таким образом, реальная производительность машины 2 становится равной 2, а программа, для того чтобы выполнить ограничение 2 ? (0 — Р (/) должна запретить на этой машине производство f(l), f(2), f(6), f(7) и f(8). Других возможностей не имеется и третий выбор опять ставит на первое место критерий а, поскольку два сорта бумаги — 2 и 7 — снова имеют не более двух преемников. Их нельзя выделить на основе критерия с, с помощью которого в обоих случаях получается значение 5. В конце концов вступает в действие критерий f и программа выбирает такие сорта бумаги, производство которых во всех
случаях обходится дороже. Итак, третий выбор программы:
Выбор 3: f(2)= 1 для стоимости, равной 9.
Итак, возможность производства на машине 1 уменьшилась до 4 и программа далее выбирает /(7)=# 1 и, следовательно, f(7) = 3. Четвертый выбор происходит с использованием тех же самых критериев. Нужно разместить производство бумаги сорта 6, и критерий / оказывает одинаковое предпочтение сразу двум машинам—1 и 4,——стоимости выполнения работ на которых равны 15. Выбирается машина 1 как менее загруженная (критерий б)
Выбор 4: f(6)= l.
Как показано выше, ограничения на производительность являются равенствами и единственный сорт бумаги обладает единичным значением q^t). которое соответствует остаточной производительности машины 1. Отсюда сразу получаем f(4)= 1. Итак, для сорта 8 наименее дорогой машиной является машина 4:
Выбор 5: f(8) = 4.
Использование машины 4 запрещается, поскольку обязательным условием является /(1) = 3. Для двух оставшихся сортов, задания для которых равны 2, полезным критерием является 力 с помощью которого получаем
Выбор 6: f (5) = 3.
Отсюда окончательно находим f(10)=2. Таким образом, полное найденное решение
1 2 3456789 10
3 2 3 1 3 1 3 4 2 2
имеет полную стоимость, равную 99.
Вторая фаза. Получив подобное решение всего лишь после шести выборов и без возвращений назад, на второй фазе программа предпринимает попытку получить “хорошее" решение. Для этого она использует критерии, которые связаны со стоимостью и вначале были отвергнуты. Так, если сорт бумаги, определенный в результате первого выбора по тем же причинам, по-прежнему равен 3, то машина, на которой предполагается его выпускать, выбирается программой исходя из наименьшей стоимости производства (критерий f)
Выбор 1: /(3) = 3.
Этот выбор совпадает с предыдущим, однако затем:
Выбор 2: f (9)= 1, так как именно первая машина дает для этого сорта наименьшую стоимость производства. Далее с необходимостью следует
f(4)=l, и применение критерия f приводит к следующей последовательности выборов:
Выбор 3: /(2) = 2,
Выбор 4: /(7) = 3,
Выбор 5: f (6) = 2,”
Выбор 6: f ⑴=4,
Выбор 7: f(8) = 3,
Выбор 8: f(5) = 3,
откуда следует /(10) = 2.,
Новое решение, полученное с помощью критериев оптимизации, существенно лучше старого:
123456789 10
4231323 3, 12
Полная стоимость производства равна 84.
Третья фаза. Все проделанное до сих пор не является бесполезным, но как получить действительно оптимальное решение? Проследим за дальнейшим ходом действий ALICE. Каждый сорт бумаги i должен иметь изображение f(i), поэтому выражение функции стоимости
z= £ С& f(i))
f w Бумага
показывает, что величина Z во всех случаях превышает сумму минимальных значений коэффициентов c(i,/) для каждого сорта бумаги L Обозначим эту величину через 2:
z = £ min с & /)
i е Бумага /еМашнна
и напомним еще раз, что Z ^ Z. Но программа, кроме того, выполняет преобразование стоимостей, вычитая из всех значений стоимость производства бумаги сорта I (i-й столбец таблицы; для программы ——это совокупность дуг, исходящих из 1)——минимальную стоимость для этого сорта. Тогда новые стоимости cf{i, /) получают следующие значения:
12345678910
12 3 412 3 49102039102033 8 8 3 03 8 8 3 05 0 0 65 0 0 6114 2 0114 2 02 8 и 7 о2 8 и 7 о3 8 0 183 8 0 185 0 2 15 0 2 13 5 2 8 03 5 2 8 08 0 2 28 0 2 22 7 0 192 7 0 19
12 3 4
12 3 4
910203
910203
3 8 8 3 0
3 8 8 3 0
5 0 0 6
5 0 0 6
114 2 0
114 2 0
2 8 и 7 о
2 8 и 7 о
3 8 0 18
3 8 0 18
5 0 2 1
5 0 2 1
3 5 2 8 0
3 5 2 8 0
8 0 2 2
8 0 2 2
2 7 0 19
2 7 0 19
Вычтенные 59126774151
значения.
Сумма вычтенных величин Z = 67. Точное соотношение принимает вид
z = z+£d&/•).
Лучшее известное решение ZO — 84, и, поскольку все c«J) положительны ло определению, имеем
Z《z*《zo
или 67 &Z*《84,
где Z* — искомое оптимальное значение.
ALICE исключает, все значения стоимости, строго превышающие 84 — 67— 1 = 16, которые не могут дать такого же хорошего решения, как в фазе 2. Дуга для данного случая проходит через точки (10,4) и определяет стоимость, уменьшенную до 19. Других вариантов нет, и первый выбор ALICE делает с помощью критерия оптимизации g-максимума отрыва. При этом выбирается дуга нулевой стоимости, так как в противном случае стоимость оказалась бы максимальной. Значения отрывов в данном случае равны просто следующим после минимальных значений стоимости в каждом столбце:
Сорт 12345678 910
Отрыв 8091711527
Таким образом, первый выбор в последней фазе:
Выбор 1: f (3) = 3,
Т、е. все три различных критерия дают один и тот же результат. Затем тот же критерий дает:
Выбор 2: f ⑴=4.
Отсюда следует f(i)=#4 для всех остальных сортов бумаги. В частности, запрещено сведение к нулю стоимостей для сортов 4, 5 и 8. ALICE вычитает новые минимумы из столбцов 1, 7 и 5, 4то при двух сделанных предположениях (Выбор 1, Выбор 2) ПаеТ для значения нижней границы Z:
Z (Выбор 1, Выбор 2) = Z + 1 + 7 + 5 — 80.
Приведенные стоимости, строго превышающие 3, необходимо исключить, так как с их помощью нельзя получить решение, удовлетворяющее программу. Остается
1
2
3
4
5
6
7
8
9
10
2
3
5
3
2
1
1
0
0
2
10
0
2
0
3
10
0
1
1
3
-1-7-5
Из сделанных исключений следует f (10) =2, н таким же образом выполняется третий выбор:
Выбор 3: / (8) — 1.
Из ограничения на объем производства следует, что f(9)=#L Таким образом, для этого сорта бумаги требуется новое вычитание. В результате Z становится равным
Z (Выбор 1, Выбор 2, Выбор 3)=
=Z (Выбор 1, Выбор 2)+ 2 = 82,
хотя разрешены только нулевые и единичные стоимости. В частности, / (4)#= 2, следовательно, f(4)= 1. Затем
Выбор 4: /(7) = 1, из которого следует f⑵干 1 и f(5)#L
Отсюда'
〃5) = 3 н f ⑵=2.
Из этого в свою очередь следует:
八9),2 н f(6)#=3.
Отсюда
/(9) = 3 и f(6) = 2.
Это в конце концов дает решение стоимостью 82.
• Доказательство оптимальности
Теперь для ALICE остается только еще раз вернуться к сделанным четырем выборам для доказательства их оптимальности или найти лучшее решение.
Выбор 4: /(7)=1. Анализ этого выбора является тривиальным. Поскольку известно решение стоимостью 82, подходящим оказывается только нулевой отрыв, следовательно, необходимо принять f(7)=l, так как в этом случае отрыв равен 1.
Рис. 8.11. Оптимальное решение стоимостью 82.
Выбор 3: f(8)=l. В данном случае верхняя граница равна 80, а отрыв равен 3. Этот выбор приводит к шагу назад.
Выбор 2: f(l) = 4. Верхняя граница равна 67, а связанный с ней отрыв равен 8. Исследуется случай f(l)*4. При этом величина Z (выбор 1) принимает значение 67 + 8 = 75. Поскольку существуют еще три другие возможности размещения производства бумаги сорта 1, то ALICE приступает к повторному изучению ситуации. Дуги (10, 1) и (10, 3) исключаются, из чего следует f(16) = 2. Также исключаются дуги (4, 1), (5, 2), (5, 3), что дает/,5) = 4.
Ограничение по производительности приводит к f(4) = 4. При этом четвертая машина полностью загружена, следовательно, f(8)#= 4. Но так как действует ограничение по стоимости, то
f(8)*2 и /(8)*3.
Отсюда следует, что
/(8)=1 н с(8, 1) = 5.
Z (выбор 1) = 75 + 5 = 80.
Такйм образом, завершить решение нужно только с помощью дуг стоимостью ниже 2. Но f(9)*L так как оставшаяся производительность первой машины является недостаточной для
этого сорта бумаги и, следовательно, таким путем завершить решение задачи нельзя. Тогда остается только первый выбор:
Выбор 1: f (3) = 3.
Остается единственная возможность сделать *3) = 2 с Z = =67 + 9 = 76. Запрещены все стоимости, превышающие 5 = =82 — 76— 1. В частности, необходимо сделать одновременно f(l) = 4 и /(5) = 4. Эти два условия несовместимы, так как предполагают общее производство 5 единиц на машине, которая способна пройзвести не больше 3, т. е. невозможно получить решение стоимостью меньше 82. Окончательный вид дерева поиска представлен на рис. 8.11, который показывает оптимальность полученного решения.
8.7. Задачи, решенные с помощью системы ALICE
Число неизвестных (вершины D);
Число возможных значений (вершины А);
Число алгебраических ограничений;
Время решения в секундах на IBM 43 31;
Число возвратов назад.
ddа Ь
d
d
Пример 1: упорядочивание Модифицированный пример 1 (разд. 8.2.3) Пример 2: неравенства
Пример 3: локализация Перестановки
Логическая головоломка (разд. 8.7.2).
Распределение времени Восстановление
Восемь ферзей Пять ферзей Ложная информация Майк и Джон играют в теннис send + more = money Donald + Gerald = Robert Lytidon*b — Johnson Пересекающиеся числа Пересекающиеся операции Умножение
Магический квадрат 3-го порядка Магический квадрат 4-го порядка Неоднородный квадрат Куб 3-го порядка Магическая сфера Диски
Миссионеры и людоеды Конь Эйлера Пикник
Двое играют в теннис'
Распределение ресурсов
99559515840925661996776404986
21 611111222 112 2 86 1
99289518840682400096976834683 2 11 11 11 «1 I* 11 ол 1- 04 2 2 VI Ло и
!3 1зз146 2!8217 9 72837238101508 9100 7472
12 12442 35;3 49 46 7494710186 3115 431 2
8
о1о о о1о ОО 00104000
26
00700040000
d
b
488544^10 753о о 1.0 ^4^^1^0^4680 0 050ю0 0^^000^^^^1^^04^^010м 39^^ 21111 12
476164523516932049929647505659477167125383771262864221
4898 7 444 2 2390251111 1 4 7816176 111 4
1 1 3 - 1 1 2
122220046144444006800000437111000002211111122222
3 3 0 15 2 2 12 0
3 3 1
277282894302222522222005500000086605004000509044478222
3 2 2 17 3 7 5 5 7 3 552621616222 121261512493 22
3 3 5 8 8 2 2 1 1 1 1
1532434530,53095453476060810156182432400000251520206010602430366r025102064105010254099504010508686123280
11 IX -1 11
Разделение
Восстановление
Линейное отсечение
Вложение капитала
Линейные программы
Тест Haldi IBM
Квадратичные программы
Упорядочивание
Разъединительное упорядочивание
Более короткий путь
Максимальный поток
Назначение
Перенос
Минимальное дерево
Максимальная связь Путь Эйлера Отсечение в плоскости
Расположение в плоскости земли Задача коммивояжера
Существование контура Гамильтона
Поездки с ограничениями
Раскрашивание
Планирование
Максимальная связь
d
1140982447138
6 750741
1 Qw I* 1* со
с 2222222
610301040404053 а 4101020404053
Бумажная фабрика
Локализация
Вращение SNCF
8风 Эффективность системы и общие замечания
Выше уже говорилось, что ALICE является эффективной системой и ее производительность может оказаться выше, чем у хороших специальных программ. Мы попытаемся объяснить этот удивительный факт на примерах. В основе успешной работы системы лежат два важных обстоятельства. Первое заключается в более эффективной формальной обработке выражений по сравнению с обычно применяемыми в решении задач численными расчетами. Распространение ограничений позволяет задержать выбор на максимально долгое время. Второе обстоятельство связано с качеством выбора, когда без него нельзя обойтись. Набор возможных критериев является очень сложным, так как охватывает все семейства задач. Когда встречается непредвиденный случай и начинает работать специальный алгоритм, использующий схему перебора, то его характеристики оказываются значительно хуже.
В отличие от этого ALICE тщательно изучает контекст задачи и ищет подходящие критерии не только для задачи цели- ком, но и. для каждого выбора в пределах данной задачи. В наихудших случаях ее поведение соответствует поведению спе^ циальной программы. Большую часть, времени ALICE будет рассматривать, по крайней мере для некоторых выборов, неожиданный критерий, применение которого предполагалось для совсем другого семейства задач, а в действительности вполне подходящего для данной ситуации. Для некоторых задач, решаемых с помощью карандаша и бумаги, можно показать, что подход ALICE приводит к меньшему размеру дерева поиска, чем при решении **от руки**.
8.8.1. Пример 1
Задачи криптарифметики являются классическими, не требуют обширных познаний в математике и поэтому представляют собой хороший пример для сравнения. Суть задач сводится к тому, что берется простая операция, например сложе-
ние двух чисел. Затем цифры заменяются буквами, причем каждой букве соответствует одна цифра (по основанию 10) и двум разным буквам соответствуют две разные цифры. Требуется восстановить замененные буквами цифры, которые определяют правильное выполнение операции. Для решения задач такого рода можно составить численные программы, работающие с помощью перебора по классической схеме (гл. 5). Для простоты числовые значения буквам можно присваивать справа налево, последовательно определяя пригодность текущих значений. Общая схема алгоритма имеет вид
НАЧАЛО
ВЫБОР значений букв в j-м столбце
Вычисление /-го результата
Проверка на выполнимость ,
ЕСЛИ результат отличается от уже выбранных значений ТО двигаться дальше;
ИНАЧЕ вернуться к последнему выбору
КОНЕЦ ЕСЛИ
КОНЕЦ.
Используем эту программу как начальную точку отсчета. Ньюэлл и Саймон (1978) в течение долгого времени изучали действия человека при решении такого типа задач. В частности, они изучили множество протоколов на эту тему и с помощью продукционной системы пытались построить модель процесса решения. Один из рассматривавшихся примеров имел, следующий вид:
GERALD十 DONALD=ROBERT
Буквы слева G, Q н R не равны нулю. Решение занимает несколько страниц, даже если значение D дано по условию. Проверьте вашч способности на этой задаче, а затем сравните с решением, полученным системой ALICE. Если ваше пространство поиска, содержащее все решения, будет состоять менее чем из двадцати узлов, то вы оставите далеко позади лучшие решения, изученные Ньюэллом и Саймоном.
Поясним на этом примере основной недостаток алгоритмов, действующих по методу слепого перебора. При каждом выборе используется только небольшая часть информации и в неудачном порядке. Подходящий порядок в действительности зависит
от каждой операции, и может быть найден только с использованием точных результатов символьной обработки ограничений. Число предпринимаемых попыток зависит от числа независимых букв-операндов, которых в данном случае шесть: £), £, A, Nf О и G. Таким образом, число попыток, которые нужно будет сделать равно примерно 10!/4! или 151200. В отличие от этого ALICE полностью решает задачу с использованием шести конечных узлов.
Обозначим через a, b, с, d и е переносы в старший разряд при сложении, взятые слева направо. Тогда исходные ограничения запишутся в виде
\/ \/ \/ 417 ЧП/ \|/ 1 2 3 4 5 6 zn\ /|\ zt' z(\ г\ /|>\/ \/ \/ 417 ЧП/ \|/ 1 2 3 4 5 6 zn\ /|\ zt' z(\ г\ /|>2・Z)= T+lO*e,e + 2・L = R+10・d,d + 2 • / = Е+ 10・ с,c + R+N = B+ 10",& + £ + О = О+Ю-а,а + G + Z) = К
\/ \/ \/ 417 ЧП/ \|/ 1 2 3 4 5 6 zn\ /|\ zt' z(\ г\ /|>
\/ \/ \/ 417 ЧП/ \|/ 1 2 3 4 5 6 zn\ /|\ zt' z(\ г\ /|>
Буквы должны соответствовать (биекция) целым числам в интервале [0, 9].
Первые выводы (в порядке, определяемом системой):
Из ограничения (1) следует, что Т является четным.
Из ограничения (5) следует, что
(а == 0 А Ь = О/\Е = О) ИЛИ (а = 1 /\ b = 1 八 Е = 9).
Из ограничения (2) следует, что R 三 е (по модулю 2).
Из ограничения (3) следует, что Е м d (по модулю 2). Кроме того, все переносы не превышают 1, так как сумма двух букв не может превышать 17.
Из этих условий больше нельзя получить никаких других сведений, поэтому должен быть сделан первый выбор. Только что полученное ограничение ИЛИ может оказать в этом существенную помощь. Тогда
Выбор 1: Е = 0, следовательно, и а — Ь—О.
При этом изменился вид трех ограничений, а ограничение (5) становится тривиальным.
d + 2・/ = 10・c,岡
с + R + M = В,⑷)
(? + Q = R.(6£)
Следствия. Из ограничения (3i) следует, что d является чётным, следовательно, d = 0 и 4 = 5с. Изображение 0 уже свя-
зано с £. Тогда граф дает, что 厶=5, с = 1 и ограничение (3,) исключается.
Из ограничения (6f) следует, что R ^ 3, так как G и D должны быть различны и G + 2)^ 9, отсюда G&8 и Z)W8. G + £> подставим вместо R в ограничение (4/) и с помощью арифметического модуля (описанного в разд. 4.3.2) выведем два новых ограничения:
/4~G + Q + 2《9 (значение превышает В) и В>7, (7/) так как минимальный набор из трех различных значений в пространстве изображений дает сумму, равную 6. Из неравенства (7i) в свою очередь следует
G^5, 0^5, ^^5, а также G + D = R&7.
Затем снова анализируются ограничения (1), (2) и (6i), так как уточнены значения йходящих в них переменных. Из условия R W 7 и ограничения (6。 теперь следует, что G W 6 н 0 = 6. Из ограничения (1) ничего нового не получается, а из ограничения (2) следует £ W 3, так как R》7 н £ ^ 1, так как RW3. '
Все ограничения уже проанализированы и необходимо сделать следующий выбор. Существует несколько кандидатов (В и переносы), имеющих только по два возможных значения, и остановиться на одном из них можно с помощью критерия трудности. Наибольшей значимостью обладает переменная е, которая фигурирует в двух простых ограничениях.
Выбор 1.1: е = 0.
Перепишем систему ограничений:
2・Q = 7, ] (ограничения из графа(1 汾
2・L = R, J с четными Г и R)(2〃)
1 + G + D + N = B9(4 汾
G + D = R(6п)
Выводы. Кроме этого, граф 《знает», что 4 & В 忘 9, 1忘2忘5, 3&R&7, 1&Q&5, 1 &L&3, 1&G&5.
Анализ новых ограничений (1") и (2ii) сразу уточняет эти границы:
L = 2 или 3,
R = 4 или 5.
В завершение выполняется полный перебор значений наиболее простого ограничения (2ii), переменным которого соответствует наименьшее пространство изображений. Если R = 4, то L = 2.
Из равенства £> + G = 4 следует, что D R 3, а Т = 6, так как значения 0, 2, 4, 8 запрещены. Таким образом, D = 3 и G == 1. Но при этом все значения 0, 1, 2, 3, 4 и 5 уже использованы и ограничение (4u) 6 = 5十内 не позволяет получить решения. Если R = 6, то 厶==3 и {G,D} = {2,4}, тогда Т = 8, так как значение 4 уже использовано. Отсюда следует, что 0 = 4 и G == 1.
И снова больше не остается свободных значений для N в уравнении 4论
В = 7 + М
Таким образом, последний выбор оказывается под угрозой. Остается только одна возможность:-
Выбор 1.2: е = 1. В этом случае к ограничениям (4п) и (6"). добавляются
2 0 = 7+10,(1 位)
] + 2・L = R,(2 血)
т. е. R должно быть нечетным. Используя вновь результаты выбора 1, получим
• 3&R&7.
Значение 5 уже закреплено за Л, поэтому R = 3 или 7. Но анализ уравнения (l〃i) дает D ^ 6, а из уравнения (6〃) получаем, что R 戸 7.
Окончательно имеем R = 7, L = 3 и В = ^ + 8, т. е. 2V= 1 н В = 9. Остается £) + G = 7 при условии £)》6 и G ^ 1. Но значение 1 уже присвоено ^, что указывает на то, что это направление решения является тупиковым. Выбор 1 оказался неудачным.
Выбор 2: Е = 9, следовательно a = h = 1. Сразу составим новые уравнения'
d+24 = 9+10&(32)
c + R + N = B+10,、(42)
+ G + D = R.(6历)
Первым анализируется ограничение (3iu), которое по условию четности дает d = 1, отсюда следует+
e + 2L = R+ 10・⑵ и)
и А — 4, так как Е уже равно 9 и с = 0. Отсюда получаем
R + N = 8+10.(4и)
При L W 8 н R & 4 анализ уравнения (2io) дает.、
17》R+ 10, т. е. &《7,
а также ?十2厶注 14, т.巳 L》7, L = 7 или 8. Из других ограничений можно получить В W 5 и N ^ 3. После этого необходимо сделать следующий выбор, при выполнении которого удобно использовать тот факт, что Л имеет всего лишь авух, преемников.
Выбор 2.1: L — 7. Сначала анализируется ограничение
е+ 14 = R+ 10. (2и);
Но А = 4, поэтому необходимо, чтобы R = 5 и е = L Подставляя эти данные в уравнения (4и) и (6ш), получаем N = В + 5、 и Ь + G = 4. И далее /)^3и6^3. С другой стороны, огра
ничение
2D = 7+10(Ь)
требует, чтобы D ^ 5, что приводит к противоречию. Остается последний случай:
Выбор 2.2: L = 8. Имеем
e + 6 = R,.(2 凉卜
/? + ^ = B+ 10, .(4凉)
1 + G + D = R.(6 加)
Из ограничения (2巾)следует, что Ъдновременно должно выполняться /? = 6 или 7, а также (? + £)= 5十伉 откуда ALICE вы- водит G ^ 5 н 0 W5. Решение уравнения (2ui) путем перебора дает,
Если R = 7, то'
е=1, » +。= 6, 2D = T+ 10,
следовательно, D = 5 и Т = 0, а также G = Г и 2V = В + 3. Затем В = 3 и ^ = 6.
Решение задачи выглядит следующие образом:
.〈GERALDONBT)
〈1 9 7 4 8 5 2 6 3 0〉
Если R = 6, то.
е = 0, G + D = 5, 2D = Т, следовательно» D = 1 и Т = 2, так как значения 4 и 6 уже заняты. Но тогда G =5 — 0=4, которая уже использована для значения Л, откуда следует невозможность решения.
Таким образом, найденное решение является единственным, дерево поиска приведено на рис. 8.12. Дерево имеет шесть
листьев, полное время его обработки составляет 9 с, что меньше времени, которое требуется программе, работающей по прин-
е= /* ,Решение
Рис. 8.12. Дерево поиска системы ALICE для решения задачи GERALD + DONALD = ROBERT. Ветви, помеченные звездочкой, не приводят к решению.
ципу перебора, типа приведенной в гл. 5 (1 мин и 10 с на ЭВМ IBM 4331).
Пример 2
Рассмотрим более сложную задачу — проблему перестановок, которая была предложена Марселем Шутценбергером.
Найти все р перестановок п первых целых чисел, которые соответствуют двум ограничениям, накладываемым с помощью двух векторов /п и а на интервале [1,п — 1].
Вектор монотонности т задает соответствие [1,п—1]-> f {0, 1} и определяет следующее ограничение: {p(z + 1) больше чём p(i) тогда и только тогда, когда m^i) = 1, или в формальг ной записи
Vz, z е [1, п — 1], m (i) = I <=ф» р (/ + 1) > р (Z).
Вектор опережения а[1,九——1] определяет:
если а (0 = 0, то р (i) + 1 расположен слева от р (f);
если a(i) = 1, то p(i)+ 1 расположен справа от р (/), кроме того, p(i) 5^ п. В формальной записи
VZ, I s [1, л—1],
а«) = 0今Vj, /е R+ 1, n] р(/)¥=р(£)+1,(I)
а(/)= 1 =>[V/, /е[1, /— 1] p(j)*p(i)+l} и p{i)^n. (2) Таким образом, вектор /га определяет направление изменения величин^ соседних элементов, а вектор а указывает, что элемент р«)+1 должен располагаться либо до, либо после элемента р ⑴ в искомой перестановке.
.Рассмотрим простой числовой пример. Возьмем в качестве данных m = [01 1] и a s [1 1 0]. Тогда
(а)(ь)⑹(а)(ь)⑹из/и(1) = 0следуетр⑵ Vp⑴,
(а)(ь)⑹
(а)(ь)⑹
изm (2) = 1следуетр (3) > р (2),
из/п (3) = 1следуетр (4) > р (3).
Отсюдар ⑷〉р (3) > р ⑵,
следовательно, р ⑷》3,(d)
Р(3)>2,(е)
р(3)<3.(f)
Теперь из ограничения (а) получаем
p⑴2(g)
и только элемент р ⑵ может быть равным единице
Р⑵=L(h)
С другой стороны, из а(1) — 1 следует р⑴,4,(i).
из а (2) = 1 следует р ⑴耍 р ⑵+1,
т. е. р ⑴吸 2,(j)
и ^2)*4 (уже известно),
из Q (3) = 0 следует р ⑷,卩(3) + 1.(k)
Из ограничений (f) и (,)видно, что единственным возможным предшественником для 4 является р (4) = 4.
Из ограничения (/) в свою очередь следует Р⑴=3, откуда р (3) = 2,
что приводит к удовлетворению всех ограничений. Таким образом, определяется единственная перестановка, удовлетворяющая условию задачи:
р = [3 1 2 4].
Выводы ALICE в точности совпадают с ходом наших рас- суждений при решении этой задачи в уме. Если же мы хотим составить программу, специально предназначенную для решения этой задачи, то тут же появляется принцип перебора, который, как обычно, можно представить в виде следующей схемы: А: Присвоить значения всем элементам.
Проверить частичное решение и продвинуться дальше в случае успеха.
В случае неудачи, но если надежда на получение решения еще не потеряна, вернуться назад.
Этап А соответствует нахождению следующего элемента. Для естественного порядка на интервале [/, и] имеем
Л: i —力+l и p(i) —р«)+1, начиная с нулевых начальных значений.
Этап В является более тонким, так как порядок, в котором выполняются различные тесты, определяет эффективность нашей программы. Должны быть предусмотрены три теста:
fl: является ли р перестановкой?
/2: удовлетворено ли ограничение на монотонность?
/3: удовлетворено ли ограничение на опережение?
Во избежание бесполезной работы эти тесты должны быть проведены как можно раньше. Тест 〃 может быть выполнен сразу после нахождения р (/), т. е. перед Й. Выполнение теста /3 вызывает затруднения при a(i) = 0, так как не известны элементы р с индексами, превышающими 工 В данном случае можно использовать следующие элементарные соображения. Поскольку р является перестановкой (следовательно, биекцией), из того что все р(/) отличны от р(»+ 1 для jw[i+ 1,川,следует, что либо p(t)+ 1 встречалось перед 厶 т. е. уже размещенным элементом, либо p(i) равно и. Таким образом, тест /3 может быть использован в нашем алгоритме.
Тест /2, наоборот, очень прост. В среднем он исключает большее число случаев, чем тест fl, поэтому будем использовать его первым. Приведем теперь уточненную схему программы. Процедура PERM: Определить все перестановки п первых целых чисел с учетом данных булевых векторов а и т.
р = 0;1; р(0)<~ 2;
ПОКА />0
/<- множество целых чисел от 1 до i — 1; (Проверить монотонность и убедиться, что р©) можно увеличивать).
ПОКА (/и« — 1) = 1 И "0)<力
ИЛИ (т(/-1) = 0 И р(г)<р(/-1)-1)
р (z) р (z) + 1; (Проверка перестановки) ЕСЛИ V/е / ,p(j) =# р (0
ТО{проверять опережение}
9 р (Z).+ 1; ок-<-ложь
ЕСЛИ d(i) = 0 {q входит в / или
p (0*九}
ТО ЕСЛИ ("(,) = 〃)ИЛИ (口日/ p (/) = 9)
ТО ок<— истина;
КОНЕЦ ЕСЛИ
ИНАЧЕ {а(,):=1, q не входит в / и р (/) #= п}
ЕСЛИ (р(0¥=п) И (Vje/ р (/)#=<?)
ТО ок истина;
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
ЕСЛИ ок {продвижение по г}
ТО ЕСЛИ i = n
ТО печатать решение;
p(D—汽;
{возврат назад}ИНАЧЕ И+ 1;
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ
КОНЕЦ ЕСЛИ {возврат в случае неудачи)КОНЕЦ ПОКА {возврат если р(,)не может большеувеличиваться)р (,) <—0; / <~ /—■ 1;
КОНЕЦ ПОКА
КОНЕЦ PERM
Программу можно улучшить, если в нее включить несколько специальных случаев. Однако необходимо сделать одно замечание. Эта программа является жесткой, она составлена без учета числовых данных... Все перестановки определяются в одном и том же порядке, какими бы ни были векторы а и т. Это может привести к неприятным последствиям, так как определенные значения p(i) могут быть жестко связаны с данными. И эти значения вполне могут оказаться в числе последних, находящихся справа. Сколько же при этом будет бесполезной работы! Однако не исключено (даже при решении этой задачи методом перебора, который ведет к экспоненциальному возрастанию времени), что конкретные данные задачи могут привести
к такому ограничению числа перестановок, что время решения будет возрастать в соответствии с полиномиальной зависимостью.
Решение задачи системой ALICE
Система ALICE при решении задачи учитывает все сказанное выше. Приступая к работе, она начинает вовсе не с построения алгоритма, а с анализа данных. Предположим, например, что п = 9 и векторы ант заданы в следующем виде:
q = (1 1 1 1 0 1 1 0), т = (1 10 10 10 1).
При т(/) = 0 ограничения, накладываемые вектрром 加,дают 1(р«+1)>р⑼ или'
р«+1)&"«). Но р должно удовлетворять биекции, поэтому р(,+1)<р«).
Отсюда следует.•
p⑵>p⑴,p(3)>" ⑵, :р⑷ <р(3), р(5)>?⑷’ р(6) < р(5), 〃7)>р(6), р(8)<р ⑺,69)>р(8).
Дуги (i, 9) в графе отсутствуют для всех 厶 для которых выполняется условие a(i)=L Ограничения, накладываемые вектором а, приводят к 22 неравенствам:
а (2) ~ 1 =>
p⑴,Р⑵+1;';
а (3)=]》 р(1)#=р(3)+1, р(2)#р(3)+1, а (4) = 1 =>
Р(1)*"(4)+1, /Г ⑵长以4)+1, р(3),р⑷+1, а (5) == 0 => ■
Р ⑹ ¥= Р(5) + 1, р(7) * р⑸ + 1, р(8) * р(5)+1, р(9) * р(5) + 1, а (6) * 1 => .^
р ⑴耍 р (6)十 1, р ⑵ * р (6) + 1, р (3) * р ⑹ + 1, р ⑷,р (6) + 1, р(5)=#р(6)+1, a⑺=1今.
p⑴* p⑺+1,"⑵* p(7) + 1,"⑶,p⑺+1,р⑷* p⑺+1, p⑸#Р⑺十1, p(6)*p⑺+ 1,
а (8) = 0 今
卩⑼*68)+L
Ограничения типа W система предпочитает ограничениям типа =#. Эти ограннтенн兄 ALICE анализирует в порядке, который считает для себя удобным. Он задается вычислением функции Грунди (разд. 8.5.2) и поясняется на рис. 8.13.
Рис. 8.13. Граф ограничений по монотонности.
Первым проверяемым ограничением является р(2)>р(1), из которого следует р(2)》2. Тогда р(3)> р(2) влечет за собой р(3)》3. Кроме того, р(5)》・2, р(7)》2, р(9)>2, р⑷《8, р(6)&8, р(8)《8, p(2)£8“(l)W7.
Теперь некоторые проанализированные ограничения с неравенством исчезают, так как становятся тривиальными. Это относится, например, к р(6)#=р(5) +、1 или к р(6),р(7)+ 1, поскольку р(6) < р (5) и р(6) < р(7).
На этом этапе новая информация не может быть выведена, но р является сюръекцией и точка 9 пространства изображений имеет в качестве предшественников только р(5) и р(9).
Сначала выполняется выбор р(5)=9. Он сразу приводит к тому, что исключаются пятнадцать дуг, так как помимо p(i)^= 9 для всех it отличных от 5, из ограничений, определяемых вектором а, следует р(6)=/= §, р(7)?8, а из ограничений, накладываемых вектором т, следует р(3)《8, р(7) V 7, р⑵&7,"(1)W6, р⑷£7, "(6)&6, р(8)&6
Таким образом, только р(3) и р(9) могут быть равными 8. Выбор р(3) = 8 приводит к р(4)=/= 7 и р⑺及 7.
Точка 7 теперь имеет только двух предшественников. Допуская, что р(2)=7, ALICE приходит к выводу, что р(1) = 6 или р(§)= 6.
Положив р(1) =6, приходим к выводу, что p(4)W4 и, Р (7) W 4, следовательно, р (6) W 3, р (9) = 5.
Приняв р(7) = 4 и учитывая единственное оставшееся огра* ничение р(4)#= р(6)+ 1, получаем для данного случая четыре решения
6 7 8 1 9 2 4 3 5, 67819342 5,
6 7 8 2 9 3 4 1 5, 67839142 5,
Для того чтобы найти 42 решения задач, надо вернуться только на шесть двоичных выборов, т. е. на 64 возможности вместо 9! = 362880.
Для специальных программ существуют худшие случаи. Предположим на мгновение, что в качестве данных используются
п— 100 и т^а = (\ с 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 выполняется соотношение р(/)< Р(0- Следовательно, единственная степень свободы связана со значением р(1) в множестве [1, 99]. Имеется только 99 перестановок, удовлетворяющих условию задач. Время, которое требуется ALICE для их нахождения, имеет полиномиальную зависимость от п.
, Конечно, подобный тип данных может быть специально предусмотрен в программе PERM. Но с другими типами данных будет гораздо сложнее. Даже модифицированная программа PERM будет всегда отставать для различных наборов данных, например, если в вектор а добавить несколько единиц (и задача не будет иметь решения) или заменить единицы на нули, и наоборот.
'Задача становится еще, более трудной, если в нее ввести новые ограничения, слегка изменив ее условия, как это часто происходит на практике. Если, например, потребовать, чтобы выполнялось условие p(n/2) = 1, то процедуру PERM будет очень трудно модифицировать, чтобы достаточно рано учесть это новое условие, тогда как ALICE его сразу использует и тем самым сократит свой поиск.
8.9. Ввод условий задач на французском языке
В настоящее время ведутся работы, направленные на то, чтобы условия задач вводить в наиболее естественном виде и предоставить систему в- распоряжение любого пользователя, даже не специалиста по информатике. Речь в основном идет о том, чтобы снабдить систему общими знаниями, которые в будущем помогут пользователю обходиться без уточнения теку-
щих объектов и их свойств. В идеальном случае это непосредственное восприятие французского языка в режиме интерактивного чтения и контроля.
Прототип такой системы был реализован Лопес-Ласейком (С. Lopez-Laseica). Мы его рассмотрим ниже более подробно. Большая трудность в данном случае заключается в огромном объеме “текупхнх” знаний, которые мы используем во всех областях для выражения наших мыслей и взаимного обмена информацией. Каждый специалист по информатике знает, что самой сложной работой является понимание собеседника.
Вместе с автором ограничим область применения системы математическими головоломками. Хотя к ним и не сводятся все возможные задачи, но тем не менее при их решении необходимо решить многие проблемы. Так, нужно глубоко понять условие задачи, не пропустить связи между фразами, которые могут находиться далеко друг от друга, для того чтобы поставить, а затем и решить задачу. Достаточно краткий и сжатый язык ALICE является основой для этой системы. С использованием соответствующей техники, разработанной в рамках искусственного интеллекта (различного рода словари, семантические сети), оказывается возможным с высокой эффективностью выполнить понимание условия й его перевод в традиционную форму. Для текста, занимающего половину страницы, требуется от одной до четырех секунд.
Принцип перевода .
Основную часть программы перевода составляют данные. Для каждого слова и для каждого его значения в специальном словаре указываются его синтаксические формы, семантические свойства и классы, слова, с которыми оно может быть связано в обычном смысле, выводы, которые могут из него следовать. В словаре, например» находится такая информация:
ФРАНЦИЯ:
определение группа следствиеопределение группа следствиеотношениеотношение=элемент;=страна;=язык:национальность: государственный строй:= житель, страна.=элемент;=страна;=язык:национальность: государственный строй:= житель, страна.французский, француз,республика;французский, француз,республика;
определение группа следствие
определение группа следствие
отношение
отношение
=элемент;
=страна;
=язык:
национальность: государственный строй:
= житель, страна.
=элемент;
=страна;
=язык:
национальность: государственный строй:
= житель, страна.
французский, француз,
республика;
французский, француз,
республика;
В этом словаре содержится тысяча слов для обработки пятидесяти формулировок. Глаголы в нем играют особую роль: с их помощью определяются действия, выражающие ограничения. Например, для глагола «давать»:
ДАВАТЬопределение группа следствияДАВАТЬопределение группа следствия
ДАВАТЬ
определение группа следствия
ДАВАТЬ
определение группа следствия
=глагол;
=человек человеку;
—до:
(дающий) имеет (предмет) после:
(дающий) имеет (— предмет) (берущий) имеет (+ предмет)
Для слова МЕНЯТЬ, которое соответствует синтаксической конструкции “4 меняет у 8 X на У”,в словаре находим
МЕНЯТЬ (/ В) (X У)
определение = Л дает X В к В дает У А.
Программа, которая анализирует текст при помощи словаря, постепенно определяет подходящий смысл всех' слов, используя при этом синтаксические и семантические правила.
С помощью глаголов определяется остов фразы (фаза 1). Затем обрабатываются вспомогательные слова, которые определяют взаимодействие синтаксических групп друг с другом (фаза 2). Если какая-либо информация содержится в словаре, но является бесполезной в данном контексте, т. е. с ее помощью нельзя сформулировать ни одно ограничение, такая информация забывается. Например, прилагательное “серыЛ” в сочетании “серый кот” полезно только в том случае, если ниже в условии задачи говорится о “рыжем коте”. Если же цвет не упоминается, то такая информация бесполезна.
• В третьей фазе программа выражает условие на языке ALIGE.
Заметим, что такой перевод может быть сделан только тогда, когда правильно понят полный смысл текста. При этом следует учесть, что смысл каждой фразы может зависеть от контекста, например фраза “双ан и профессор читаютп может означать:
действие (Жан) == действие (профессор) = чтение
а может означать только, что Жан 耍 профессор.
Исходя из оставшейся части условия программа определяет полезный смысл фразы в условии головоломки. Поясним сказанное на примере.
Пример перевода.
Условие задачи вводится на французском языке с консольного терминала. Текст условия:
Пять человек различных национальностей живут в пяти первых домах одной из улиц. Они являются представителями пяти
различных профессий, и у каждого из них еСть свои любимые напитки и животные, среди которых нет повторяющихся. Дома, в которых они живут, покрашены в различные цвета. Известно что:
Англичанин живет в красном доме.
У испанца есть собака.
Японец является художником.
Итальянец пьет чай.
Норвежец живет в первом доме слева.
Владелец зеленого дома пьет кофе.
Зеленый дом находится справа от белого.
Скульптор разводит улиток.
Дипломат живет в желтом доме.
В доме посередине пьют молоко.
Норвежец живет рядом с голубым домом.
Скрипач пьет фруктовые соки.
Лису держат в доме, соседнем с домом врача.
Лошадь держат по соседству с домом дипломата.
Кто держит зебру и кто пьет воду?
В первой фазе интерпетатор образует именные группы. Множество “человек" объединяется в семантическую сеть с двумя свойствами: “5” и ^различные национальности11. Глагол иживетп образует такую же группу по отношению к тем, к кому он относится, то же относится к артиклям французского языка, несущим определенную смысловую нагрузку. Множество “дом” также формируется вместе со своими признаками. В результате последовательного анализа всех фраз образуется внутренняя сеть.
Для более простого описания сети вводятся стандартные обозначения. Так “жить", “находиться в", “обладать” заменяются на “иметь дом", а отношения uслева", “рядом”, “посередине” заменяются числами. Окончательно, перед тем как семантическая сеть передается системе ALICE, устанавливается следующее соответствие между смыслом слов и целыми числами:
НАЦ(1) Англичанин
НАЦ(2) ■«—> Испанец
НАЦ(З) *■> Японец
НАЦ(4) —► Итальянец
НАЦ(5) Норвежец
ДОМ(1) <—> Красный
ДОМ(2) —> Зеленый
ДОМ(З) <—> Белый
ДОМ(4) •*—> Желтый
ДОМ(5) Голубой
ПРО(1) Художник
ПРО(2) Скульптор
ПРО(З) —> Дипломат
ПРО(4) -<—> Скрипач
ПРО(5) 一 Врач
НАП(1)*->Чай
НАП(2) — Ко4)е
НАП(З) Молоко
НАП(4) ч—> Фруктовый сок
НАП(5) Вода
ЖИВ(1) —> Собака
ЖИВ(2)*-> Улитка
ЖИВ(З) •*-*■ Лиса
ЖИВ(4)Лошадь
ЖИВ(5) Зебра
Теперь все ограничения выражены с помощью этих соответствий и окончательная формулировка условия передается системе в следующем виде:
ПУСТЬМНОЖЕСТВОПУСТЬМНОЖЕСТВОНАЙТИBIJНАЙТИBIJSUMPM^nЕНДП8ЖНSUMPM^nЕНДП8ЖНттттттт NNNNNNN ТА I и Т1 T1 I Iттттттт NNNNNNN ТА I и Т1 T1 I I5 5 5 5 5 5 55 5 5 5 5 5 5SSSSSеееееSSSSSеееее
ПУСТЬ
МНОЖЕСТВО
ПУСТЬ
МНОЖЕСТВО
НАЙТИ
BIJ
НАЙТИ
BIJ
SUMPM^n
ЕНДП8ЖН
SUMPM^n
ЕНДП8ЖН
ттттттт NNNNNNN ТА I и Т1 T1 I I
ттттттт NNNNNNN ТА I и Т1 T1 I I
5 5 5 5 5 5 5
5 5 5 5 5 5 5
SSSSS
еееее
SSSSS
еееее
Ж1Ж^^нннннддппнЖ1Ж^^нннннддппн12345223331234522333
Ж1Ж^^нннннддппн
Ж1Ж^^нннннддппн
1234522333
1234522333
ДОМ 1
ЖИВ 1
ПРО 1
НАП 1 1
НАП 2
ДОМ 3 +
ЖИВ 2
ДОМ 4 3
(НАЦ 5 = ДОМ 5+1) или (НАЦ 5 = ДОМ 5-1)
ПРО 4 = НАП 4•
(ЖИВ 3 = ПРО 5+D или (ЖИВ 3 = ПРО 5—1)
(ЖИВ 4 = ПРО 3+1) или (ЖИВ 4 = ПРО 3- 1)
Головоломка решается за 4 с, при этом система выполняет один-единственный выбор.
'Конечно, формулировки большинства задач являются более длинными, запутанными и двусмысленными. Мы же хотели только показать принципиальную возможность решения задачи, условие которой сформулировано на разговорном французском языке.
1/2 17*
Глава 9
УСВОЕНИЕ ЗНАНИЙ
Обучение можно определить как совершенствование, связанное с приобретением опыта. Эта область применений перспективна для систем искусственного интеллекта: знания, которые необходимо усвоить, настолько разнообразны, что идеальной является информационно-вычислительная система, овладевающая ими сама на основе примеров, а не получающая эти знания от нас в виде порций. Однако желание создать за короткий срок самообучающуюся программу там, где мы даже не представляем механизм ее функционирования, является довольно иллюзорным.
Кроме того, всякий обучаемый сталкивается с проблемой забывания: по ходу возникает так много разнообразных возможностей, что просто необходимо уметь что-то забывать. Таким образом, существует важное различие технологического характера между компьютерами и людьми относительно приобретения знаний вообще и подходах к решению задач в частности.
Можно сказать, что человек "запрограммирован” на приобретение знаний. Он не может делать что-либо без того, чтобы не запоминать, что делает (иногда даже против своей воли). С рождения человеку присуще рефлекторное поведение, и по природе он чрезвычайно любознателен. Всю жизнь он не может противостоять желанию искать, приобретать информацию: фиксирует взгляд на том, что движется, напрягает слух при необычном звуке... Компьютер же априори лишен такой программы общего поиска и обучения.
Различные типы обучения
Отметим сначала, что процедура усвоения знаний имеет иерархическую структуру (рис. 9.1). Уровень 1 представляет просто программированное обучение: специальный фиксированный код управляет тем, что должно быть сделано. Все обычные программы для компьютеров относятся к этому уровню, так же как и действия большинства промышленных роботов, для которых, например, рука рабочего определяет раз и навсегда необходимые движения для покраски автомобиля: он будет точно имитировать их в дальнейшем независимо от того, автомобиль перед ним или что-либо другое.
Уровень 2 соответствует запоминанию наизусть: все ситуации запоминаются вместе с действиями, которые нужно предпринять в каждой из них. Здесь поведение системы может быть обусловлено по Павлову: она получает «наказание», если перед новой ситуацией не находит хорошего решения, и 《поощрение》в противном случае.
Некоторое усовершенствование этого метода представляется на уровне 3 статистическим запоминанием: в системе хранится
Общение с преабретением 例务心 знаний
Усвоение знаний 飞 притерав
Cfna/77ucmu веское запоминание
Рис. 9.1. Процедура усвоения знаний.
лишь классификация ситуаций, полученная на основе анализа достаточно большого числа случаев: запоминаются только компоненты, соответствующие определенному действию. Затем на уровне 4 система может усваивать знания на примерах с помощью «учителя» (она способна к обобщению). Наконец, на уровне 5 обучение происходит без учителя; система в состоянии индуктивным способом порождать новые ситуации, выдвигать гипотезы и новые концепции.
Отметим, что каким бы ни был уровень, вопрос о том, чтобы обучаться, начиная 《с нуля», не стоит и обсуждать. Именно минимум знаний для процесса обучения в той среде, где мы находимся, представляет основную трудность для программирования системы, действительно способной к приобретению знаний,
Обучение игре в шашки
А. Сэмюэль, инженер фирмы ИБМ, написал для игры в шашки хорошие программы в период с 1956 по 1967 г. В шашки играют на доске 8*8. Пешки (шашки) могут ходить только вперед, дамки ——через поле, вперед и назад. Возможность превращения нешки в дамку требует около 8 ходов.
Запоминание наизусть
Первая программа, написанная Сэмюэлем, относилась к уровню 2. Он просмотрел около 180 000 позиций, взятых из лучших книг, для обучения своей программы! Так как это
17 Ж.-Л. Лорьер
довольно много (особенно для машин того времени), Сэмюэль воспользовался тремя процедурами управления памятью.
Ситуации упорядочиваются для ускорения доступа, во-первых, по числу пешек и дамок у обоих игроков и, во-вторых, по частоте появления в опыте, т. е. в собственных играх программы.
Симметричные ситуации, получаемые заменой белых полей на черные, рассматриваются одновременно.
наименее часто встречающихся в самых последних партиях (так что Сэмюэль придумал на 15 лет раньше алгоритм замещения страниц для компьютеров с виртуальной памятью).
Кроме того, некоторые полагают, что его идеи имеют отношение и к размеру слов на машинах И6М серий 700 и 7000, когда ему удалось найти хорошее представление для игровой доски (так как пешки ходят только по черным полям). Сэмюэль занумеровал поля расширенной схемы доски так, как показано на рис. 9.2.
Четыре дополнительных поля 9, 18, 27 и 36 играют роль ограничителей и вся доска может быть представлена в виде вектора [1, 36] в одном машинном слове. Чтобы получить допустимые правилами ходы (без взятия), достаточно к номерам черных полей добавлять цифру 4 или 5 (Перемещение и превращение).
За этой первой программой последовала следующая, усовершенствованная. В самом деле, было жаль терять имеющуюся информацию после записи позиции в память. Тогда Сэмюэль ввел дерево поиска для оценки будущих позиций. По глубине оно ограничивалось тремя полуходами, не считая взятия на последнем ходе или подстановки под удар черной пешки (эти ограничения иногда вынуждали к просмотру до двадцати полуходов). Наконец, Сэмюэль ввел полиномиальную функцию оценивания 尸= 2〃Р“
Он выбрал 38 параметров р( и 38 характеристик Р〃 среди которых отметим материальный выигрыш, контроль центра, число выдвинутых пешек, мобильность, число У-позиций (свободное поле, окаймленное тремя черными пешками), число угроз, относительную продвинутость обоих лагерей.
Таким образом, Сэмюэль был первым, кто запрограммировал процедуру альфа — бета, проявившуюся в шахматных программах.
Воспользуемся описанной программой в трех различных случаях.
Усвоение знаний из книг
Поскольку в памяти находятся все позиции, программа может оценить их во время каждой игры, пользуясь минимаксной процедурой с функцией оценивания F. Она подсчитывает по F число И ходов, лучших по сравнению с хранящимися в памяти, и число худших ходов L. Если Н мало, a L велико, между рекомендацией из книг и произведенным оцениванием наблюдается соответствие. В противном случае коэффициент «корреляции» С
e =(厶一切/亿+万),
равный 1 для случая полного соответствия, может измениться до ——1, указывая на полное расхождение между книжным знанием и результатом оценивания по 尸.При С, отличном от 1, ситуация считается переоцененной при 方 > 0, недооцененной при 〃 V 0. Отношение С; для каждого параметра Р» вычисляется по формуле
5 = ТГ+е
где ”上——число-ходов, стоящих в соответствии с piPi перед наилучшим ходом с 〃 V 0; Li — число ходов, стоящих в соответствии с после наилучшего хода с pi V 0.
Если Ci отрицательно, нужно уменьшить значения положительных 卩厶 Если С» положительно, нужно увеличить значения отрицательных р「Таким образом, программа обучения по книгам «решает» заменить параметр pk с наибольшим абсолютным значением коэффициента 以,полагая
р在=1, а для / #= k = 2", если п 忘 W 〃 + 1.
В результате программа сохраняет лишь 16 из 38 исходных характеристик. В каждый момент 22р? имеют значение 0. Для каждой партии наименьшее Ci дает штрафное очко 17*
соответствующей характеристике: после трех штрафных очков характеристика отбрасывается и заменяется на ту, которая находится дольше всех в очереди ожидания.
После двадцати партий программа усвоения знаний по книгам выходит на достаточно высокий уровень.
Обучение без учителя
Так как речь идет об игре, то программа может играть сама против себя. Пользуясь разными значениями р», она может в этом случае усваивать знания самостоятельно!
Пусть Л и В — две версии программы с функциями оценивания 尸а и Fb・ Если А выигрывает, то слегка изменяются параметры 尸匕,если А проигрывает, она получает штрафное очко. После трех штрафных очков производят взаимный обмен функциями Fa и Fb и существенно изменяют параметры Fb. Этот вариант представляет собой попытку использовать классический метод градиента с возмущениями в невыпуклом пространстве.
Используя эту идею и минимаксный подход, Сэмюэль написал свою четвертую программу.
Обобщенное обучение
Именно так определил Сэмюэль возможности новой программы.. Он не хотел согласиться с тем, что ни одна из его предыдущих программ не могла обучаться во время сеанса игры. Ведь мы отдаем себе отчет в совершении ошибки уже через несколько часов и избегаем ее повторения в текущей партии. Программа с использованием функций оценивания и процедурой альфа — бета также обладает свойством апостериорного.оцени- вания ходов: один раз она встречается с определенной позицией во время оценивания, а другой — через несколько' ходов на реальной игровой доске (рис. 9.3).
В случае когда 尸 представляет идеальную оценку и все про- ирходит так, как и предвидели, мы должны получить 尸(S)= =Fr(S). Если же 尸(S) > Ff (S), оценка оказывается слишком оптимистичной и противник играет лучше, чем мы рассчитывали. В случае же усвоения знаний из книг программа уменьшает положительные веса и увеличивает отрицательные. Аналогично предыдущей процедуре снова вычисляются коэффициенты
& = (& — %)/(〃 +%), где "t теперь обозначает число случаев с начала партии, в которых для t-й характеристики выполнялись неравенства
PiPi < 0 и 尸(S)> 尸(S).
Для 尸(S) V F'(S) алгоритм тот же, но с учетом симметрии.
Напомним, что сама программа может играть и за "против- ника". Эта возможность используется в середине партии, когда число возможных позиций особенно велико.
В начале характеристики игры этой последней программы Сэмюэля относительно нестабильны, но в ее распоряжении уже
女6
Рис. 9.3. Два примера оценивания одной позиции.
а — ситуация, встречаемая при поиске с использованием процедуры альфа —бета. Ее оценка представляется 尸(S). 6 —та же ситуация во время реальной игры: оценка 尸(S).
имеется 180 000 ходов, введенных ранее для предыдущей программы, и ночами она может играть против себя. В результате Сэмюэль постоянно стал проигрывать в шашки своей собственной программе.
Несколько позже эта программа, достигнув беспрецедентного для игровых программ уровня, выиграла у чемпиона штата Коннектикут (К. Nealey, 1962), оказала достойное сопротивление чемпиону мира, хотя и проиграла ему по переписке четыре пйртии (W. Hellman, 1965).
Программа играла все лучше и быстрее (вероятность наличия текущей позиции среди имеющихся в памяти возрастает с течением времени). Однако такое обобщенное обучение включало определенный риск, и Сэмюэлю повезло его обнаружить: обучение зависит от качества игры противника: если тот играет плохо, то и в программе устанавливаются плохие параметры. Действительно, использование минимаксной процедуры предполагает, что противник играет наилучшим для себя образом. Если же противник играет плохо, программа делает из этого вывод (и неверный), что позиция была недооценена и меняет параметры. А так как обучение связано с каждым ходом (даже в течение партии), то совокупность параметров может быть полностью изменена уже через пятнадцать ходов. И тогда программа начинает сама играть плохо, так что противнику достаточно ^неожиданно" начать играть хорошо для выигрыша всей партии!
Сэмюэль первым внес технические изменения в альфа — бета-процедуру: постоянное усечение дерева поиска в ширину и глубину, сортировку ходов на первом уровне. Но основное внимание он обратил на более важную проблему. Отметим следующее:
По построению функция оценивания является ' линейной по каждой из характеристик. Однако некоторые характеристики
Рис. 9.4. Иерархия сигнатур на трех уровнях.
должны усиливаться. Так, если р и Р/ дают преимущество черным, то член с Pi X Pi должен выражать такое Преимущество.
По определению общая функция может быть представлена в табличной форме. Так как на учете имеются 38 характеристик, идеальной была бы таблица, соответствующая отображению №® b:N.
При необходимости должен быть найден компромисс между слишком грубым линейным изменением, с одной стороны, и такой большой таблицей — с другой.
Сэмюэль использовал идею таблиц сигнатур — иерархии таблиц, представляющей хорошее приближение к рассматриваемой выше общей функции: 38 характеристик группируются по типу 'некоторые могут входить в разные группы); к одному типу относятся те характеристики, которые считаются, по мнению экспертов и самого Сэмюэля, взаимосвязанными. Каждая из них ограничена тем, что может принимать не более семи различных значений. В то же время коэффициент теперь приписывается всей комбинации значений внутри одного типа. На рис. 9.4 приведена общая схема расположения таблиц сигнатур.
Сэмюэль вновь ввел 180 000 экспертных ходов и рассчитал параметры с использованием метода корреляции. Было установлено, что примерно после 80000 ходов ситуация стабилизируется. В действительности все происходит так, как если бы каждый матричный элемент был единственным элементом: имеется 315 X 9 элементов для типа Л, 125 X 3 для типа В и 343 для типа С, т. е. около 3500 элементов вместо 16 в программе 1.
Так как большинство характеристик участвуют только в определенных фазах игры, ход всей партии делится на шесть фаз в зависимости от числа продвигающихся пешек и степени про- двинутости. Такое деление дополнительно уменьшает время расчетов.
Отметим, что это время весьма незначительно, потому что оценивание представляет просто поиск в таблице. Вычисление 尸(S) происходит по одной инструкции:
尸⑹— С (81 (4(Р1,卩2,Рз,口4),4() ^9(-))» 82() 83(.))•
Эта программа стала и останется настоящим чемпионом мира игры в шашки. Без использования процедуры альфа ——бета она выбирает наилучший ход в 68 % случаев (против 32 % с полиномиальным оцениванием и 16 % со случайным выбором), а с использованием процедуры альфа — бета существенно улучшает ее показатели. Кроме того, рассмотренный подход придает игре регулярность — исключает плохие ходы в течение всей партии.
Большим недостатком игровых программ является необходимость в задании исходных характеристик р『без возможности их сгенерировать самой программой. Поэтому такое статистическое обучение является хорошим приемом и даже довольно часто используется людьми на практике.
Коллектив исследователей продолжил поиски в этом направлении и спроектировал систему, способную порождать некоторую совокупность действий, полезных для целого ряда ситуаций. Это исследование проводилось в области робототехники, и система называлась STRIPS (Stanford Research Institute Planning System) (Fikes, Nilson, 1973).
9・3・ Обучение робота полезным действиям.
Система STRIPS
Элементарные операции (или операторы) в окружающей робота среде вначале описываются как тройки списков:
Первый список содержит условия, при которых может выполняться каждая операция.
Второй и третий списки уточняют факты, которые должны быть соответственно изъяты или добавлены к описанию среды,
если робот действительно использует рассматриваемую операцию. Необходимые модификации производятся в системе STRIPS с помощью процедуры доказательства теорем, основанной на методе резолюции (гл. 3) (рис. 9.5).
Оператор 27: (переместить объект в комнате).
Список С (условия) : Робот на полу/ Робот в комнате х в месте Z1.
Объект О на полу в Z1. Объект О переме- .щаемый. Места Z1 и Z2 в комнате 爲
Список —' : Робот в ZL Объект О в Z1.
Список +: Робот в Z2. Объект。в Z2.
Рис. 9.5. Пример описания элементарной операции в системе STRIPS.
Обучение проводится каждый раз, как только система эффективно решает задачу. Она обращается к последовательности использованных элементарных операций, чтобы попытаться извлечь дополнительную информацию. План, оказавшийся успешным через п шагов, предположительно будет образцом для достижения аналогичных целей, , образцом, который система STRIPS отбирает для дальнейшего использования. Последовательность таких операторов О「..., Оп сначала группируется в треугольную таблицу (рис. 9.6).
По построению в этой таблице на пересечении строки i н столбца k располагаются факты, которые добавляются оператором ki и сохраняются до момента применения оператора i: Если теперь в строке j встречается описание, которое совпадает с описанием цели в некоторой новой задаче, достаточно извлечь на последовательности О】,...,On нужную подпоследовательность; Половина работы уже сделана, и О; — последний используемый
Рис: 9.6. Последовательности операторов в системе STRIPS.
оператор. Поднимаясь по таблице, теперь достаточно определить первый оператор О% условия которого удовлетворяют новой среде.
Последовательность О(, О^, ..., О/ может быть непосредственно использована для достижения новой цели. Это макродействие соответствует, например, тому, чтобы “взять объект О, открыть дверь, зажечь свет, подняться по лестнице, положить О, выключить свет, конец”; робот научился этому действию и его запомнил.
Другая программа, разработанная Уотерманом для игры в покер, обучается с помощью апостериорного анализа своего собственного опыта.
Усвоение правил игры
Уотерман исследовал игры в -покер для двух игроков при решении вопроса о ставках. Игрок может удвоить ставку, попросить открыть карты противника, уравняв ставки, или сдаться. После открытия карт выигрыш переходит к игроку с более сильной картой и в это же время можно увидеть, существовала ли возможность выиграть больше или проиграть меньше. Такую информацию будет использовать программа длж последующих модификаций своих действий. Процесс замены карт осуществляется здесь с помощью алгоритма, который максимально повышает надежду на индивидуальный выигрыш каждого игрока независимо от противника.
Общая идея заключается в том, чтобы описать игру с помощью характеристического вектора и решений, принимаемых по совокупности правил продукций, отделенных от программы и по желанию изменяемых. Покер является игрой с неполной информацией, которая требует оценки как карт, так и стиля игры противника. Ситуации здесь менее четко определены, чем в шашках, и можно продемонстрировать всю полезность правил продукций по сравнению с таблицами сигнатур. Минимаксная процедура в действительности не может играть обычную защитную роль: каждый ход является единственным и никогда больше не встречается в партии.
Вектор описания игры (дескриптивный вектор) обычно содержит шесть компонент:
—значение очков, определяющее достоинство данного сочетания карт (УМ);
—количество денег в банке (НР)\
предыдущая ставка противника (QR);
—число карт, замененных противником (СЕ);
вероятность возможного блефа противника (РВ);
—стиль игры противника: более или менее консервативный (СЛ).
С другой стороны, программой вычисляются по совокупности партий с данным противником статистические характеристики: зависимость между ставками и действительным достоинством карт, число замеченных блефов, число решений сдаться.
Правила продукций имеют вид
Характеристический вектор ситуации ^ объявление ставки
Они являются упорядоченными: правило i может быть использовано только после правил с номерами от 1 до Z— 1.
Так, следующее правило (задаваемое учителем):
wИгрок с надежно выигрышной комбинацией карт на руках должен максимально поднимать ставки, стараясь не рисковать заставить противника сдаться. Однако, если банк уже очень большой, следует попросить открыться**
будет переведено для программы в следующей форме:
RI: (SG* *, г, РВ, СА)->Мах
R2: (SG‘,Thaut, г, *, *, *)-> Открыться
R2 будет рассматриваться перед R1
(Звездочка означает, что соответствующий параметр не является существенным.)
Значение параметра Thaut фиксируется заранее, например,: положим Thaut = 100. Наличие г означает, что противник действительно пошел на повышение ставки (г > 0)/ Значение Мах (максимальный уровень повышения без риска сдачи противника) фиксируется другим правилом и зависит, в частности, от значений РВ и СЛ, Наконец, ътметим, что такое правило может быть уточнено или изменено самой программой. Обучение с использованием учителя продолжается путем накопления знаний: хорошие правила получают большой приоритет, а область применения других ограничивается.
Предполагается, что следующая информация дается учителем после каждого хода:
текущий вектор подходящих параметров;
орошее решение;
—причина этого решения.
Рассмотрим три случая:
Программой принято хорошее решение по хорошим пра- вилам, и в этом случае ничего не меняется.)
Ни один из членов, стоящих справа, не соответствует хо-1 рошему решению» и применялось f-e правило: программа встав-1 ляет на (z — 1)-е место правило, указанное учителем.
Перед применяемым правилом Rd или после него существует правило Rj, которое могло бы привести к хорошему решению: параметры правил, которые помешали применению R/, автоматически изменяются.
Пример. Рассмотрим правила
RI (al, *, с2, *, *, *) -> повысить на 5
R2(al, Ы, *, *, el, *)->увеличить (РВ) на 0,5 (вероятность блефа противника)
R3(a2, *, cl, *, el, *)—>повысить на 5
R4(al, *, з *, *, *) ->увеличить (РВ) на 0,5
вместе с ограничениями, налагаемыми по определению:
al >8, a2 V 10, bl > 9, cl < 3, c2 > 11, el =0 и вектором (9, 4, 5, 7, 0, 5), соответствующим ситуации. Значение ”М), следовательно, соответствует al или a2; ("Р) и (QR) не представляют ни bl, ни cl или с2 и применяться может только правило R4. Но в этот момент учитель критикует выбранное решение и говорит, что следовало играть повышение на 5, потому что (VM) большое (больше 7), в то время как (DR) небольшое (меньше 6).
Усваивается, следовательно, правило:
Rp (a3, *,' сЗ,叫 *, *)-> повысить на 5 при условиях аЗ > 7 и сЗ < 6
Программа ищет по порядку правило, которое могло бы привести к такому действию. Таким кандидатом могло бы быть R1, но оно не пригодно, так как ограничения на с2 и сЗ противоречат друг другу и не могут быть удовлетворены одновременно. Правило R3, напротив, оказывается более подходящим: решение является тем же и ограничения могут быть согласованы. Так как это целевое правило R3 расположено перед ошибочным R4, нужно изменить область параметров。2 и с\ таким образом, чтобы они соответствовали ситуации.
Правило R3 автоматически заменяется на следующее:
R'3(a4, *, сЗ, *, el, *)->повысить на 5 при условиях
7 V a4 V 10 н с3 V 6
Полностью процесс обучения представлен на рис. 9.7.
В приведенной процедуре возможны две опасные ситуации. Первая связана со сверхограничениями правил и возникает при излишне пунктуальном учителе. Число правил возрастает до бесконечности, и каждое может быть применено только к одному случаю. Чтобы избежать этого, число правил ограничивают некоторым произвольным образом и последнее из них с вектором (*, *, *,明 *) дает случайно выбранное решение.
Ввод вектора ситуации и хорошего решения
Отработка правил
:СЛИрешение хорошее;
ТОГДА КОНЕЦ'
!НАЧЕ сконструировать новое подходящее правило Rp Пусть Rd — правило, вызвавшее неверное решение ЕСЛИ существует правило Rl> которое:
——имеет в правой части такой же член, как и Rp
—определяется неравенствами, совместимыми с неравенствами R" ТОГДА ЕСЛИ R1 находится перед Rd: ТОГДА обобщить определения Ri П Rp
ИНАЧЕ (Ri расположено после Rp): ограничить определения всех параметров для правил, расположенных между Rd и Ri с тем, чтобы к ним ' не происходило обращение от текущего вектора
КОНЕЦ_ЕСЛИ
Иначе добавить новое правило/?)9 сразу за Rd КОНЕЦ_ЕСЛИ * еНЕЦ.ЕСЛИ
РнС. 9.7. Процедура обучения правилам игры в покер.
Это, впрочем, то единственное правило, с которого начинается здесь всякое обучение.
Вторая ситуация связана с избыточностью: правило R1 может превратить любое следующее за ним правило R2 в бесполезное, так как область изменения параметров, соответствующая R2, включается в область правила R1 для любых решений по R1 или R2. Возможна и обратная ситуация, когда J?1 обес^ ценивает R0, которое предшествует ему, так как то же решение было бы принято системой, если бы R0 и не существовало. ”
Такая избыточность периодически проверяется и устраняется системой. (Указанный процесс осуществляется не в конце тур-
нира, а после каждой партии, так как правила могут изменяться быстро.)
Пример. Рассмотрим правила
Rl(al, bl, *, *, *, *)—> dl.
R2(a2, 62, cl, *, 3 〃)->d2
R3(*, 62, *, *, *, f2) —> d3
R4(*, bl, *, *, d4
при ограничениях
al >5, a2> 10, bl < 9, b2 V 4, cl <5, fl > 15 и /2 < 7.
Правило RI превращает R2 в недостаточное, так как a2 > al н b2 Vbi 0 R2 тем самым теряет смысл. Правило R4 превращает R3 в избыточное, так как Ь2 < Ь1 и /2 не используются, и R3 становится бесполезным.
Заметим, что теперь все находится на своих местах и можно усваивать знания без учителя: каждый раз, когда открываются карты противника и программа проиграла партию, она сама трансформирует последнее правило в диалоге на правило сдачи. Наоборот, если она выиграла, то поднимает ставки последнего хода.
Таким образом, в конце концов Уотерман придумал пять разных программ для игры в покер. Они играют: а) случайным образом; б) используя учителя; в) обучаясь автономно; г) используя правила, предоставленные хорошим игроком; д) с полным обучением без задания характеристик вектора ситуации.
Число правил никогда не превышает 30 и соответствие с игрой экспертов (после обучения) достигает 96 % (автономная программа). Программа по самому алгоритму довольно часто меняет решения для сходных ситуаций и легко блефует, не допуская ошибок и приводя некоторых игроков, в замешательство.
Программы тестировались с помощью случайного набора из 25 комбинаций карт в игре против людей. Затем через некоторое время роли сторон менялись. Программы легко выигрывали у игроков среднего класса и вели игру почти на равных е экспертами.
一 Замечания. Программы Уотермана имеют два недостатка. Во-первых, как и в программах Сэмюэля, обучение происходит на числовых параметрах. Определяющие символические элементы задаются априори. Во-вторых, неизменяемый порядок правил усложняет работу программы и вызывает непредсказуемые явления: игра с упорядоченными правилами в действительности -подобна некоторой процедуре и всякое изменение вызывает
неконтролируемые граничные эффекты. Правила продукций теряют свои преимущества (гл. 7).
Итак, существенные моменты усвоения знаний следующие: прежде всего необходимо определить понятия. Затем нужно уметь делать выводы (обычно по одному единственному слу- v чаю) об определяющих характеристиках ситуации. Именно так в действительности поступает человек: никому не нужно дважды объяснять, что не следует совать руку в огонь. Рассмотрим программу игры в шахматы, которая старается, исходя из одного единственного примера, понять и обобщить. '
Обучение планам
Эта программа Жака Питра воспринимает партии, реально сыгранные мастерами, пытается разобраться в них и вывести планы игр для других партий. Сначала она реализует лишь две элементарные стратегии:
если фигура находится под ударом противника, ее следует
переместить;
если своя фигура Р1 атакует фигуру противника Р2, рассмотреть ход Р\ 器 Р2.
Пользуясь этими стратегиями, программа пытается разобрать варианты атаки и защиты каждой из сторон, и она дости
гает этого даже в том случае,гает этого даже в том случае,abodef g habodef g hРис. 9.8. Начало партии. Ход белых.Рис. 9.8. Начало партии. Ход белых.когда угрозы, возникающие на доске, не приводятся в исполнение.,
гает этого даже в том случае,
гает этого даже в том случае,
abodef g h
abodef g h
Рис. 9.8. Начало партии. Ход белых.
Рис. 9.8. Начало партии. Ход белых.
В работе программы можно выделить три этапа:
разбор ситуации;
упрощение и обобщение последовательностей действий;
запоминание и использование найденного плана.
Разбор ситуации
Здесь можно отметить два интересных случая:
Пусть последний сыгранный ход — взятие фигуры противника. Рассмотрим, например, позицию на рис. 9.8 и следующие три хода: "
СЬ5Хс6,
d7 X сб,
Kf3><e5 (ход, разбираемый программой).
Исходная ситуация
Ход IIIХод IIIХод IХод I
Ход III
Ход III
Ход I
Ход I
IV-Деревоответовпротивника (если сразу пошел К, последовательность действий нарушается)IV-Деревоответовпротивника (если сразу пошел К, последовательность действий нарушается)V-Дерево ходов противника (если противник делает ход, отличный от хода II, он проигрывает)V-Дерево ходов противника (если противник делает ход, отличный от хода II, он проигрывает)Ход ИVI-Дерево ходов противника (реальная ситуация)Ход ИVI-Дерево ходов противника (реальная ситуация)
IV-Деревоответов
противника (если сразу пошел К, последовательность действий нарушается)
IV-Деревоответов
противника (если сразу пошел К, последовательность действий нарушается)
V-Дерево ходов противника (если противник делает ход, отличный от хода II, он проигрывает)
V-Дерево ходов противника (если противник делает ход, отличный от хода II, он проигрывает)
Ход И
VI-Дерево ходов противника (реальная ситуация)
Ход И
VI-Дерево ходов противника (реальная ситуация)
Рис. 9.9. Дерево разбора хода (шахматы).
В действительности, для того чтобы понять ход Ш, нужно понять ход I, который его подготовил, а также ответный ему ход П. Поэтому, чтобы разобрать возможность такого взятия фигуры, программа порождает некоторым стандартным образом дерево, приведенное на рис. 9.9.
В начале партии, которое нас интересует, мы находим для хода черных IV (пользуясь минимаксной процедурой): кХКе5 или же аб X С65; для хода V мы встречаем:匕义 сб (иначе белые выигрывают фигуру), и при ходе VI черным становится ясно, что они теряют пешку. Урок, извлекаемый из ситуации (позже мы увидим, как программа его формирует и запоминает), можно сформулировать так: ичтобы выиграть пешку, охраняемую только одной фигурой, надо пойти на обмен этой фигуры**.
. Ходы второго типа, которыми интересуется программа,— угрозы, т. е. такие перемещения, которые на следующем ходу ведут к захвату фигуры, если противник не отреагирует соответствующим образом. Программа констатирует угрозу, рассматривает, как и почему противник отражает ее, и обучается даже в том случае, если в действительности на шахматной доске ничего серьезного не произошло (рис. 9.10).
Ход I
Угроза . 、
0Дерево своих ходов Ход II парирует
Дерево ходов про-ход I
тивника ЕПервый ход Е
Дерево своих ходов
Рис. 9.10. Дерево исследования угрозы.
Таким образом, программа формирует и запоминает потенциальные действия, сразу обучаясь атаковать и защищаться, даже если на реальной доске подобные комбинации не возникают.
В каждом из рассмотренных случаев минимаксная процедура служит для объяснения сделанных ходов в той мере, в какой для всех других ходов она приводит к отрицательному результату.
Упрощение и обобщение
То дерево поиска, которое было рассмотрено выше и уточнено в текущей игре, сохраняется в памяти. Однако в шахматах мало шансов, чтобы два раза встретить одну и ту же ситуацию, поэтому запоминать нужно лишь характерные элементы ситуации. Это более сложная операция, чем при игре в шашки или покер^ потому что даже пешка может изменить всю игру. Например, не возникает и вопроса, чтобы повторить схему игры в ситуации, представленной на рис. 9.8, если е5 заменить на еб.
Следовательно, процедура упрощения сначала должна заносить в дерево поиска лишь ' самые лучшие ходы каждой из сторон. В действительности здесь сохраняются только те ходы, которые создают или уничтожают возможности захвата фигур противника. После этого программа обобщает дерево ходов, которое она только что построила, ориентируясь на положительный результат для одного из соперников. При этом, во-первых, цвет фигур не учитывается и становится параметром, размещенным в корне дерева. Во-вторых, поля и сами фигуры представляются следующими переменными:
Координаты поля не имеют значения, запоминаются лишь отношения между полями и условия расположения фигур. Так, начальная позиция
■0-Л X Ке4■0-Л X Ке4лмлм(Л1)(Л1)Белые: Kpgl, ЛП, d2. Черные: Кре8, Кв4 приводит к исходному дереву
■0-Л X Ке4
■0-Л X Ке4
лм
лм
(Л1)
(Л1)
К>4 перемещается — JI X Кре8
0 - л х Ку0 - л х КуЛ ct —-• §Л ct —-• §(42)(42)Это дерево обобщается следующим образом. Начальные условия: своя ладья Л на поле а, конь противника на поле у, король противника на поле 6; р, у, 6 расположены на одной линии. В результате получаем новое дерево .
0 - л х Ку
0 - л х Ку
Л ct —-• §
Л ct —-• §
(42)
(42)
К перемещается — JI X Кр 6 которое связано с запиранием коня ладьей.
Имена фигур могут быть обобщены при некоторых условиях: каждая фигура, взятая у противника, может быть вначале заменена на фигуру той же или большей силы при сохранении положительного итога. Наоборот, каждая собственная фигура может быть заменена на свою же более слабую. Дерево (Л2) обобщается таким образом и дает дерево (АЗ):
———0 ~ РА X
РД а - р(ЛЗ)
Р£ перемещается — РА 义 RE6
где РА выступает в роли своей фигуры, меньшей или равной ладье; РЕ — фигура противника, более сильная или равная коню; RE — король противника.
Итак, концепция запирания найдена программой исходя из одного случая..
В некоторых ситуациях, когда фигура, например, просто берется (она даже не вступала еще в игру), возможно дальнейшее обобщение. Этой фигуре приписывается произвольное значение (обычно нулевое), и ее поле рассматривается как незанятое. Деревья, обобщенные таким образом, представляют настоящие планы действий. Каждый из них соответствует некоторому материальному выигрышу с последовательностями атак и защит и может быть использован независимо любым из противников.
Однако одного усвоения недостаточно, нужно еще уметь так представлять усвоенные знания в машине, чтобы использовать их эффективно: ведь будут порождены тысячи разных планов, и их структурирование (а может быть, и изабывание" некоторой части) совершенно необходимо.
Изменение и использование планов
Обобщенные деревья размещаются в памяти в форме, аналогичной схемам Минского (М. Minsky, 1972). Каждая схема состоит из трех разных частей — обобщенные ходы, поля, само дерево. Поле • отыскивается по формальному имени, которое рассматривается как переменная, и по одному из состояний: V = пусто, Л = своя фигура, Е = фигура противника с указанием соответствующего значения в двух последних случаях.
Обобщенный ход определяется значением (обобщенным) и стоимостью фигуры, начальным и конечным полями хода и при необходимости условиями на промежуточных полях.
Пример. ЛД а — d — хЕ ^ С означает, что своя ладья, находящаяся на поле а, берет фигуру противника на поле е по
силе, превышающей или равной слону, и что существует по крайней мере одно промежуточное пустое поле d.
Наконец, дерево размещено в. памяти и в каждой вершине стоит номер соответствующего хода. Для данной позиции на шахматной доске теперь нужно найти все подходящие схемы. Однако это может оказаться дорогой операцией, если не принять мер предосторожности.
Предположим, что первым ходом в дереве для некоторой схемы будет ЛЛ а —仇 Если в текущий момент на доске имеется ладья, то переменная а принимает некоторое значение, Таблица 9.1
Поля
Ходы
Дерево
а
Л4
(1) ЛД § 一 Y — хб
р
Пусто
(2) Е ^ С играет
0 (2) II
Y
Е》С
(3) ЛЯ ₽XY
||
(3)(I)
Y
RE
(4) ЛД а — р
после чего для § возникает до четырнадцати возможных вариантов. Ясно, что нужно так организовать поиск, чтобы отбросить неподходящие планы как можно скорее (за минимальное число попыток). Прежде всего сохраняются только те планы, которые в принципе соответствуют имеющимся данным. Затем первыми рассматриваются наиболее выгодные обобщенные ходы, которые одновременно являются и наименее вероятными. Наименее вероятный ход определяется в каждой схеме с помощью функции оценивания следующего вида:
min (значение полей хода) * [значение фигуры, min (значения других полей)],
где значение (стоимость) поля тем больше, чем менее оно определено. Принимается следующая система: 32 очка за пустое поле; 8 очков за поле, занятое пешкой; 4 очка за поле, занятое фигурой; по 1 очку за поле короля, ферзя или уже известное поле. Наименее вероятный ход определяется по минимуму этой функции, и по ней упорядочиваются ходы в самой схеме.
Тем самым план дерева (Л2) приводит к схеме (табл. 9.1), которая соответствует рис. 9.11 при ходе черных.
Столбец иполя" схемы указывает прежде всего, что весь материал в наличии; затем придается значение переменной б (допустим,无2). Столбец “Ходы” при упорядочении по реально-
му дереву начинался бы ходом (4) Ла — 0, что приводило бы к 14 вариантам. Однако, упорядочив ходы по рассмотренной выше функции, следует сначала рассмотреть ход (1) ЛЛ р — у — хЛ2.
Изучение позиции путем анализа ходов ладьи, которые ведут к полю Л2 через поле, занятое фигурой противника по силе, не уступающей коню, оставляет только ход (1) 〃/ а2 ——с2 ——xh2. Ход ЛЛ8 ——九4 — h2 связан с белой пешкой 九4, которая не имеет большого значения. Теперь переменные ходы (3) ЛДрху полностью известны: это может быть только JIa2 X с2.
Следовательно, исходное поле ладьи должно «быть а8 и ход (4) должен быть Ла8a2. Соответствие схемы с имеющейся позицией успешно установлено, и план, заложенный в дереве, должен быть испытан. Чтобы убедиться, что он
Приводит К успеху, программа Рис. 9.11. Использование плана (ход обращается ко всем планам черных), защиты черных и соответствующим схемам. Если конечный результат, оцененный минимаксной процедурой, является положительным для своего лагеря, то исходный план принимается к действию. В противном случае рассматриваются другие планы первого уровня. Эта процедура уже использовалась в другой программе Ж. Питра (разд. 6.3).
Заключение. Программа обучается лишь после того, как она разобралась в ситуации. Она нечувствительна к плохим ходам: если в реальной партии хороший ход не был найден, обучения не произойдет, если же был найден лучший ход, чем выполненный, то программа кое-чему научится. Усвоение новых знаний зависит от наличного багажа, потому что для разбора новой ситуации программа использует те схемы, которые уже зарегистрированы. Таким образом, может случиться, что на определенной стадии своего развития программа не сделает трудного хода, а выберет его позже после ряда других партий.
Другим важным моментом является то, что рассмотренная процедура может быть применена для многих других игр. Усвоенные планы достаточно гибки: в противоположность программам Уотермана они не императивны, а дают лишь указание на возможные хорошие ходы. Решение принимается
минимаксной процедурой в соответствии с внешними факторами или на основе другой долговременной стратегии.
Однако остается одна серьезная трудность ——громадное число схем порождаемых планов (порядка десятков тысяч для всей игры), которое связано с наличием множества возможных вариантов для каждой ситуации и многообразием самих ситуаций в шахматах. Кроме того, довольно трудно отбрасывать посторонние ходы для рассматриваемых планов, чтобы в значительной степени их упростить.
Итак, программа усваивает новые знания, но не может эффективно их использовать. Эта фундаментальная проблема, и в настоящее время она не решена. Как ни странно, это скорее не проблема обучения, а “просто” проблема управления огромной базой знаний. Ее можно включить в проблематику метазнаний и экспертных систем.
Учет характеристик
С детского возраста человек учится вырабатывать понятия и ставить им в соответствие названия: он знает, что такое игрушка, дерево, дом, человек... Каким образом мы можем соотносить с одним понятием различные примеры? Как выделяем мы характеристики этого понятия?
П. Уинстон написал программу (Р. Winston, 1970), которая частично ответила на эти вопросы. С. Вере (S. Vere, 1979) предложил в 1979 г. более совершенный вариант программы, который описан ниже.
Программа П. Уинстона анализирует с помощью кинока- , меры сцены, составленные из простых объектов: кубов, брусков, призм, пирамид. Вначале сцена обрабатывается с целью формирования некоторого разумного представления: каждый объект изолируется и отношения между объектами запоминаются с помощью размеченного графа, вершины которого соответствуют объектам.
Выделяются следующие отношения:‘
СВЕРХУ, РЯДОМ, ПОДДЕРЖИВАЕТСЯ, СЛЕВА一ОТ,
ПЕРЕД и ОТНОСИТЬСЯ_К_ПОНЯТИЮ
Сцена на рис. 9.12, а представлена графом на рис. 9.12,6. Система способна с помощью преподавателя различать понятия сцены, используя для этого ряд примеров и контрпримеров. Всякий опыт здесь в определенном смысле приближается к рассуждению по аналогии, используемому в сценах тестов на интеллектуальный коэффициент. Речь идет о поиске закона на основе первых предъявленных примеров. В гл. 3 мы видели, каким об-
разом часть этой работы может быть выполнена с помощью алгоритма унификации и как программа Т. Эванса решает та- кие тестовые задачи.
В системе П. Уинстона рассматривается последовательность сцен, которая начинается с некоторой типичной ситуации. Затем
ОГНОС^ТСЯ_К-QTHQCMTCR_K_
ПОНЯТИЮПОНЯТИЮ Брусок
Призмак
Рис. 9.12. Анализ и представление сцены.
вводится важное изменение условий опыта: преподаватель может предлагать системе сцены, которые не являются подходящими примерами для усваиваемого понятия. Система обучается теперь, исходя одновременно как из примеров, так и контрпримеров.
Основной идеей здесь является использование 44почти при* меров”. Если предлагается ситуация, которая радикально отличается от всех других, то об ее использовании мало информации. Если же, напротив, ситуация близка к рассмотренным, си- стема будет выявлять отличия от внутренней модели и отмечать их, постепенно усваивая существенные и второстепенные характеристики понятия.
Предположим, что сначала преподаватель предлагает следующую сцену:
Система воспринимает и описывает ее как два стоящих бруска, которые поддерживают один брусок, лежащий на них боком.
Если в качестве контрпримера дается следующая сцена:
то система отметит в соответствующем графе, что отношение поддержки является необходимым для изучаемого понятия. Если появляется третья сцена, которая опять является контрпримером,
программа добавляет на этот раз к внутреннему представлению отношение HE-РЯДОМ для стоящих брусков. Если в дальнейшем дается пример, в котором лежащий брусок заменен на призму, производится обобщение: лежащим может быть любой объект с плоским основанием (чтобы его можно было поддерживать стоящими брусками). В результате понятие "арка” может быть усвоено в форме, представленной на рис. 9.13:
Рис. 9.13. Понятие арки.
В том случае когда соответствие между текущей сценой и моделью может быть установлено несколькими путями, решение принимается с помощью функции оценивания, которая вводит приоритеты для объектов и отношений.
Пределы применимости рассмотренной программы определяются двумя факторами. Во-первых, бедность рабочей среды. Зависимости, касающиеся только попарных отношений между объектами, весьма немногочисленны; их не намного больше, чем1 самих объектов. Контрпримеры наивны, и неизвестно, каким образом их можно “хорошо выбирать". Во-вторых, исключительно эмпирический характер приобретения знаний: ничем не обеспечивается сходимость к результату через какое-то количество шагов. Наконец, как поступать при распознавании объекта, если в распоряжении имеется не одна, а тысяча моделей?
На самом деле такая система в пределе ни к чему не приходит и все модели для нее эквивалентны. Дело в том, что в памяти хранится последняя модель, а не примеры, которые привели к ее появлению, и поэтому нет возможности возвратиться назад. Например, когда добавляется отношение НЕ_РЯДОМ, нельзя проверить, удовлетворяет ли оно всем предыдущим примерам. Поэтому при появлении противоречия нужно уметь обращаться к другим средствам, которые не применяются, если пользоваться функцией оценивания.
В программе С. Вере (S. Vere, 1979) факторы не играют большой роли.
Усвоение понятий
Обучение в основном заключается в том, чтобы путем абстракции и индукции усвоить общую ситуацию, исходя из небольшого числа примеров. Этот процесс можно направлять и ускорять, используя контрпримеры, которые будут теперь произвольными, а не только “почти примерами''. Рассматриваемые ситуации могут быть достаточно сложными, и для их представления может применяться несколько вложенных уровней с операциями разъединения и отрицания. Это позволяет, в частности, хранить в резерве все возможности проверки сходства и различия между ситуациями.
Сначала обратим внимание на механизм абстрагирования.
Абстракция и обобщение
Обычная унификация основана на подстановке термов на место переменных. Такие подстановки по природе являются дедуктивными и строгими. Обобщать ——это идти как раз в противоположном направлении: рассматриваемый терм становится абстрактным, когда он заменяется на. переменную. В подстановке такого типа, которую называют индуктивной, необходимо уточнять, в каком случае данный терм нужно заменить, так как в отличие от унификации здесь нет вынужденных подстановок.
Например, ничто не обязывает повсюду заменять некоторый терм одной и той же переменной.
Индуктивная подстановка О характеризуется, следовательно, последовательностью троек:
。={佑,5/力);…;(%,0"/%)},
где 乙 ——терм, Oi ~~ экземпляр, v\ ——замененная переменная.
Пусть имеется следующее выражение Е:
Е = ((пьеса) Вольтер Кандид) А (француз Вольтер) А
А (писатель Вольтер))
Дедуктивная подстановка
О = {(Вольтер, (1, 3)/х); (Канднд, 1/у)})
преобразует 七 в выражение ОЕ
ОЕ ~ ((пьеса) ху). А (француз Вольтер) Д (писатель х))
Отметим, что если не принять мер предосторожности, то не обязательно получается дедуктивная подстановка D, которая позволяет по обобщенному выражению найти оригинал. Так, в нашем примере для этого достаточно заменить терм Кандид на ту же переменную х.
Так как для проверки соответствия системы необходимо возвращаться к исходным примерам, в дальнейшем в индуктивных подстановках мы потребуем следующее:
двум разным объектам соответствует одна переменная;
повторно используются переменные того выражения, которое обобщается.
Воспользовавшись определением с такими ограничениями, мы получаем следующий механизм обобщения: выражение Е1 будем называть более общим, чем выражение Е2, тогда и только тогда, когда существует индуктивная подстановка О, такая, что Е1 三 ОЕ2. Здесь предполагается, что Е1 и ОЕ2 имеют нормальную конъюнктивную форму и знак включения понимается в смысле теории множеств: каждый множитель из £1 принадлежит и ОЕ2. Порядок множителей в рассматриваемых выражениях несуществен.
Таким образом, выражение
Е1 =(х[) Д (贝)Л (х》а)「 является более общим, чем
E2 = (Tf) A (Kt) A (10f) А (К;) А (ДО А (Т>К) А (К》Д), потому что существует постановка
0 = {Т, 1, 2/х, К(1, 2, 3, 4)%}, такая, что £1 sO£2.
В дальнейшем мы будем писать El W Е2 для обозначения того, что £1 является более общим, чем £2, и будем говорить, что £1 покрывает £2. Для данных El, Е2 н О будем называть сцеплением часть ОЕ2, которая принадлежит £1, а дополнение этой части будем называть остатком.
В нашем примере сцеплением является
(X Т)八(贝)Л (%》д),
а дополнением —
(//Пл(1опа(д;)а(//>д).
Разумеется, для данных Е1 н Е2 может существовать несколько подстановок О?, которые удовлетворяют соотношению El W О[Е2.
В частности, они могут давать одинаковые сцепления и разные остатки.
Можно рассматривать разные подходы к определению индуктивных подстановок: от жестких, когда требуется минимальное число изменений, до самых свободных, разрешающих любые подстановки. Мы ограничимся классом допустимых подстановок, которые по определению удовлетворяют (кроме указанных выше требований 1) и 2)) еще двум новым требованиям:
один и тот же терм заменяется во всех подстановках на одну и ту же переменную;
терм заменяется только в случае необходимости, в частности терм из остатка заменяется только в том случае, если он заменен в сцеплении.
Теперь можно не указывать разные случаи расположения термов в допустимых подстановках.
Из этого определения следует, что всякое выражение является собственным обобщением, а также обобщением любого выражения, выводимого из него простым переименованием переменных.
Обобщение £1 выражения Е2 будет строгим тогда и только тогда, когда 30, для которого £1 V 0Е2 (строго) или Е1 = =0Е2 при условии, что О 鼻 переименование.
Отношение V влечет за собой отношение W, но не наоборот. Так же как в арифметике вводится наибольший общий делитель или максимум в булевой алгебре, можно определить Е — общее максимальное обобщение двух выражений Е1 и £2 еле* дующим образом:
(Е&Е1 и не существует J E’VE&El н
I Е&Е2 & такого, что ( £ VE&E2.
Понятие представляет, таким образом, общее максимальное обобщение соответствующих примеров. Примеры рассматриваются попарно, 'и все сцепления систематически запоминаются. Процедура повторяется до получения совокупности разъединенных подмножеств для выражений, которые обобщают все предъявленные примеры. Таким образом, общее максимальное обобщение состоит, возможно, из отдельных частей. Подключение контрпримеров к этому процессу уточняет и усложняет анализ.
Контрпримеры, очевидно, приводят к появлению отрицаний, которые могут присутствовать в описании понятия совместно с разделениями. В результате такого перемешивания обобщения становятся достаточно сложными.
Например,
(х НА у) А (красный у) Д Т (((z НА у) А (куб z)) V (куб у)). “Некоторое тело находится на красном объекте, И на этом красном объекте нет другого объекта, отличного от куба, ИЛИ же у не является кубом".
Заметим, что в этих описаниях обозначение
/А [(В A〔С)
более предпочтительно, чем
(ЛАПВ)У(Л ABAC)
из-за простоты процесса обучения, связанного с первым вариантом.
Система получает одновременно целое семейство примеров р; (I = 1, …,р) с семейством контрпримеров v; (/ = 1,... ...,q). Вначале изучаются примеры и по ним формируется общее максимальное обобщение Р1, которое является излишне широким множеством: оно позволяет описывать и некоторые контрпримеры. Из анализа последних получают некоторый корректирующий член ^l, очевидно, не входящий в разбираемое понятие. В выражении С1, которое описывает это понятие, N1 входит с отрицанием
С1=РЛДЧ.
Однако член ~IN1 может теперь поправить Р1 слишком сильно, что приведет к исключению некоторых примеров. Так появляется новое условие с отрицанием и т. д. Так как исходные формулы конечны и общее число возможных случаев также конечно, процесс обязательно сходится к некоторому конечному выражению. В наихудшем случае оно будет представлять просто объединение всех отдельных предъявленных ситуаций. В об-
щем случае £ будет трансформироваться в более компактное выражение С, которое в сжатой форме отразит характеристики, разделяющие примеры и не встречающиеся в контрпримерах. Общая форма С имеет вид
С = Р1 Л П^1 A n(2V2 Д п(... Д п ^))).
Она сразу указывает на аналогию со знакопеременными сходящимися рядами вида
旬一aji+做炉一.…+ (- 1 )* %k上
Последовательные члены представляют собой символические выражения, а не мономы, принимающие числовые значения.
Проиллюстрируем процедуру построения общего максимального обобщения С на следующем примере. Система получает описания рь р2, рз и р4; Vb v2, v3 и v4 четырех примеров и четырех контрпримеров (рис. 9.14)..
Общим максимальным обобщением (ОМО) для четырех примеров будет Р1:
Р1 =(尤 НА у) Д (КУБ у) Л (ЗЕЛЕНЫЙ у),
Контрпример v2 исключается, так как куб в v2 не зеленый. Однако vl, v3 и v4 покрываются 4Hx следует исключить добавлением корректирующего члена _l^l. Этот член должен устранить остатки р'1 = (vi — OiP\) для f = 1, 3 и 4 и соответствующих 01
РЧ=(ШАР х) (ГОЛУБОЙ х) с Oi={Ql/x, Q2/y},
p,3 = (Q7 НА х)(КУБ Q7)(KYb х) (ЖЕЛТЫЙ С7)(ГОЛУБОЙ х) с 03 = {Q5*, Q6/y},
р,4 = (КУВ х) (ГОЛУБОЙ %) с 04 = {Q8/x, Q9/办
Выражение ЛЧ должно покрывать эти три новых примера; оно принимает значение их общего максимального выражения ОМО, которое в данном случае достаточно простое:
0М0(р'1, /3, р'4) = АП =(「ОЛУВО贝 х).
Описание искомого понятия принимает вид
С1=(х НА у) А (КУВ у)八(ЗЕЛЕНЫЙ у) А ^(ГОЛУБОЙ х).
Выражение С1 по-прежнему покрывает исходные примеры pl, рЗ и р4, так как ни в один из них не входит множитель (ГОЛУБОЙ х). В то же время оно исключает р2, где этот множитель присутствует. Для того чтобы его возвратить, образуют новый остаток из множителей, не покрываемых ни положительными, ни отрицательными членами из С1. В нашем случае в р2
Рис. 9.14. Примеры (а) и контр-примеры (б) при изучении понятия.
а) Примеры
Описание:
pl = (01 НА 02) Д (ШАР 01) Д (КУБ 02) А (ЗЕЛЕНЫЙ 01) Д
А (ЗЕЛЕНЫЙ 02).
р2 = (ОЗ НА 04) Д (ПИРАМ 03) А (КУБ 04) А (ГОЛУБОЙ 03) Д
А (ЗЕЛЕНЫЙ 04),
рЗ = (05 НА 06) А (КУБ 05) Д (КУБ 06) Д (ЖЕЛТЫЙ 05) А
Д (ЗЕЛЕНЫЙ 06).
р4=(О7 НА 08) Д (09 НА 07) Д (КУБ 07) Д (КУБ 08) А (КУБ 09) А Д (КРАСНЫЙ 07) А (ЗЕЛЕНЫЙ 08) А (ЗЕЛЕНЫЙ 09).
б) Контр-примеры Описание'.
V1 = (Q1 НА Q2) Д (ШАР Q1) А (КУБ Q2) Д (ГОЛУБОЙ Q1) А
А (ЗЕЛЕНЫЙ 02).-
v2 = (Q3 НА Q4) А (ШАР Q3) А (КУБ Q4) Д (ЗЕЛЕНЫЙ Q3) А
А (ГОЛУБОЙ Q4).
v3 = (Q5 НА Q6) Д (Q7 НА Q5) Д (КУБ Q7) А (КУБ Q5) Д (КУБ Q6)A
А (ЖЕЛТЫЙ Q7) Д (ГОЛУБОЙ Q5) Д (ЗЕЛЕНЫЙ Q6).
v4 = (Q8 НА Q9) Д (КУБ Q8) А (КУБ Q9) Д (ГОЛУБОЙ Q8)八
А (ЗЕЛЕНЫЙ Q9).
остается множитель (ПИРАМ х), который является собственным ОМО и последним корректирующим членом. Таким образом, описание понятия, которое определяется рис. 9.14, принимает окончательную форму
С1 = (% НА у) А (КУБ у) Д (ЗЕЛЕНЫЙ у)К
А 】((ГОЛУБОЙ х) А ~| (ПИРАМ %)).
Может оказаться, что процедура формирования общего максимального обобщения приведет на каком-то этапе не к одному, а к нескольким выражениям. Разъединения в таком случае
вводятся в описание. Кроме того, возможно, что ни одного общего максимального обобщения не образуется либо из-за того, что исходные множители не входят ни в одно отношение, либо из-за ограничений унификаций. Тогда единственным обобщенным выражением будет пустое, т. е. не существует эффективного понятия, покрывающего примеры и одновременно исключающего контрпримеры. Это обусловлено противоречиями для остатков типа
остаток положительный = (х НА у) (ЗЕЛЕНЫЙ %), остаток отрицательный =
=(% НА у) (ЗЕЛЕНЫЙ х) (КРАСНЫЙ у).
Программа С. Вере написана на языке ICECUBE — диалекте языка SNOBOL — и производит обобщения за несколько секунд на машине IBM 370/158. Она также способна обобщать правила повторной записи, описывающие, например, сборку конструкций из кубиков и обратную процедуру разбора. Хотя эту программу следовало бы усовершенствовать, обогатив словарь описаний другими типами отношений, она представляется одной из лучших программ, хорошо формализованных и пригодных для задач обучения. Усваиваемые при этом понятия обладают достаточной сложностью, которая, возможно, превышает сложность тех понятий, которые может сформировать и запомнить сам человек.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Агенда 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
—2?^ оптимальном гамильтоновом цикле
«эйлеровом цикле» на графе 197
— о взвешивании 244, 245
восьми ферзях 250
гамильтоновом цикле 278
коммивояжере 278
раскраске географической карты 267
二 разрешимости логического выражения 214
Зацикливание 129
Значимость переменной 481
Игра тик-так-iy 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
Обучающиеся системы 397—400
Общее максимальное обобщение 543
Общий алгоритм неявного перебора 249
Обязательные правила вывода 146
Опасный ход 355
Оперативная память 335
Операторы 79
Отношение сводимости 218
Отношения 431
Отрыв точки 480
Оценивание позиции 318
Парадокс Ришара 108
—Эвбулида 106
Параметризация 417
Первая теорема Геделя 103
План решения 396
Подстановка 48, §3
Полиномиальные алгоритмы 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
—MECHO 405
—MYCIN-TEIRESIAS 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
В последней функции COND части, относящиеся к результату, пусты. В этом случае, как известно, результатом является часть самого теста. В одном случае символ обработан аналогично символу +, а в другом осуществляется переход в £ к следующему символу, не сдвигаясь в F, и затем вновь происходит обращение к функции FILTRE. Это означает, что * как бы “а6・ сорбировала" данный символ. Рассмотрим пример работы
В частности, мы не можем приехать в город D одновременно из Л и В. Кстати, это доказывает, что q*》49, но непосредственно использовать этот результат мы не будем.
Некоторые из дуг с нулевыми стоимостями не могут быть включены в маршрут. Тогда встает вопрос: какова минимальная стоимость запрета на《поездку» по дуге с нулевой стоимостью? Поскольку в любом случае мы должны уехать из города, расположенного в данном столбце, минимальная стоимость этого перемещения составит сумму минимального значения стоимости по горизонтали (наш нуль не считается) и минимального значения стоимости по вертикали. Эта величина, используемая во многих задачах на оптимизацию, обычно называется пошлиной. Она вычисляется для идеального варианта, который состоит в выборе дуги с нулевой стоимостью, и оценивает наименьшую стоимость — минимальную пошлину, которую нужно заплатить при отказе от этого выбора.
Вытекающая из данной идеи стратегия поиска состоит в том, чтобы каждый раз выбирать вариант, для которого пошлина является максимальной. В задаче о коммивояжере пошлина r(z, /) для некоторой <дуги (/,/), имеющей нулевую стоимость,
• прямой проверкой БФ;