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

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

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

Э В Р И С Т И Ч Е С К О Е П Р О Г Р А М М И Р О В А Н И Е

21

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

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

B.Человек предъявляет свой ход.

C.Породить новую позицию.

D.Если игра окончена, напечатать результат и оста­

новиться. В противном случае перейти к шагу Е.

E.Породить некоторые или все преемники (исходной) позиции машины.

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

G.Перейти -в позицию-преемник с наибольшей оцен­

кой.

H . Напечатать ход, делаемый машиной.

I . Если игра окончена, напечатать результат и оста­ новиться. В противном случае перейти к шагу В.

УП Р А Ж Н Е Н И Я

1.Назовите три подхода к созданию систем с искусственным интеллектом. Какой подход, по вашему мнению, наилучший? Почему?

2.

Определите

своими

словами

понятия:

 

 

 

а)

эвристика;

 

 

 

 

 

 

 

 

 

 

б)

эвристическое

программирование.

 

 

 

3.

Каковы

цели

эвристического

программирования?

 

4.

В

какое

дерево

преобразуется

дерево, представленное на

фиг. 1.1,

при переходе

в позицию

Р{?

Выиграет ли

треугольник

в этом

случае

при

правильной игре?

 

 

 

 

5.

Если пренебречь возможностью окончания игры в процессе

поиска,

сколько узлов

породит

процедура

«сначала

вширь»

 

а)

на уровне 5, если каждая

вершина

имеет два

преемника?

 

б)

на уровне

d,

если

каждая

вершина

имеет b

преемников?

6. Пометьте в алфавитном порядке позиции на дереве, изобра­

женном на фиг. 1.5, в соответствии с последовательностью,

в ко­

торой они будут формироваться порождающей процедурой

«сна­

чала вглубь».

 

22

ГЛАВА I

Ф и г.

1.5. Дерево

для

упражнения

6.

 

 

 

 

 

Л И Т Е Р А Т У Р А

 

 

 

 

 

 

 

 

 

 

 

 

B o o t h

A. D., «Digital

Computers

in

Action»,

Pergamon

Press,

New

York,

1966.

 

 

 

 

 

 

 

 

 

 

F e i g e n b a u m

Ed.,

 

F e l d m a n

J. (eds.),

«Computers

and

Thought*, McGraw-Hill, New York,

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

сб.

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

 

машины

и

мышление»,

изд-во

«Мир»,

1967.

 

 

 

 

 

 

 

 

 

 

 

 

 

F о g е 1 L . ,

O w e n s

A.,

W a l s h

M . , см. Maxfield,

Callahan

and

Fogel

(eds.),

«Artificial

Intelligence Through

a

Simulation

of Evolution», Biophysics and Cybernetic Systems, Spartan Books,

Washington

D. C ,

1965.

 

 

 

 

 

 

 

F o g e l

L . , O w e n s ' A . ,

W a l s h

M . , «Artificial Intelligence

Thorugh Simulated Evolution», Wiiey, New York, 1966; русский

перевод см. Фогель Л.,

Оуэне А.,

Уолш М., Искусственный

интеллект

и эволюционное

моделирование, изд-во

«Мир», 1969.

9

Программы, играющие в шашки,

калах и шахматы

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

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

24

 

 

 

ГЛАВА 2

2.1. О Ц Е Н К А П О З И Ц И И П Р И И Г Р Е В ШАШКИ,

 

КАЛАХ

И

ШАХМАТЫ

 

Опишем

процедуру,

необходимую для

выполнения

шага F (разд.

1.6). Эта

процедура включает

общее опи­

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

последовательно, если не сделано специальных

 

оговорок:

A. Если критерий окончания для оценки

позиции

удовлетворяется,

использовать (статическую)

оцениваю­

щую функцию. В противном случае перейти

к

шагу

В.

B. Оценить некоторые или все преемники

позиции.

 

Чтобы оценить каждый

преемник, используется

та

же двухшаговая

процедура.

Таким образом,

процедура

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

мы

будем машину

называть максимизирующим

игроком

или

просто Максом. Ее

противник будет

называться

минимизирующим

игроком,

или Мином. Позиция, в

