
книги из ГПНТБ / Слэйгл Д. Искусственный интеллект. Подход на основе эвристического программирования
.pdfУ Н И В Е Р С А Л Ь Н А Я Э В Р И С Т И Ч Е С К А Я П Р О Г Р А М М А ( M U L T I P L E ) |
151 |
все поля любого из игроков пусты или если в калахе одного из игроков содержится более половины косточек. При определенных условиях, когда игра почти подошла к концу, программа способна определить результат, и в этих случаях функция принимает значение истинности.
В. Функция, аргументом которой является позиция, а значением — вероятность того, что данный игрок в этой позиции может выиграть. Вероятностная функция имеет вид
_ |
1 |
1 |
K—k |
|
р — |
2 + |
2,1 |
s |
• |
где р — вероятность |
того, что игрок Р может выиграть, |
К и k — число косточек в кал ахах игроков Р и р соответст
венно, a |
S — число |
косточек, которые |
еще |
«в игре». |
||
Эта |
функция |
применяется только в |
тех |
позициях, |
||
когда |
игра |
еще |
не закончена. Для |
таких |
позиций |
|
I К — k |
I < |
5. Заметим, что эта функция обладает сле |
дующими желаемыми свойствами. Если в калахах обоих игроков одинаковое число косточек, ни один игрок не оказывается в лучшем положении, и вероятность выигры ша равняется 1/2. Когда в калахе игрока Р больше ко сточек, чем у его противника, вероятность выигрыша игрока Р увеличивается. Когда число косточек, находя щихся в калахе игрока Р, равно числу косточек в калахе
противника плюс число всех |
косточек, |
которые остаются |
в игре, т. е. / ( " = £ + S , игрок |
Р не может |
проиграть, и ве |
роятность его выигрыша очень близка к 1. Поскольку игра еще может завершиться вничью, во втором слагаемом приведенного выше выражения вместо множителя (1/2) используется множитель (1/2,1). Таким образом, вероят ность выигрыша игрока Р всегда строго меньше 1. Когда в калахе игрока установится больше косточек, чем у игро ка Р, вероятность выигрыша игрока Р уменьшается. Если число косточек в калахе игрока р равно числу ко сточек в калахе игрока Р плюс число всех косточек, на
ходящихся в игре, т. е. k=K+S, |
игрок Р не может выиг |
|||
рать, и |
вероятность |
его |
выигрыша должна равняться 0. |
|
Однако |
на деле в |
этом |
случае |
вероятность равняется |
1/2—1/2,1 > 0. Это явное затруднение устраняется, если вспомнить, что вероятностная функция никогда не при-
152 Г Л А ВА 7
меняется к позициям, в которых игра заканчивается, и,
следовательно, |
она всегда |
|
принимает |
значения |
только |
|
в |
открытом интервале от |
0 |
до 1. |
|
|
|
|
Г. Функция, |
аргументом |
которой |
является |
позиция, |
|
а |
значением — самооценка |
этой позиции. Функция само |
оценки определяется как величина, обратная числу находящихся в игре косточек. Эта функция обладает следующими желаемыми свойствами. Когда уменьшается число косточек, находящихся в игре, уменьшается и стоимость порождения деревьев, ибо количество воз можных ходов уменьшается. Чем меньше косточек остает
ся |
в игре, |
тем |
ближе игра |
к |
концу. |
Следовательно, |
||
I Ар I увеличивается по |
сравнению |
с позициями, |
в |
|||||
которых конца |
игры еще не |
видно. |
|
|
|
|||
|
Д. Функция, |
аргументом |
которой является позиция, |
|||||
в |
которой |
игра |
закончена, а значением — 1 пли |
0 в |
за |
|||
висимости |
от того, выиграл |
ли |
рассматриваемый |
игрок |
или нет.
Альфа-бета-процедура как программа доказательства. Ввиду того что альфа-бета-процедура обычно приме няется для проведения игр, необходимо было внести в нее определенные изменения, чтобы она смогла дока зывать теоремы, касающиеся игры двух лиц. Оказалось,
что |
эти изменения |
минимальны. |
При использовании |
||
альфа-бета-процедуры |
в |
качестве |
игровой |
программы |
|
за |
начальное значение |
альфа принимается |
—оо, а за |
начальное значение бета -f-oo. Предположим, что пер вый ход всегда делает игрок Р, что противник его — игрок р и что во всех практических случаях число N — оо и соответственно —N = — оо. Если доказываемое выска зывание состоит в том, что игрок Р может в данной пози ции выиграть, то начальное значение альфа полагается равным N — 1. Тем самым исключаются все ходы, кроме4 выигрывающего хода игрока Р. Аналогично, когда дока зываемое высказывание состоит в том, что игрок р может в данной позиции выиграть, начальное значение бета устанавливается равным —N 4- 1. Тем самым начальный ход вызывает бета-отсечение тогда и только тогда, когда этот ход не ведет к проигрышу игрока Р. Если все началь ные ходы ведут к проиггышу игрока Р, справедливость высказывания доказана. Если лучшее, чего может достичь
У Н И В Е Р С А Л Ь Н А Я Э В Р И С Т И Ч Е С К А Я П Р О Г Р А М М А |
( M U L T I P L E ) |
153 |
рассматриваемый игрок, — это ничья, |
то в обоих |
слу |
чаях высказывание опровергается. Для окончания игры
альфа-бета-процедура применяла |
тот же |
самый |
кри |
терий, что и программа PP. Для получения |
перечня |
раз |
|
решенных в данной позиции ходов |
альфа-бета-процеду |
||
ра применяла ту же самую функцию, что и программа |
PP. |
Оказалось возможным даже упорядочить эти ходы ценой лишь незначительной дополнительной работы программы, реализующией эту функцию. Процедура упорядочения руководствуется принципом, что игроку выгодно не от давать очередного хода противнику и захватывать его косточки. Такая процедура упорядочения аппроксимирует более дорогостоящие методы оценки каждой позиции с помощью оценивающей функции, которая вычисляет раз ность числа косточек в двух калахах. Вероятностное упорядочение ходов увеличивает эффективность альфабетапроцедуры. Она не помогает программе РР и при менялась лишь потому, что не может ей повредить. Это один из тех случаев, когда сравнение с РР-программой оказывается явно не в пользу альфа-бета-процедуры. Когда альфа-бета-процедур а применялась как программа дока зательства, она осуществляла поиск до конца игры.
Эксперименты. Программе РР и альфа-бета-про цедуре было предложено доказать высказывания отно сительно 23 позиций игры в калах. Примем, что игрок Р всегда начинает. Обеим процедурам поиска предъявля лось по два высказывания в каждой позиции. Первое состояло в том, что в этой позиции может выиграть игрок Р, второе, что в ней может выиграть игрок р. В этих экспериментах программа РР всегда порождала подде ревья фиксированной глубины. В половине эксперимен тов эта глубина равнялась 1, а в другой половине 2. (Программа написана так, что она сама может неогра ниченно менять глубину каждого порождения.) Резуль таты экспериментов суммированы в табл. 7.1. В число
позиций, построенных альфа-бета-процедурой, |
не вклю |
||
чены |
те выработанные |
программой позиции, |
которые |
потом |
не использовались |
из-за альфаили бета-отсечения. |
|
Это было сделано, даже несмотря на то, что для |
упорядо |
чения набора позиций были использованы все вырабо танные позиции. Применение разных методов упорядо-
154 |
|
|
|
|
|
|
|
|
|
|
Г Л А ВА 7 |
Таблица |
7.1. |
Результаты |
экспериментов по сравнению |
двух |
процедур |
||||||
поиска |
в качестве |
программ |
доказательства |
(использовано 23 |
позиции) |
||||||
Глубина поиска |
для РР |
|
|
1 |
1 |
2 |
2 |
||||
Игрок, |
выигрыш |
которого |
рас |
Р |
Р |
Р |
Р |
||||
сматривается |
|
|
|
|
|
|
|
|
|
|
|
Полное |
время, с |
|
|
|
|
|
|
|
|
||
Программа |
РР |
|
|
|
|
111 |
63 |
111 |
84 |
||
Альфа-бета-процедура |
|
183 |
222 |
353 |
389 |
||||||
Полное |
число выработанных |
по |
|
|
|
|
|||||
зиции |
|
|
РР |
|
|
|
|
4035 |
2638 |
4821 |
4064 |
Программа |
|
|
|
|
|||||||
Альфа-бета-процедура |
|
9184 |
10673 |
16058 |
17606 |
||||||
Число |
позиций, |
в которых |
доби |
21 |
21 |
21 |
22 |
||||
лась успеха |
программа РР |
|
|
|
|
|
|||||
Число |
позиций, |
в |
которых |
доби |
23 |
23 |
23 |
23 |
|||
лась успеха альфа-бета-процедура |
|
|
|
|
|||||||
Число |
случаев, |
когда |
меньшее |
|
|
|
|
||||
количество |
позиций |
выработано |
6 |
8 |
7 |
9 |
|||||
программой РР |
|
|
|
||||||||
альфа-бета-процедурой |
|
14 |
11 |
13 |
12 |
||||||
Число |
случаев |
равенства |
колн- |
1 |
2 |
1 |
1 |
||||
чества |
выработанных |
позиций |
|
|
|
|
чения позиций привело бы к тому, что эти позиции ни когда не были бы построены, поскольку альфа-бета- процедура использует в каждый момент времени только одну позицию. С другой стороны, программа РР должна использовать все разрешенные в данной позиции ходы, так что они были включены в общее число построенных для РР позиций. Из результатов видно, что общее число построенных позиций и общее время, затраченное альфа- бета-процедурой, значительно превышают соответствую щие показатели для программы PP. Альфа-бета-про цедура в большинстве задач использовала меньше попы ток, чем программа PP. Объясняется это тем, что для большей части задач требовалось относительно малое число попыток. Альфа-бета-процедура более эффектив на в небольших задачах, в то время как процедура РР действует быстрее, когда задачи сложные. Это видно из табл. 7.2, в которой приведены результаты для двух
У Н И В Е Р С А Л Ь Н А Я Э В Р И С Т И Ч Е С К А Я П Р О Г Р А М М А ( M U L T I P L E ) |
155 |
Таблица |
7.2. |
Два примера |
доказательства высказываний |
|
|||
(глубина порождения для РР равна 1) |
|
|
|||||
Игрок, |
|
|
|
|
Время, с |
Число |
выработанных |
выигрыш |
|
Исходная |
|
|
|||
|
|
|
|
|
позиции |
||
которого |
|
|
|
|
|
||
|
позиции |
|
|
|
|
|
|
рассматри |
|
|
|
|
|
|
|
|
|
|
РР |
альф.'1 -бета |
РР |
альфа-бета |
|
вается |
|
|
|
||||
Р |
7 |
770000 |
|
1,2 |
0,4 |
71 |
10 |
|
|
001150 8 |
|
|
|
|
|
Р |
|
|
|
3,2 |
0,4 |
184 |
10 |
Р |
|
|
|
3,1 |
69,6 |
160 |
3708 |
|
10 900102 |
|
|
|
|
|
|
|
|
101002 |
10 |
|
|
|
|
Р |
|
|
|
3,1 |
86,0 |
151 |
4032 |
позиций. Первая позиция была быстро решена альфа- бета-процедурой, но во второй позиции эта процедура тре бует уже приложения значительно больших усилий.
Программа РР нуждается в значительном объеме па мяти для запоминания деревьев, так что практически может решать лишь небольшие задачи. Как видно из табл. 7.1, программа РР не во всех высказываниях доби лась успеха, так как ей не хватило объема памяти. Альфа-бета-процедура справилась со всеми выска зываниями. В табл. 7.1 включены только те высказыва ния, в которых программа РР добилась успеха. Поэтому время и число позиций, построенных альфа-бета-про цедурой, различны в столбцах 1 и 3 и в столбцах 2 и 4. Недостатки и преимущества этих процедур «взаимно дополняют друг друга» в том смысле, что альфа-бета- процедура требует для решения больше времени, а про грамма РР — больше памяти. Преимущества программы
РРдолжны увеличиться с появлением вычислительных машин с большим объемом памяти. Думается также, что
РРбез значительного увеличения затрат времени способ на использовать вспомогательные запоминающие уст ройства. Тот факт, что для решения некоторых сложных задач программа РР затрачивает менее одной десятой числа попыток, используемых для решения тех же за-
156 |
Г Л А ВА 7 |
дач альфа-бета-процедурой, |
очень обнадеживает. В си |
лу этого нам кажется, что |
программа РР представляет |
собой полезную процедуру поиска для сложных выска зываний.
Сравнение программы РР с методами решения задач человеком. Чтобы провести такое сравнение, были выбра ны восемь высказываний, которые были проверены «вручную». (Отметим, что программа РР не рассматрива лась авторами как модель поведения человека при реше нии задач. Проведенное сопоставление было рассчитано лишь на то, чтобы выявить возможные направления усо вершенствования программы PP.) Пока еще трудно сде лать какие-либо общие выводы, но характерно, что про грамма в среднем построила на порядок больше позиций. Выяснилось, что человек прекрасно анализирует пози цию без формального построения в этой позиции подде рева, в то время как программе РР для получения той же информации приходится строить поддерево. Конечно, программа делает это быстрее, чем люди, и ее вычисления значительно надежнее. Однако РР работала бы гораздо лучше, если бы ее оценивающая функция для вероятности и самооценки была бы несколько совершеннее. Далее, человек при поиске часто пользуется глубокими и неразветвленнымн поддеревьями. Свою идею человек про веряет не отвлекаясь. Программа значительно больше «скачег» по дереву, в результате чего дерево получается более разветвленным. Для того чтобы деревья получались менее разветвленными, можно ввести в программу два новых момента. Сейчас программа РР сразу строит все разрешенные в данной позиции ходы. Вместо этого она могла бы ограничиться лишь наиболее многообещающими ходами. К тому же, применяя непосредственное преобра
зование, |
она могла |
бы |
выращивать |
глубокое поддерево |
с очень |
малым ветвлением. |
|
||
7.5. Э К С П Е Р И М Е Н Т Ы |
С |
ВАРИАНТОМ |
ПРОГРАММЫ |
|
Р Р КАК ИГРОВОЙ |
ПРОГРАММОЙ |
|
Программа РР была изменена так, чтобы она могла действительно играть в калах. Это было достигнуто пу тем предоставления ей права строить лишь заранее опре-
У Н И В Е Р С А Л Ь Н А Я Э В Р И С Т И Ч Е С К А Я П Р О Г Р А М М А ( M U L T I P L E ) |
157 |
деленное число вершин. После этого она выбирала ход, приводящий к позиции с наибольшей вероятностью вы игрыша. Второе (и последнее) изменение, которое, ока залось небходпмым, — это присвоение ничейным по зициям вероятности 1/2.
Эксперименты. Программа РР 156 раз сыграла с аль
фа-бета-процедурой в калах. В |
каждой |
из |
13 |
началь |
|
ных позиций альфа-бета-процедуре |
были |
заданы |
три |
||
значения максимальной глубины |
поиска |
(4, |
5 |
и |
6), а |
РР были заданы два значения глубины порождения де ревьев (1 и 2). При фиксированных значениях глубины обеим процедурам разрешалось делать первый ход, что дало в сумме 12 игр для каждой начальной позиции. Игра проходила следующим образом. Фиксировалась глубина
поиска для альфа-бета-процедупы |
и глубина |
порожде |
ния деревьев для программы РР, |
после чего |
альфа- |
бета-процедура делала первый ход. РР разрешалось при поиске ответного хода строить три четверти вершин от числа вершин, построенных альфа-бета-процедурой. Был выбран множитель, меньший 1, для того, чтобы было легче делать последующие ходы; в результате обе проце дуры поиска применяют по мере развития игры меньше
попыток. Потом альфа-бета-процедура |
снова |
делала |
|||
ход, и игра |
продолжалась |
таким |
путем, |
пока не |
закан |
чивалась. |
Число попыток |
РР |
всегда |
ограничивалось |
тремя четвертями от числа попыток альфа-бета-про цедуры, затраченных ею на поиск последнего хода. Как это было и с программой доказательства, в число построен
ных |
альфа-бета-процедурой |
вершин включаются толь |
|
ко действительно использовавшиеся, а не |
все выработан |
||
ные |
вершины. Когда игра |
завершалась, |
программа РР |
делала первый ход в первоначальной позиции, и ей раз решалось строить столько же вершин, сколько ранее использовала альфа-бета-процедура при поиске своего первого хода. После этого делала ход альфа-бета-про цедура, и игра продолжалась, как и раньше.
Когда программа РР доказывала или опровергала вы сказывание о том, что она может выиграть, она печатала эту информацию, но продолжала играть. В одной партии РР доказала свой выигрыш, а потом достигла лишь ничьей, потому что при дальнейшем развитии партии
158 |
|
|
|
Г Л А ВА 7 |
Таблица |
7.3. Итоговые результаты |
игровых |
экспериментов |
|
Глубина |
поиска (или |
порождении) |
Числі |
очков |
ал ьфч-бета |
|
|
|
|
(максимальная |
р р |
РР |
альфа-бета |
|
глубина) |
|
|
|
|
4 |
|
1 |
—3 |
—4 |
5 |
|
1 |
—4 |
—2,5 |
6 |
|
1 |
—2,5 |
- 2 , 5 |
4 |
|
2 |
—2 |
—4,5 |
5 |
|
2 |
—3 |
—4 |
6 |
|
2 |
_ 2 |
—2,5 |
|
|
Всего |
— 16,5 |
—20 |
сделала неудачный ход. Это выявляет один из недостат ков программы РР, который является результатом огра ничения РР фиксированным процентом от числа попыток противника на предыдущем ходу. В этом конкретном слу чае альфа-бета-процедура осуществляла поиск на глу бину 4. Глубина поиска процедуры РР равнялась лишь 1, хотя партия уже почти заканчивалась и для полного поис ка потребовалось бы лишь ненамного больше попыток.
Результаты этих экспериментов сведены в табл. 7.3. Они были получены вычитанием у игрока одного очка, если он делал первый ход и проигрывал, и вычитанием половины очка, если он начинал и делал ничью. В девя ти партиях программе РР не хватило памяти, и эти пар тии прекращались. В таблицу включены результаты только для тех начальных позиций, в которых игра была доведена до конца в обеих партиях, т. е. когда оба игрока имели возможность первыми сделать ход. Точно так же суммировались время и общее число позиций в табл. 7.4. Эта таблица подтверждает, что большой процент времени уходит на отсылку вероятности и оценки того момента, когда каждое порождение дерева минимально, т. е. когда глубина порождения равна 1. Из этих таблиц можно вы вести общее заключение, что обе процедуры поиска ра зыгрывали партии примерно на одинаковом уровне, хотя некоторое преимущество и было на стороне программы PP.
У Н И В Е Р С А Л Ь Н А Я Э В Р И С Т И Ч Е С К А Я П Р О Г Р А М М А |
( M U L T I P L E ) |
159 |
||
Таблица |
7.4. Итоговая оценка затрачиваемых |
усилий |
||
|
|
|
РР |
Альфа-бета |
|
Глубина поиска для РР равна 1 |
|
||
Затраченное |
время, с |
508 |
509 |
|
Число выработанных |
позиций |
21371 |
26332 |
|
|
Глубина поиска для РР равна 2 |
|
||
Затраченное |
время, |
с |
334 |
423 |
Число выработанных |
позиции |
18303 |
22240 |
7.6. ВЫВОДЫ
Первоначальные эксперименты с программой РР — частью системы MULTIPLE — оказались обнадеживаю щими. Эксперименты показали, что РР более эффективно, чем альфа-бета-процедура, осуществляет поиск в очень больших дизъюнктивно-конъюнктивных деревьях. Основ ная слабость программы РР в том, что она должна сохра нять все недоказанные части дерева, по этот недостаток можно значительно уменьшить, если использовать боль шой вспомогательный блок памяти для хранения тех ча стей дерева, которые активно не применяются. (Это вполне возможно, так как вероятность и оценка поддерева не меняются, если РР не порождает дерево из какого-либо непроверенного высказывания этого поддерева.) После проведения начальных экспериментов в программу РР были введены два усовершенствования (Слэйгл и Конайвер, 1970). Во-первых, была добавлена программа, использую щая запасные высказывания. Во-вторых, РР работала в другой области — исчисление предикатов первого по рядка, — применяя принцип резолюции. Кроме того, предполагается добавить программу обучения (LP), чтобы программа РР была способна улучшать свои характери стики с накоплением опыта. Периодически улучшая аппроксимации к функциям вероятности и самооценки, программа будет учиться решать задачи все возрастаю щей трудности.
160 |
Г Л А ВА 7 |
УП Р А Ж Н Е Н И Я
1.Проверьте правильность отсылки оценки и выбора в повицнго С на фиг. 7.1.
2.Проверьте правильность отсылки вероятности, оценки и
выбора:
а) |
на фиг. 7.3; |
|
|
|
б) |
на |
фиг. 7.4. |
|
|
3. а) |
В |
предположении, |
что G = |
G, Л G2 Л ••• Л G/j и ч т о |
р =г=[0, покажите, что рабочая |
оценка |
позиции G есть |
m=max ( -^-mly |
|
- ^ - m 2 |
, . . . , |
-^—тЛ, |
|
\ Pi |
1 |
Р2 2 |
' |
Рк |
k j |
б) В предположении, что G = G, V С2 V ••• V Gk и ч т о Р Ф покажите, что рабочая оценка позиции G есть
|
m=max |
/ 1 — р |
|
|
1 — р |
|
|
1 — р |
|
\ |
|
|
|||||
|
h — - ш , , |
•;——m,,..., |
r —— mA |
\ - |
|
|
|||||||||||
|
|
|
|
V1 |
— Pi |
|
1 |
— Pi |
2 |
|
1 - Рк |
ft |
/ |
|
|
||
|
4. a) Какую самооценку программа |
Р Р присвоит каждому вы |
|||||||||||||||
сказыванию |
в табл. |
7.2? |
|
|
|
|
|
|
|
|
|
|
|
||||
|
б) Какую начальную вероятность выигрыша игрока Р про |
||||||||||||||||
грамма |
Р Р |
присвоит |
каждому |
высказыванию |
в табл. 7.2? |
|
|||||||||||
Л И Т Е Р А Т У Р А |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
1. |
S 1 a g 1 e |
J., |
«А Multipurpose, |
Theorem-Proving |
Heuristic |
||||||||||||
|
Program |
That |
Learns», |
Proc. |
|
I Ft P Congr., |
1965, vol. I I , Spartan |
||||||||||
|
Books, |
Washington |
D. |
|
C , |
pp. |
323—328. |
|
|
|
|
|
|||||
2. |
S 1 a g I e J., |
B u r s k y |
Ph., |
«Experiments with a Mutlipurpo- |
|||||||||||||
|
se, Theorem-Proving Heuristic |
Program», |
J. |
ACM, |
15, № |
1, |
|||||||||||
|
85—99 |
(1968). |
|
|
|
|
|
|
|
|
|
|
|
|
|||
3. |
S 1 a g 1 e |
J., |
K o n i v e r D . , |
«Finding |
Resolution |
Proofs |
and |
||||||||||
|
Using Duplicate Goals in AND-OR |
Trees», |
Heuristics |
Lab. Div. |
|||||||||||||
|
of Computer Res. a. Technol., |
Nat. |
|
Inst, |
of |
Health, |
Bethesda, |
||||||||||
|
Md . , |
1970. |
|
|
|
|
|
|
|
|
|
|
|
|
|