Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Слэйгл Д. Искусственный интеллект. Подход на основе эвристического программирования

.pdf
Скачиваний:
13
Добавлен:
25.10.2023
Размер:
12.47 Mб
Скачать

П Р О Г Р А М М Ы , Р Е Ш А Ю Щ И Е З А Д А Ч И

71

4.3. ОБЩЕЕ ОПИСАНИЕ ПРОГРАММ

 

Для описания процедур, применяемых в трех рассмо­ тренных программах при исследовании имплицитных деревьев, описанных в разд. 4.1, мы будем использовать всюду способ представления задачи в виде дерева целей. Особое внимание при рассмотрении указанных программ уделяется анализу их общих свойств, так как выявлен­ ные при этом положения (хорошо обоснованные экспери­ ментами на вычислительной машине) могут лечь в основу общей теории решения задач. Теория решения задач мо­ жет в будущем приобрести большое значение. Ее будут

использовать как

для улучшения способностей

человека

и машины решать

задачи, так и для получения

эталона,

с помощью которого могут быть оценены индивидуальные способности к решению задач.

Внутренняя организация работы программ. Общая процедура, используемая в каждой из трех рассматривае­ мых программ, включает следующие шаги, выполняемые в указанном порядке. Подпункты, помещенные после описания процедуры, помогают получить о ней более полное представление. До начала процедуры задается цель и выделяются ресурсы. В пределах выделенных ресурсов процедура пытается решить задачу, т. е. достичь цель или с помощью доступных ей преобразований по­ казать, что цель не может быть достигнута.

A.Если попытка сразу найти решение задачи при первоначально заданной цели увенчалась успехом, напе­ чатать ответ и остановиться.

B.Если выделенные ресурсы исчерпаны, напечатать

сообщение об этом

и остановиться.

 

C. Если не осталось непроверенных целей,

напеча­

тать сообщение об

этом и остановиться.

 

D. Выбрать непроверенную цель и попытаться с ее

помощью породить

новые пути на дереве целей.

 

E. Если нет больше целей, которые могут быть по­

рождены на основе

выбранной цели, перейти к

шагу В.

F.Породить очередную непроверенную цель G на основе выбранной цели.

G.Если попытка сразу найти решение с вновь по­ рожденной целью G окончилась неудачей, перейти к ша-

72 Г Л А ВА А

ту Е. Если попытка закончилась успешно, отсечь часть

дерева, относящуюся к

G.

 

 

Отсечение даст один

из

следующих

трех

результатов:

1. Если

первоначально

заданная

цель

достигнута,

напечатать

ответ и остановиться.

 

 

2. Если первоначально заданная цель не достигнута,

но достигнута выбранная

промежуточная цель, перейти

кшагу В.

3.Если выбранная цель не достигается, перейти к шагу Е.

Цели. Ниже будет описано, как цели порождаются, преобразуются одни в другие и удовлетворяются. В про­ грамме для решения задач по геометрии каждая цель состоит в доказательстве некоторой теоремы при заданных исходных допущениях. Тремя типичными классами тео­ рем являются теоремы о равенстве двух углов, равенстве двух сторон и подобии двух треугольников. В программе для решения шахматных задач каждая" цель состоит в доказательстве того, что, исходя из заданной шахматной позиции, один игрок, скажем играющий белыми, сможет поставить мат другому. При этом не обязательно, чтобы очередной ход был ходом белых. В программе для оты­

скания неопределенных интегралов каждая цель состоит в вычислении некоторого неопределенного интеграла, например

Процедура поиска непосредственного решения. Для

любой новой

цели

G процедура использует прямые мето­

ды для ее достижения. Если

цель G достигнута, дела­

ется попытка

достичь

первоначально заданную

цель.

В геометрических задачах попытка непосредственного

достижения

одной

из

целей

заключается в

выяснении

того, является ли соответствующая теорема заведомо истинной или заведомо ложной. Например, теорема, ко­ торая может быть доказана ссылкой на «тождественность» или на то, что «вертикальные углы равны», является за­ ведомо истинной. Теорема, которая не согласуется с чер­ тежом, предъявляемым одновременно с первоначальной целью, является заведомо ложной.

П Р О Г Р А М М Ы , Р Е Ш А Ю Щ И Е З А Д А Ч И

73

Вшахматах попытка непосредственного получения решения на основе заданной первоначальной цели со­ стоит в поиске хода, приводящего к мату или пату в по­ зиции, соответствующей цели. Если белые делают мат черным, цель достигнута. Если получается пат или чер­ ные делают мат белым, данная цель не может быть до­ стигнута.

