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

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

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

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

51

 

 

 

 

 

 

Продолжение

табл. 2.3

 

 

 

Партия № 2

 

 

 

 

 

 

Белыми играет Мак Хэк Сикс;

черными

играет шахматист,

 

 

 

 

аттестованный

оценкой

1510

 

 

 

 

Номер

 

Белые

Черные

 

Номер

Белые

 

Черные

хода

 

 

хода

 

1

 

е2—е4

Î7—Î5

 

12

Od3:d6

Cc8—d7

 

2

d2—d4

c5:d4

 

13

Cg3—h4

Ch6—g7

 

3

 

Odl:d4

KbS—c7

 

14

КсЗ—d5

Kf6:e4

 

4

 

<Dd4—d3

Kg8—f6

 

15

Kd5—с7+ Фа8:с7

 

5

 

Kbl—c3

Ь7—b6

 

16

Фа6:с7

Ke4—c5

 

6

 

K g l - f 3

d7—d6

 

17

Фс7—d6

Cg7-f8

 

7

 

Ccl—f4

e7—e5

 

18

Фаб—d5

Ла8—c8

 

8

 

Cf4-g3

a7—a6

 

19

Ш : е 5

Cd7—e6

 

9

 

0 - 0 - 0

Ь6—Ь5

 

20

Фа5:с6

Лс8:с6

 

10

 

a2—a4

CfS—h6

 

21

Лсіі— d8

Мат

 

11

 

KpCl— bl

Ь6—Ь4

 

 

 

 

 

 

 

l Партия

№. 1, закончившаяся проигрышем, была

первой партией, когда-либо

•сыгранной машиной в шахматных турнирах (21

января 1967 г.). Партия

№ 2—

первая партия, выигранная машиной в шахматном

турнире.

 

 

 

«сначала

вглубь» для

шахматной

доски

 

размером

6 X 6 .

Программа

Алекса

Бернстейна

(1958) также

была

минимаксной процедурой «сначала

вглубь».

Критериями

окончания были: конец

игры, максимальная

глубина 4

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

ходов) преемников на четырех верхних уровнях.

Таким

образом, к уровню 4 имелась 7'1 = 2401 конечная

пози-

ци я.

 

Программа А. Л. Бастиана (1959) реализовывала ми­ нимаксную процедуру «сначала вглубь». Критериями окон­ чания были: конец игры, максимальная глубина 6 и про­ цедура суживающегося п-наилучшего направленного со­ кращения. Вместо анализа наиболее вероятных ходов на

4 *

52

Г Л А ВА 2

каждом уровне, как в программе Бернстейна,

программа

Бастиана исследовала семь преемников на

уровне 1,

пять на уровне 2, четыре на уровне 3, три на уровне 4,

три на уровне 5 и два на уровне 6. Таким

образом, на

уровне 6 появлялось 7 x 5 x 4 x 3 x 3 x 2

= 2520 ко­

нечных позиций. Генератор ходов определял вероятность ходов и приписывал наиболее высокую вероятность ходам «многоцелевого» характера.

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

ма, в

которой

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

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

В ней позиция

считается мертвой,

если она является пас­

сивной

относительно каждого признака из первоначаль­

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

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

вероятностного

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

и

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

метода

я-наилучшего

направленного

сокращения. Критериями

окончания служат конец игры,

максимальная

глубина,

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

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

53

вуют два варианта Московской программы. В матче 1967—1968 гг. более сильный вариант Московской про­ граммы одержал верх над Стэпфордской программой в обеих сыгранных партиях.

2.7. ВЫВОДЫ,

КАСАЮЩИЕСЯ

ПРОГРАММ,

И Г Р А Ю Щ И Х

В ШАШКИ,

КАЛАХ И ШАХМАТЫ

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

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

54 Г Л А ВА 2

(в действительности Л-5-альфа-бета-процедура с подходя­

щим параметром сопротивляемости R) оказалась

лучше

процедуры

с

жестким

упорядочением. Методы

поиска,

подобные рассмотренным

выше, могут

быть использова­

ны и при решении других сложных задач.

 

Обучение машины. Программы, играющие в шашки,

могут успешно

реализовывать такие виды обучения, как

обучение с

обобщением

и заучивание

наизусть.

Обуче­

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

грамма

