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

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

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

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

81

SAINT (Символический Автоматический ИНТегратор). SAINT использует многие методы и эвристики, применяе­ мые студентами при решении аналогичных задач. Про­ грамма для нахождения неопределенных интегралов включает в качестве простой составной части программу дифференцирования элементарных выражений. Как ука­ зывалось выше, программа для отыскания неопределен­ ных интегралов осуществляет анализ имплицитного дизъюнктивно-конъюнктивного дерева целей. Общие цели, преследуемые при составлении таких программ, уже об­ суждались в разд. 4.2. Однако автор ставил себе при этом и особую цель — выяснить, нельзя ли составить практи­ чески полезные программы для решения математических задач.

Чтобы

проиллюстрировать

внешнее

поведение

SAINT, предположим, что SAINT

читает карту, па ко­

торой в соответствующей форме записана задача симво­

лического

интегрирования: } xex~dx.

Менее

чем через

1,5

мин SAINT выдает на

печать ответ: 1/2ехі.

(Заметим,

что

SAINT

пренебрегает

константами интегрирования,

и мы в этом

разделе повсюду

будем

поступать так же.)

После поиска

в течение менее

1 мин значения

интеграла

J e^dx (который не может быть выражен через элемен­ тарные функции) SAINT выдает на печать сообщение

отом, что она не может решить эту задачу.

Вкачестве конкретного примера бегло рассмотрим вычисление интеграла

выполненное машиной за 11 мин, (Обычно действия SAINT оставляют лучшее впечатление, чем ее действия при решении данного примера, на которое программа израсходовала довольно много времени. Задача была выбрана для того, чтобы проиллюстрировать внутренние рабочие механизмы программы.) В качестве первого шага SAINT пытается произвести замену переменных: у — aresin х, которая преобразует исходное выражение в

6—1677

82

 

 

 

 

 

 

 

 

 

 

Г Л А ВА 4

В качестве второго шага SAINT

 

выдвигает

три альтерна­

тивных

предпо поженил.

 

 

 

 

 

 

A. Использозать

тригонометрическое

тождество:

Б. Использозать

тригонометрическое

тождество:

B. Использовать

замену

переменных z = tg(y/2):

П*4 II .

с - -

 

г

4

 

 

,

 

 

Г sin

у .

Г or,

 

 

 

 

 

 

—^-ау=

32-77—,

 

-T-.dz.

 

 

J cos* у

v

J