Впрограмме для отыскания неопределенных интегра­ лов поиск непосредственного решения является более сложным, чем в программах для решения шахматных или геометрических задач. Программа использует некоторое сочетание стандартных форм и непосредственных преоб­ разований. Всякий раз, когда подынтегральное выраже­ ние для вновь порожденной цели является стандартной формой, эта цель непосредственно достигается подстанов­ кой. По определению подынтегральное выражение яв­ ляется стандартной формой, если оно представляет собой частный случай форм из определенного набора. Напри­

мер, f 2xdx является частным случаем j cvdv =сѵ/(\и с) и поэтому имеет решение 2-ѵ/(Іп 2). Программа для вы­ числения неопределенных интегралов использует 26 стан­ дартных форм. Как только оказывается, что подынтеграль­ ное выражение не является стандартной формой, делается попытка проверить, нельзя ли применить к нему непо­ средственное преобразование. По определению непо­ средственное преобразование •— это преобразование, ко­ торое, когда оно применимо, всегда или почти всегда является подходящим. Преобразование называется подхо­ дящим для некоторой цели, если его применение на сле­ дующем шаге приближает нас к достижению цели. Ниже приводятся три из восьми непосредственных преобразо­ ваний, используемых программой для вычисления неопре­ деленных интегралов.

А. Вынесение постоянного множителя за знак ин­ теграла:

Б. Разложение на слагаемые:

74

 

ГЛАВА 4

 

В. Линейная подстановка: если интеграл

имеет вид

то

применяется подстановка и = сх + с2ѵ,

приводящая

к

интегралу вида

 

Например, в выражении

производится подстановка у = Ъх.

Роль выделенных ресурсов. Объем выделенных ресур­ сов есть побочное условие, характеризующее заданную цель, которое также вводится в программу. До выбора непроверенной цели необходимо удостовериться, что объем выделенных ресурсов не превышен. Если объем превышен, программа сообщает об этом факте в качестве окончательного ответа. К выделенным ресурсам относят­ ся время или полные размеры занимаемого программой рабочего поля памяти. При моделировании вручную ра­

бочее пространство может быть измерено числом

стра­

ниц или

строк,

используемых для нахождения оконча­

тельного

и всех

промежуточных результатов.

 

 

Выбор непроверенной цели для порождения следующей.

В

шаге

D выполняющая его процедура

выбирает

одну

из

непроверенных целей, чтобы попытаться

породить

сле­

дующую. Очевидно, что этот шаг особенно важен для дан­ ной процедуры. До сих пор исследователи должны были удовлетворяться процедурами, недостатки которых более или менее очевидны, так как ни один из этих исследова­ телей не добился успеха в формулировании точной и прак­ тически пригодной теории выбора очередной непроверен­ ной цели. Важно заметить, что главным недостатком про­ цедур выбора, используемых в этих трех программах, является то, что они не принимают должным образом во внимание, насколько существенна каждая непроверен­ ная цель для удовлетворения заданной цели. Хотя для построения процедур выбора целей остается еще выпол-

П Р О Г Р А М М Ы , Р Е Ш А Ю Щ И Е З А Д А Ч И

75

нить обширные исследования, автором в программе MULTIPLE (гл. 7) достигнут некоторый прогресс. Про­ грамма для решения задач по геометрии выбирает не­ проверенную цель, которая оценивается как «ближайшая из достижимых». Цель считается ближайшей из достижи­ мых, если соответствующее утверждение является наи­ более простым и имеет наибольшее сходство с заданными гипотезами (посылками). Программа для решения шах­ матных задач выбирает непроверенную цель, если она

расположена на неглубоком уровне дерева целей или

если

у черных имеется очень мало ходов (например,

когда

они находятся под шахом или им угрожает мат в один ход). Программа для вычисления неопределенных инте­ гралов выбирает непроверенную цель, которая по оцен­ ке имеет наименьшую относительную стоимость. Хотя можно и нужно было бы пытаться использовать и другие оценки стоимости хода, программа использует для этого просто глубину подынтегрального выражения. Глубина подынтегрального выражения есть максимальный уро­ вень структуры, входящей в выражение функции: х

имеет глубину

0,

я 2 — глубину 1, е*- — глубину

2,

хе** — глубину

3.

При этом используется тот факт,

что

чем глубже подынтегральное выражение, тем больше не­ обходимо ресурсов для достижения заданной цели.

Преобразования. Преобразования

превращают цель

в одну из ее подцелей (преемников).

В дизъюнктивно-

конъюнктивном дереве целей цель может относиться к своей подцели либо дизъюнктивно, либо конъюнктивно. В геометрии преобразование представляется теоремой. Предположим, например, что цель состоит в доказатель­ стве равенства двух углов. Теорема «соответствующие углы подобных треугольников равны» преобразует цель в подцель, состоящую в доказательстве того, что опре­ деленные треугольники подобны. Аналогично теорема «накрестлежащие внутренние углы при параллельных равны» преобразует цель в подцель доказательства того, что углы являются внутренними накрестлежащими углами параллельных прямых. Цель относится к этим двум под­ целям дизъюнктивно. В шахматах ход, сделанный по правилам, преобразует цель в подцель. Десять типов преобразований, используемых процедурой отыскания