которой ход должен сделать Аіакс, будет называться макспозицией; позиция же, в которой ходить должен Мин, — мин-позицией. Например, на фиг. 2.1 «квадрат» (макси­ мизирующий игрок, т. е. вычислительная машина) ис­ пользует заданный критерий окончания для определения, а не для порождения (формирования эксплицитного гра­

фа) нижнего уровня 3. Используя эту

оценивающую функ­

цию, вычислительная

машина

получает

оценку

ѵп1

=

=

40 для позиции Р11ѵ

Аналогично

ѵп2 =

10, ѵ121

=

30,

ѵ122

— 20, v211 = 21, v212

= 29,

v221 =

5, v222

80.

Чтобы

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

П Р О Г Р А М М Ы . И Г Р А Ю Щ И Е В Ш А Ш К И , КАЛАХ И ШАХМАТЫ

25

Ф и г. 2.1. Минимаксная процедура формирования рабочих оценок.

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

оцен­

ки. Следовательно, процедура дает оценку

40

в

позиции

Рг1 и 30

в Р12.

Аналогично она дает оценку

29

в

/>2 1 и

80 в Р22.

Чтобы получить рабочую оценку

мин-позиции,

минимаксная

процедура находит значение

оценки

наи­

лучшего преемника мин-позиции. Наилучшим преемни­ ком мин-позиции является тот, который имеет минималь­

ное значение

оценки.

Следовательно, процедура дает 30

в позиции Рх

и 29 в Р2.

Таким образом, процедура должна

выбрать ход,

приводящий к позиции Рг. Итак, для полу­

чения рабочей оценки

позиции минимаксная процедура

формирования рабочей оценки находит оценку наилуч­ шего преемника этой позиции.

Процедура m А п (Слэйгл и Диксон, 19691) является вариантом процедуры формирования рабочей оценки. Чтобы получить рабочую оценку макс-позиции, проце­ дура m Л п находит оценку, которая зависит от m наи­ лучших преемников макс-позиции. Идея состоит в том, что если другие преемники являются столь же или почти столь же хорошими, как и выбранный наилучший преем­ ник, то к (минимаксной) оценке добавляется относительно

1 См. литературу в конце главы.

26

ГЛАВА 2

большая величина, а если все другие преемники значи­ тельно хуже, чем наилучший преемник, к минимаксной оценке делается либо меньшая добавка, либо ничего не добавляется. Другими словами, при заданной оценке наилучшего преемника процедура считает, что лучше иметь несколько хороших преемников, чем только один. Чтобы получить рабочую оценку мин-позиций, процедура находит оценку, которая зависит от п наилучших преем­ ников мин-позиции. Эксперименты с процедурой форми­ рования рабочей оценки 2 Л 2 показали, что она лучше простой минимаксной процедуры формирования рабочей оценки.

2.2. П Р О Ц Е Д У Р Ы ПОИСКА

Процедура поиска представляет собой комбинацию (статической) оценочной функции, процедуры формиро­ вания рабочей оценки и порождающей процедуры. Ниже рассматриваются два типа процедур поиска: минимакс­

ная процедура

«сначала вглубь»

и альфа-бета-проце-

дура.

 

 

Минимаксная

процедура «сначала

вглубь» . Процеду­

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

процедура «сначала вглубь» является процедурой поиска,

совместно использующей

оценивающую

функцию, по­

рождающую процедуру

«сначала вглубь» и минимакс­

ную процедуру формирования рабочей

оценки. Рассмо­

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

Предположим, что дерево, представленное на фиг. 2.1, задано имплицитно. Минимаксная процедура «сначала вглубь», как и порождающая процедура «сначала вглубь», начинает с позиции А (которая на фиг. 2.1 обозначена

П Р О Г Р А М М Ы . И Г Р А Ю Щ И Е В ШАШКИ . КАЛАХ И ШАХМАТЫ

27

/

40

F

а

Ф и г. 2.2. Минимаксная процедура «сначала вглубь».

через Р) и порождает позиции В, С и D (фиг. 2.2, а). Затем минимаксная процедура «сначала вглубь» исполь­

зует

свою

оценочную

функцию,