(I + 2-j (1 — г-)4

 

 

Здесь SAINT сразу выносит 32 за знак интеграла.

Оценив,

что А — самая

простая из всех трех задач,

SAINT предлагает замену z = tg у, которая дает

SAINT

сразу

преобразует

это

выражение:

, Ç

dz

 

 

,

г 3 .

 

f

dz

 

 

 

Неправильно

оценив,

что

В

проще,

чем

J dzl{\ + z2 ),

SAINT временно оставляет последнее выражение и пере­

ходит к В. Подстановка z = ctg у дает

 

J ctg - ydy=

j-

1

r T r

W

=

- J і г т т Ь г •

Теперь SAINT определяет, что интеграл j dz'(l + z2) проще, и, произведя подстановку w = arctgz, получает r eke1. Это выражение SAINT сразу интегрирует и, вы­ полнив обратные подстановки, получает решение перво­ начальной задачи:

АГ1

-dx'=arcsin X - f — tg3

aresin х—tg aresin x.

Г(1-**Л»

" " " " 3

 

SAINT может вычислять некоторые определенные интегралы после нахождения соответствующих значений

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

 

83

неопределенных

интегралов. Так,

например, для задачи

Jз X У

Х-+ 16

dx

 

 

о

 

 

 

 

SAINT

сначала

находит значение

неопределенного ин­

теграла

 

 

 

 

j *

/ " х2+ 16 d * = 4 "

+ 1 6 ^ / 2 -

Затем она представляет значение пределов и получает ответ 61/3.

SAINT может вычислять кратные интегралы, если она в состоянии взять соответствующие определенные инте­ гралы, например

11-й-

-1 1/2

Характеристика программы. Для экспериментального исследования программы SAINT было рассмотрено 86 за­ дач. Главным образом с целью отладки программы авто­ ром были отобраны или составлены 32 задачи, которые, как с уверенностью можно было ожидать, SAINT в состоянии решить. Оставшиеся 54 задачи были выбраны ассистентом автора на более объективной основе, а именно они были отобраны из экзаменационных задач по интегральному исчислению, предложенных студентам на первом курсе Массачусетского технологического института. Ассистенту было дано указание отбирать разнообразные и трудные задачи с тем условием, чтобы для их решения не требова­ лось применения метода разложения на простые множи­ тели (в целях экономии памяти этот метод не был вклю­ чен в программу).

Программа SAINT, описанная выше, выбирала не­ проверенные цели в порядке возрастания их глубины (оценки относительной стоимости). Программа пыталась решить все 86 задач, выбранных автором и его ассистен­ тами. Как автор и надеялся, она решила все 32 отобран­ ные им задачи, израсходовав в среднем 3,3 мин на ре­ шение каждой из них. Из 54 задач, предложенных сту-

6*

84

Г Л А ВА 4

дентам МТИ, SAINT

решила 52 и быстро (менее чем за

1 мин) сообщила, что две оставшиеся задачи она решить не может. Для экономии памяти вычислительной машины в программу не были заложены два довольно специфиче­ ских метода, необходимых для решения задач, с кото­ рыми программа не сумела справиться. Для 52 решенных задач на каждую задачу в среднем уходило 2 мин. Ниже приводятся некоторые примеры характеристик SAINT для наиболее легких и наиболее трудных задач. С этой целью рассматриваются только задачи, предло­ женные студентам МТИ, так как они выбраны более объективно. По-видимому, самой простой задачей для программы SAINT оказалось вычисление интеграла

2

так как для решения этой задачи вообще не вырабатыва­ лись подцели и потребовалось наименьшее время — 0,03 мин. Наибольшее время — 18 мин — понадоби­ лось для вычисления интеграла

J 1 + sec 2 f — 31g f

SAINT выработала наибольшее число подцелей — 18 — для вычисления интеграла

J' (sin X +

cos

x)2dx.

Вместо

того

чтобы исследовать непроверенные цели

в порядке возрастания глубины (оценки относительной

стоимости), процедура

«сначала

вширь»

программы

SAINT

проверяла

цели только в том порядке, в котором

они

порождались.

Немодифицированная

программа

SAINT,

быстрее,

чем

программа

SAINT с

процедурой

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

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

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

85

тегрирования. Скорость решения задач программой выше скорости решения тех же задач студентами первого кур­ са. Программа SAINT в режиме компиляции действовала бы в 20 раз быстрее, чем программа автора (работающая в режиме интерпретации). Программа становится более мощной, если выбор непроверенных целей осуществлять не в порядке их порождения, а в порядке возрастания глубины (оценки относительной стоимости). Работа SAINT показывает, что могут быть составлены практи­ чески полезные программы. Решение с помощью немодифицированной программы, работающей в режиме ком­ пиляции, студенческой экзаменационной задачи средней сложности будет на новой машине стоить всего несколько центов и совершаться в доли секунды. Возможности ис­ пользования SAINT для практических целей могут быть расширены. Например, .можно добавить программу для численного решения определенных интегралов, увеличить число стандартных форм неопределенных интегралов. Одним из полезных применений для инженера и иссле­ дователя было бы использование систем, осуществляю­ щих математические преобразования (в том числе симво­ лическое интегрирование) в вычислительных системах с разделением времени. В гл. 6 рассматривается состав­ ленная Дж. Мозесом для практических целей программа интегрирования, которая включена в такую систему.

4.7. О Б Щ И Е ВЫВОДЫ

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

86

 

ГЛАВА 4

непосредственное решение.

Принципы,

общие для всех

трех программ, знаменуют

собой начало

создания общей

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

мой является определение путей распространения

успеха,

достигнутого

при

решении

шахматных

задач,

задач по

геометрии

и

вычислению интегралов,

на решение

важ­

ных практических

проблем,

сходных с названными

выше,

но более сложных

по своей

структуре.

 

 

 

У П Р А Ж Н Е Н И Я

 

 

 

 

 

 

 

J. Какая

из следующих непроверенных целен была бы выбра­

на программой отыскания неопределенных интегралов в качестве

первого

шага?

Почему?

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

j

sin

X2dx]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