76

Г Л А ВА 4

а

Ф и г . 4.5.

 

 

а после

 

G*?i дает

 

Сокращение дррепа

целей

достижения цели

в резуль­

тате лереио

целей

6. Д а л е е достижение цели С ц

іілн Ojo

дало бы

в результате

достижение

к о ш ш о й

цели С.

 

 

неопределенного интеграла, выбраны с таким расчетом, чтобы генерировать вероятные подцели методами подста­ новки, интегрирования по частям или путем изменения формы подынтегрального выражения. Ниже приводится только наиболее эффективный тип преобразования: «за­ мена подвыражения, производная которого является де­ лителем подынтегрального выражения». Пусть g(v) — подынтегральное выражение. Пусть, далее, главная связ­ ка некоторого непостоянного нелинейного подвыражения S (и) отлична от минуса. Пусть S(v) не является произве­ дением, в состав которого входит постоянный сомножи­ тель. Пусть число непостоянных сомножителей отношения

g(v)'S'(v)

(после сокращения) меньше числа сомножите­

лей g(v).

Для каждого такого S(v) испытать подстановку

и — S(v).

Например, в J" х sin x2äx следует применить

подстановку и = х1.

Отсечение ветвей на дереве целей. Как только некото­ рая цель G достигнута, дерево целей «усекается»; это озна-

П Р О Г Р А М М Ы, Р Е Ш А Ю Щ И Е З А Д А Ч И

77

чает, что некоторые тесно связанные с ней цели

автома­

тически достигаются, а другие, ставшие теперь излиш­ ними, отбрасываются. Процедура отсечения становится понятной из следующего примера. На фиг. 4.5, а видно,

что

достижение

цели G2 2 1 позволяет достичь цель G2 2

(то,

что цель G2 2 2

уже достигнута, обозначено двумя звез­

дочками). В свою очередь достижение G2 2 позволяет до­ стигнуть цель Go (так как здесь имеет место дизъюнкция). Ввиду того что достижение G2 делает излишней цель G2 3 , последняя отсекается. Однако другая из порожденных G2 подцелей, G1 2 , не отсекается, потому что она остается существенной для достижения заданной цели G. Задан­

ной

цели G нельзя достичь, достигнув лишь цель G2 ,

так

как здесь имеется конъюнктивное отношение, а цель

Gx еще не достигнута. Поэтому результат процесса отсе­

чения ветвей будет таким, как показано на

фиг. 4.5, б.

Как только будет достигнута одна из

целей

Gn или

G1 2 ,

может и должна быть достигнута и

первоначально

за­

данная цель.

4.4. ПРОГРАММА, РЕШАЮЩАЯ Г Е О М Е Т Р И Ч Е С К И Е З А Д А Ч И

Программа Г. Гелернтера и др. (1959, 1960) доказы­ вает геометрические теоремы на уровне очень хорошего учащегося старших классов школы. Программа исполь­ зует ряд методов и эвристик, применяемых для доказа­ тельства этих теорем учащимися. Как указывалось ра­ нее, программа, доказывающая геометрические теоремы, производит анализ имплицитного дизъюнктивно-конъюнк­ тивного дерева целей. Особой целью Гелернтера было изучить использование моделей. Так как общеизвестно, что человек успешно решает задачи потому, что широко применяет модели, Гелернтер рассчитывал, что исполь­ зование моделей должно значительно улучшить програм­ мы поиска решений. Программа, решающая задачи по геометрии, использует в качестве модели геометрический чертеж, отбрасывая цели, которые не соответствуют мо­ дели.

Обычно программа действует следующим образом. Она читает некоторое количество перфокарт, содержащих

78

Г Л А ВА 4

Таблица 4.1. Доказательство теоремы «точка, лежащая на биссектрисе угла, находится на равном расстоянии от обеих сторон этого угла»

Посылки

Угол ABD равен DBC

Отрезок AD перпендикулярен отрезку AB Отрезок DC перпендикулярен отрезку ВС

Определение

Угол DAB прямой Угол DCB прямой

Цели

Отрезок AD равен отрезку CD

Решение

Угол ABD равен углу DBC

Посылка

 

 

Угол

DAB

прямей

Определение

перпендикуляра

Угол

DC В

прямой

 

То

же

Угол

BAD

равен углу BCD

Все прямые

углы

равны

Отрезок

DB

 

 

 

Предположение,

основанное

на

 

 

 

 

 

данных чертежа

 

Отрезок DB равен отрезку BD

Тождество

 

 

Треугольник

BCD

 

 

Предположение,