для игры

в

шашки.

 

 

 

 

У П Р А Ж Н Е Н И Я

 

 

 

 

 

 

 

1. Заполните подходящими словами («иногда»,

«всегда»

или

«никогда

не») пустые

места

в следующих предложениях:

 

а)

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

выбирает

ход,

приводящий

к позиции с более высокой

рабочей оценкой,

чем у позиции,

к

которой приводит

соответствующая

минимаксная проце­

дура «сначала

вглубь»;

 

 

 

 

б)

оценивающая

(статическая) функция

является

ли­

нейной.

 

 

 

 

 

 

 

2.Каково главное соображение в пользу вероятностного упо­ рядочения ходов в альфа-бета-процедуре поиска?

3.Предположим, что простая процедура поиска выполняет поиск на глубину (уровень) 2 в игровом дереве, имеющем 30 преем­ ников для каждой позиции. Не пользуясь критериями неглубокого поиска, направленного сокращения, конца игры и т. п. и 'не при-

П Р О Г Р А М М Ы , И Г Р А Ю Щ И Е

В Ш А Ш К И , КАЛАХ И ШАХМАТЫ

55

нимая

в

расчет

верхнюю

по-

Р

 

зицшо,

дайте ответ

на

следу­

 

 

ющие

вопросы:

 

 

 

 

 

 

 

а)

сколько

позиций

по­

 

 

рождается

минимаксной

 

 

ароцедурой

 

«сначала

 

 

• глу.'ьэ;

 

 

 

 

 

 

 

о)

каково

 

наибольшее

 

 

ьозможное

число

пози­

 

 

ций, которыз

могут

быть

 

 

порождены

 

альфа-бета- 'iij

 

 

процедурой;

 

 

 

 

 

 

в)

каково

 

наименьшее

 

 

возможное

число

пози­

 

 

ций, которое

могут

 

быть

 

 

порождены альфа-бета-

 

 

процедурой?

 

 

 

 

 

4.

Почему оценка

позн- ф и г.

2.9.

 

ции, полученная после хода С

 

 

(15—18) на фиг. 2.6, равна 4?

 

 

5.

Проведите

анализ,

подобный

выполненному в разд.

2.3,

для следующего хода белых в предположении, что черные ответили 16—19.

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

а)

Р2,

потому

что здесь

альфа-отсечение;

б)

^із . потому

 

что

здесь

бета-отсечение;

в)

Р 1 а 2 ;

 

 

 

 

г)

Р2,

потому

что здесь бета-отсечение;

д)

і"хз>

потому

что

здесь альфа-отсечение.

7. Правила игры

в

крестики-нолики для двух лиц могут

быть описаны следующим образом. Игрок «квадрат» ходит первым,

ставя X в одну из девяти клеток клеточного поля

3 X 3 .

Затем

игрок «круг» ставит 0 в одну из восьми оставшихся

клеток.

После

этого игрок «квадрат» ставит X в одну из оставшихся семи клеток.

Ходы проводятся по очереди. Игрок выигрывает, если ему первому

удается расположить три своих отметки в линию —

горизонтально,

вертикально или по диагонали. Партия заканчивается вничью,

если ни один из игроков не достигает победы после девяти ходов.

Предположим, что оценивающая

функция имеет вид у1 +

5і/,

+

+ 25у3, где Уі — перевес в числе

незаблокированных рядов

с

од­

ной заполненной клеткой, у2 — перевес в числе незаблокированных рядов с двумязаполненными одним игроком клетками и у3— пе­ ревес в числе рядов с тремя заполненными одним игроком клетками. Например, в верхней позиции на фиг. 2.10 ух 4—1 = 3. Игрок «квадрат» (X) имеет четыре незаблокированных ряда с одной за­ полненной клеткой, а именно одну диагональ, первую строку, вто­ рой столбец и третий столбец. Игрок «круг» имеет один незаблокированный ряд с одной заполненной клеткой, а именно нижнюю

56

ГЛАВА 2

 

 

 

 

 

 

 

 

 

 

 

 

6

/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 ^ 1

 

 

 

 

 

 

 

 

 

 

 

IK'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ä

 

 

 

Il

* 4

 

 

' ' / \ \

 

 

 

' /

1

 

 

/

/

\

\

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/ I

\