чтобы

оценить

пози­

цию D, которая имеет оценку 40. После этого она

порож­

дает

позицию Е и получает оценку 10. Позиции С при­

сваивается наилучшая из оценок D и Е, т. е. 40. Далее

процедура

порождает

позицию F.

Затем

она порождает

28

 

 

 

ГЛАВА 2

и

оценивает

позицию

G и

аналогично позицию

H

(фиг. 2.2, б). Позиции F она присваивает наилучшую из

оценок позиций G и Я,

а именно 30. Затем она присваи­

вает позиции В наилучшую из оценок позиций С и F,

которая также равна 30. Далее

порождаются позиции

/

и

J. Затем

процедура

порождает и оценивает /( и

L

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

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

один и

тот же

ход. Однако

альфа-бета-процедура перед

тем как

выбрать свой ход

почти всегда порождает го­

раздо меньшую

часть дерева,

чем при выборе того же хода

порождает эквивалентная минимаксная процедура «сна­

чала вглубь». Приведенные ниже два простых

примера

показывают, почему

альфа-бета-процедура

выбирает

тот же самый ход, что

и эквивалентная минимаксная

процедура «сначала вглубь», хотя порождает гораздо меньше позиций. Альфа-бета-процедура используется в дереве на уровнях глубиной больше 2 или 3. Читателю

предлагается подумать о том, к чему это приводит.

На

фиг. 2.3

альфа-бета-процедура сформировала

оценку

(которая

может быть и

рабочей)

ѵг = 3.

Альфа-бета-

процедура устанавливает

а = 3 в позиции

Р 2 .

Обычно

альфа — это

наименьшее

значение,

которое

может

при­

нимать Макс

(квадрат),

а бета — наибольшее

значение,

которое может принимать Мин. Когда процедура устанав­ ливает, что оценка макс-позиции (которая может быть рабочей) не превышает альфа, она находит альфа-отсе­ чение (alpha cutoff); иначе говоря, процедура уже не стре­ мится порождать преемники позиции, предшествующей макс-позиции, а порождает следующий преемник пози­ ции, которая предшествует позиции, предшествующей

П Р О Г Р А М М Ы . И Г Р А Ю Щ И Е В ШАШКИ . КАЛАХ И ШАХМАТЫ

29

Ф и г. 2.3. Альфа-бета- процедура находит альфа-отсечение.

Ф и г. 2.4. Альфа-бета- процедура находит бета-отсечение.

макс-позиции. Таким образом, получив и а 1 = 2, проце­

дура находит

альфа-отсечение, т. е. не стремится

порож­

дать позиции

Р22, Р23,

Р., ... (и их

преемники),

а

сразу

порождает следующую

позицию

Р3.

Поскольку

же

при­

меняется минимаксная

процедура

формирования

рабочей

оценки, a ѵ21 = 2, минимаксная процедура «сначала вглубь» получит рабочую (присвоенную) оценку ѵ2, ко­ торая не превышает 2, что хуже, чем ѵх = 3. Таким обра­

зом, мы и без порождения новых позиций

после пози­

ции Р2 знаем, что квадрат не выберет хода,

приводящего

к позиции Р2.

Отсюда видно, что дальнейшее

порождение

позиций после

Р2, выполняемое минимаксной процеду­

рой «сначала вглубь», является излишней тратой времени.

Аналогично из фиг. 2.4 видно, что после получения

ѵіг =

= 4 альфа-бета-процедура

помещает ß =

4 в

Р12.

Обычно, когда процедура

устанавливает,

что

оценка

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

30 ГЛЛВЛ 2

бета-отсеченпе; иначе говоря, процедура не стремится

порождать позиции Р122, Р 1 2 3 , Я1 2 ,,,

а

сразу порож­

дает следующую

позицию

Р13.

 

 

Процедура неглубокого поиска. Механизм (глубокого)

альфа-бета-поиска

может

включать

ряд

процедур не­

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

щения» (n-bebt forward pruning), т. е. для

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

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

в следующих

двух разделах.

 

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

затратить некоторые усилия на

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

ходов

по их вероятности. Для позиций,

расположенных

близко

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

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

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