б)

J" X cos x"dx.

 

 

 

 

 

 

 

 

 

 

 

 

 

2.

 

Найдите

интегралы:

 

 

 

 

 

 

 

 

 

 

 

 

a)

 

Г

sec-t

 

dt.

 

 

 

 

 

 

 

 

 

 

 

і

+ sec-1~ 31g /

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сравните

затраченное

вами

время

с вре-

 

 

 

 

менем,

затраченным

SAINT

(1"

мин)

 

 

 

 

 

 

б)

Jcos

X sec2

xdx.

 

 

 

 

 

 

 

 

 

 

 

 

3. Рассмотрите следующую игру. Игра­

 

 

 

 

ют

два

игрока — «квадрат» и «круг».

В на­

 

 

 

 

чальник

позиции

имеются

пять

фишек.

Пер­

 

 

 

 

вый

ход делает

квадрат,

затем

круг,

затем

 

 

 

 

квадрат

и т. д. Каждый

ход

состоит

в

про­

 

 

 

 

движении

одноіі

пли

двух

фишек.

Игрок,

 

 

 

 

который

продвигает

последнюю

фишку, по­

 

 

 

 

беждает.

Начертите

пунктиром

полное

дере­

 

 

 

 

во

игры.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.

Верно ли, что первый

игрок

(квадрат)

 

 

 

 

может

форсированно

добиться

победы?

 

 

 

 

 

 

 

5.

Жирными

линиями

 

начертите

дока­

 

 

 

 

зательство

вашего

ответа

на вопрос

в

упра­

 

 

 

 

жнении 4. Попытайтесь сделать ваше доказа­

 

 

 

 

тельство

как можно более

кратким.

 

Жирные

 

 

 

 

линии следует нанести поверх пунктирного

 

 

 

 

чертежа,

выполненного

в

качестве

ответа к

Ф и г. 4.8.

 

упражнению 3.

 

 

 

 

 

 

 

 

 

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

87

6. Предположим, что цель А в изображенном на фиг. 4.8 дизъюнктивно-конъюнктивном дереве целей достигнута. Начертите дерево, образующееся после операции отсечения.

Л И Т Е Р А Т У Р А

B a y l o r G., S i m о n H . A. «A Chess Mating Combinations Prog­ ram»; Proc. AFIPS Ann. Spring Joint Computer Conf., 1966,

pp.431—447.

F e i g e n b a u m

E-, F e l d m a n

J.

(eds.),

«Computers and

Thoughi»,

AkGraw-Hill,

New York, 1963; русский перевод см.

в

сб. «Вычислительные

машины

и мышление»,

нзя-во

«Мир,

1968.

 

 

 

 

 

 

 

 

 

 

 

 

В сборник включены, в частности, статьи:

 

 

 

 

 

 

 

а)

G e l e r n t e r

H . ,

«Realization

of

a

Geometry

Theorem

 

Proving Machine», Proc. Intern. Conf. Information

Processing,

 

1959.

 

 

 

 

 

 

 

 

 

 

 

 

б)

G e l e r n t e r

H . , H a n s e n

J. R.,

L o v e l a n d D .

W.,

 

«Empirical

Explorations of the

Geometry

Theorem

Machine»,

 

Proc.

Western

Joint

Computer

Conf.,

1960,

pp.

143—147.

в)

S I a g 1 e J.

R., «A Heuristic Program

That

Solves

Symbolic

 

lntergation

Problems

in Freshman

Calculus», J.

ACM,

10,

 

507—520 (1963).

 

 

 

 

 

 

 

 

 

5 Автоматическое доказательство теорем

сиспользованием принципа резолюции

Вавтоматическом доказательстве теорем существуют два направления: поиск доказательства и поиск следст­ вия. Программа, выполняющая попек доказательства, например гтограмма, составленная д-ром Лоуренсом Вое (Wos) и др. (1964), пытается найти доказательство какойто заданной теоремы. Программе, выполняющей поиск