'

\

'

 

I

 

I

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/

/

I

/

1

\

\

 

 

 

 

 

 

 

 

 

 

г

-

 

 

/

\

 

 

 

 

 

 

 

 

 

 

 

 

 

I

1

 

 

I I I

I I — I I I

I — I I — I I — I I — I

I — I I

- I

I

 

I

I

I —

 

 

I

I I

I I

 

I I

I I

1 I

1 I

1 I

1 I

1 I — . I

I I

1

3,2

8,6

8,9

 

9,1

Г.2

9,6

9,8

1.2

J , 6

1,8

 

1,9

2,1

2,6

2,8

2,9

6,1

6,2

6,8

6,9

 

 

 

 

 

 

 

 

 

 

 

 

Ф и г .

 

2.10. Дерево

игры в крестики-нолики

для

упражнения

7.

 

 

 

 

 

Поля

 

пронумерованы

следующим

образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

о

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

J

 

5

С

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

S

9

 

 

 

 

 

 

 

 

строку.

Аналогично

 

у« =

0—

 

1 =

— 1 .

«Квадрат»

 

не

имеет

иеза-

блокированных рядов с двумя заполненными клетками. У «круга»

есть один такой р я д — первый столбец. Так как ни один

из

игроков

не имеет трех заполненных клеток, расположенных в ряд,

то у3

=

=

0—

0 =

0. Отсюда оценка^позицпн будет такова: 3 + 5

X

(—1)

-

+

25 X

0 =

—2.

 

 

 

Предположим, что показанное на фиг. 2.10 имплицитное дере­ во исследуется с помощью простой альфа-бета-процедуры с кри­ терием окончания: максимальная глубина 2. Жирной сплошной линией обведите ту часть дерева, которая исследуется; при этом не

затрагивайте

ни одной из позиций, которые

не

рассматриваются.

Д л я каждой

позиции уровня 2, оцениваемой

во время

поиска, на­

пишите

ее оценку в центре соответствующего

квадрата.

8. Повторите упражнение 7 при условии,

что

номер хода,

выбранного

альфа-бета-процедурой, таков:

 

 

 

а)

1;

 

 

 

 

б)

2;

 

 

 

 

в)

6;

 

 

 

 

г)

8;

 

 

 

 

Д) 9.

П Р О Г Р А М М Ы ,

И Г Р А Ю Щ И Е В Ш А Ш К И ,

 

КАЛАХ И

ШАХМАТЫ

 

 

57

Л И Т Е Р А Т У Р А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В

е г'п

s t е i il A.,

R o b e r t s

M . ,

«Computer

Versus

Chess

Pla­

 

yer»,

5с/.

Am.,

 

June

(1958).

 

 

 

 

 

 

 

 

 

De

Q г о о t

A.

D.,

«Psychological

Studies for

Thought

and

Choice

 

in

Chess»,

Mouten,

The Hague,

 

1965.

 

 

 

 

 

 

G r e e n b l

a t t

 

R.,

E a s t l a k e

 

D.,

C r o c k e r

St.,

«The

 

Greenblatt Chess Program», Proc. AFIPS Ann. Pall Join '.Compu­

 

ter

Conf.,

1967,

pp.

801—810.

 

 

 

 

 

 

 

 

 

К

i s t

e r

J.,

S t e i n

P.,

U

I a m

S„

W a i d e n

W„

W e l l s

 

M . ,

 

«Experiments in Chess», J. ACM,

174—177 (1957).

 

 

N e w e l

I

A.,

S h a w

J.

C ,

 

S i m o n

H . ,

«Chess

Playing

Prog­

 

rams

and

the Problems of Complexity*, IBM

J.

Res.

Develop.,

 

320—335 (1958); русский перевод см. в сб.

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

 

машины и мышление», изд-во «Мир»,

1967.

 

 

 

 

 

 

N

i 1 s s о n N . J.,

«A

New Method

 

for

Searching Problem-Solving

 

and

Game-Playing Trees»,

Proc.

IFIP

Congr.,

1968.

 

 

 

S a m u e l

A.,

«Some Studies in Machine Learning Using the

Game

 

of

Checkers», IBM J. Res. Develop.,

3, № 3, 210—229 (1959);

 

русский перевод см. в сб. «Вычислительные машины и мышле­

 