основанное

на

 

 

 

 

 

на данных чертежа

 

Треугольник

BAD

 

 

То

же

 

Треугольник

ADB

равен

треуголь­

Сторона—угол—угол

 

нику

CDB

 

 

 

 

 

 

Отрезок

AD

равен

отрезку

CD

Соответственные

элементы

рав­

 

 

 

 

 

ных треугольников раины

 

записанный в соответствующей форме чертеж, например такой, как показанный на фиг. 4.6, и теорему, например «точка, лежащая на биссектрисе угла, находится на рав­ ном расстоянии от обеих сторон этого угла». Для данной теоремы программа через 5 с выдает на печать доказа­ тельство, представленное в табл. 4.1.

Наблюдения за типичными действиями программы показали, что в том случае, когда программа использует чертеж, ее действия значительно более эффективны. Это

П Р О Г Р А М М Ы , Р Е Ш А Ю Щ И Е З А Д А Ч И

 

 

79

выражается в том, что программа на­

 

 

ходит решение значительно скорее и

 

 

использует

при

этом значительно мень­

 

 

ший

объем

машинной памяти. Обыч­

 

 

но

использование

чертежа

позволяет

 

 

программе из нескольких тысяч под­

 

 

целей, порождаемых

выбранной целью,

 

 

оставить

только

несколько нужных ей.

 

 

 

Программа доказала более 50 тео­

 

 

рем,

включая

следующую

довольно

 

 

трудную

теорему: «если отрезок, соединяющий средние

точки

диагоналей трапеции,

продолжить

до пересечения

со

стороной трапеции, точка

пересечения

разделит

сто­

рону

трапеции

пополам».

 

 

 

 

Работа

Гелернтера по созданию программы для

дока­

зательства геометрических теорем позволила сделать не­ сколько важных заключений. В разд. 4.7 были высказаны общие замечания относительно использованных в ней процедур поиска. Мы можем заключить, что для вычисли­ тельной машины составлена программа, которая дока­ зывает довольно трудные теоремы из геометрии. Скорость действия программы намного превосходит скорость ре­ шения этих задач сильными учениками старших классов

школы. В случае когда

программа использует модель,

ее действия значительно

более эффективны. Последнее

обстоятельство наводит на мысль, что решающие проце­ дуры в других эвристических программах также следо­ вало бы строить с использованием моделей.

4.5.ПРОГРАММА Д Л Я Р Е Ш Е Н И Я ШАХМАТНЫХ З А Д А Ч

Программа, написанная Дж. Бэйлором и Г. Саймо­ ном (1966), решает шахматные задачи (или «этюды») на уровне хорошего игрока. Она использует многие методы и эвристики, применяемые при решении таких же задач сильными шахматистами. Как указывалось ранее, про­ грамма, решающая шахматные задачи, проводит анализ имплицитного дизъюнктивно-конъюнктивного дерева целей.

Рассмотрим характерный пример. Программа читает некоторое количество карт, содержащих описание шах-

80

 

 

 

 

Г Л А ВА А

Жщ щЖЩ

 

щ

Шіш

ш

 

 

m

m ш%

і

 

ш

 

ш

Ш Ш*â

m

m È

ш

È ш

 

 

ш

Жшm

â ш Ф и г. 4.7. Белые начинают

Èш

/////,Ш

ш

Ш

ш, щ ЖШ

и выигрывают.

ш

c d e

f g h

 

 

a b

 

 

матноп задачи, показанной на фиг. 4.7. Затем она печатает последовательность из шести ходов, приводящую к мату:

 

Белые

Черные

1

ЛП:П+

КрГ8—g8

2

ngS:g7+

Kpg8-h8

3

Л«7:Ь7+

Kph8—g8

4

Л!і7—h8 -1-

Kpg8:h8

5

Ke5—g6+

Kph8—g8

6

ЛГ7—g7

Мат

Анализ работы этой программы позволяет сделать ряд выводов. Можно заключить, что для вычислительных машин удалось составить программы, решающие доволь­ но трудные задачи. Чтобы сделать мат, программе часто достаточно рассмотреть меньше 20 и почти всегда меньше 100 вариантов. Скорость действия программы намного превышает скорость действий хороших игроков. Короче говоря, Бэйлор и Саймон добились значительного успеха в развитии процедур анализа имплицитных деревьев для специального случая шахматных задач. В разд. 4.7 делаются некоторые заключения относительно решающих программ более общего вида.

4.6.ПРОГРАММА. РЕШАЮЩАЯ З А Д А Ч И ИЗ ОБЛАСТИ И С Ч И С Л Е Н И Й

Программа, составленная автором (1963), решает эле­ ментарные задачи интегрального исчисления на уровне хорошего первокурсника. Программа называется

Соседние файлы в папке книги из ГПНТБ