следствия, например программе, составленной Чар-тун Ли (1967), задаются некоторые аксиомы, после чего она пытается построить дедуктивные следствия из этих аксиом и выбрать следствия, «представляющие интерес». Обе программы используют принцип «резолюции», который

является естественным

и мощным

правилом вывода;

смысл этого принципа

будет объяснен

позже.

Цели разработки программ для вычислительных ма­ шин, способных доказывать теоремы, тесно связаны с проблемой «Искусственный интеллект» и проблемой де­ дуктивного вывода. Исследователи, работающие в области искусственного интеллекта, придерживаются точки зре­ ния, что доказательство нетривиальных теорем является интеллектуально трудной задачей. В этой главе мы будем изучать программы для доказательства теорем, которые используют аппарат математической логики или, более точно, исчисление предикатов первого порядка. В мате­ матической логике можно в довольно удобной форме вы­ разить почти все типы дедуктивных доказательств. Со­ ставление программ, доказывающих теоремы на языке математической логики, позволяет исследователям изу­ чать дедукцию в ее наиболее чистом виде. Дедукция важна, поскольку она играет существенную роль при решении многих типов задач (причем не только математических). Программа, доказывающая теопемы, обладает свойством, которое проф. Дж. А4аккарти (1959) назвал «злравым смыс­ лом» (common sense), т. е. способностью делать дедуктив­ ные заключения из заданных фактов. Этот тип здравого

А В Т О М А Т И Ч Е С К ОЕ Д О К А З А Т Е Л Ь С Т В О Т Е О Р Е М

89

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

Построение для вычислительной машины программ, доказывающих теоремы, предусматривает и ряд других целей, связанных с математикой и математической логи­ кой; так, с точки зрения математиков, будущие программы, которые смогут доказывать новые п интересные теоремы, будут весьма пол.зны сами по себе. Огромным достиже­ нием было бы, если бы какая-то программа в будущем смогла доказать или опровергнуть знаменитые теоремы Ферма или Гольдбаха. Математическая логика хорошо подходит для вычислительных машин, поскольку логики в течение многих десятилетий работали над тем, чтобы ее правила вывода стали «механическими». Составление программ, основанных на использовании математической логики, является привлекательной идеей, так как это четко сформулированная и хорошо изученная область математики. Добавим, что составление машинных про­ грамм для доказательства теорем полезно и для изучения математической логики. Например, программист может разработать мощные, естественные, интуитивные правила вывода, которые легко затем дополнить эвристиками.

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

теорией

квантификации),

можно отметить

Р. С. Гилмора

(1960), X. Вана (1965),

а также М. Девиса и Г. Путнама

(I960).

(Грубо говоря,

в каждой из этих

программ ряд

переменных заменяется константными термами, а затем проверяется, не получено ли доказательство теоремы. Если нет, добавляются новые константные термы и де­ лается следующая проверка и т. д.) Уже после того как эти программы были составлены, Дж. А. Робинсон (1965)

разработал

ппавнло вывода,

которое он назвал

принципом

резолюции.

Грубо говоря,

принцип резолюции

выводит

из двух заданных утверждений (посылок) наиболее общее возможное заключение; заключение и обе посылки обычно содержат переменные. Принцип резолюции естественнее,

90

Г Л А ВА 5

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

5.1. П Р И Н Ц И П Р Е З О Л Ю Ц И И

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

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

ния справедливы при всех значениях входящих в них пе­

ременных; например, утверждение PI справедливо для

всех х, всех у и всех ѵ в том же самом смысле, в

каком

равенство х" — у2

= (х + у) (х — у)

справедливо

для

всех X и всех у.

[Читатель, знакомый

с математической

логикой, не встретит трудностей при чтении этой главы. Остальным можно порекомендовать, например, превос­

ходную книгу по логике Ст.

Клин и (1967).]

Теорема

1.

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

что:

P l .

Если

X

есть

часть ѵ и если и есть часть у, то х

есть

часть

у.

 

 

 

 

 

Р2.

Пііец

есть

часть

кисти

руки.

РЗ.

Кисть

руки

есть

часть

руки.

Р4.

Рука есть

часть

человека.

 

Анализируя все четыре посылки PI — Р4, мы должны заключить, что палец есть часть человека.

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