ние»,

изд-во

«Мир»,

1967.

 

 

 

 

 

 

 

 

 

 

S a^'m

u e 1 A . , " «Some Studies in Machine Learning Using the

Game

 

jof

Checkers»,

I I , «Récent

Progress*,

IBM

J.

Res. Develop,

11,

6 (1967).

S

a g 1 e J.,

«Game Tress, m & n Minimaxing,

and

the

m X n

Alpha-

 

jBeta Procédure», Artif. Intell. Group Rep.

3,

Univ.

of

Calif.,

 

1963.

 

 

 

 

 

 

 

 

 

 

 

 

 

S I

a g i

e

J.,

D i x o n J J . ,

«Experiments

with

Some

Programs

 

That

Search Game Trees»,

/ .

ACM,

16,

2 (1969).

 

 

S

1 a g 1 e

J.,

D i x o n

- J.,

«Experiments

with

the

m

& n

Tree-

 

$Searching

Program»,

J. ACM,

12,

№ 3

(1970).

 

 

 

 

3

Программы, играющие в «пять в ряд»,

«кубик» и карточные игры

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

и«черный валет».

Грубо говоря, программы, играющие в «пять в ряд» и «кубик», являются процедурами поиска с линейной оценивающей функцией и с критерием окончания «макси­ мальная глубина 1». В общем описании программ, играю­ щих в игры, приведенном в разд. 1.6, было показано, что шаг оценивания (шаг F) при игре в «пять в ряд» и «кубик» обычно чаще выполняется с помощью статической оцени­ вающей функции, чем с помощью процедуры поиска. В этих играх оценивающая функция является более важной потому, что поиск на дереве практически иереализуем. Каждая из этих двух программ подстраивает свою оценивающую функцию в соответствии с тем, насколько хорошо играет противник. В действительности сущест­ вуют две программы, которые играют в «пять в ряд», но только одна из них (программа Дж. Вейзенбаума и Р. С. Шефердсона) подстраивает свою оценивающую функцию.

3.1. ПРОГРАММЫ, И Г Р А Ю Щ И Е В «ПЯТЬ В РЯД»

Так как написанные Дж. Вейзенбаумом (1962) (при участии Р. С. Шефердсона) и Диной Конайвер (1963) программы для игры в «пять в ряд» во многом сходны, в последующем изложении между ними не будет делаться различия. Игра «пять в ряд» является антагонистической

ms")

П Р О Г Р А М М Ы , И Г Р А Ю Щ И Е В К А Р Т О Ч Н Ы Е И Д Р У Г И Е ИГРЫ

59

I I

щ

 

 

>«)

 

W s ^

 

і

36 СЗЕ)

 

га 24

II4G

 

IIщщ гб

 

9 VW/ Ii

I I

 

S2

 

ß

ft щ

 

é S

 

ы

II

иI Iкs8 0 ]8) СОmс»:

Ф

и r.

3 . 1 . Человек (белые)

побеждает программу (черные)

в

игре

«пять в

ряд».

 

игрой

двух

лиц. Она

проводится на доске, имеющей

19 X 19 клеток. Побеждает тот игрок, которому удается расположить пять своих фишек последовательно в ряд — горизонтально, вертикально или по диагонали. Игроки ходят поочередно, как и при игре в крестики-нолики.

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

60 Г Л А ВА 3

щую на пересечении десятой строки и десятого столбца,

что

указано цифрой 1 в соответствующем квадрате на

фиг.

3.1.

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

3.2. ПРОГРАММА, ИГРАЮЩАЯ В «КУБИК»

Уильям Дейли разработал машинную программу, ко­ торая играет в «кубик». Так называется трехмерный вариант игры в крестики-нолики с использованием игро­ вого поля из 4 X 4 X 4 клеток. Правила игры в «кубик» иллюстрируются с помощью табл. 3.1, на которой пред­ ставлена партия, действительно сыгранная программой

Таблица 3.1. Программа выигрывает у^человека в «кубик»

Номер

Х о д

 

Ход машины

хода

человека

 

 

 

 

322

111

 

 

222

141

 

 

232

441

 

 

332

241

 

 

341

121

 

 

131

221

 

 

331

321

 

 

421

231

 

 

411

211

Машина выиграла

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