![](/user_photo/_userpic.png)
книги из ГПНТБ / Слэйгл Д. Искусственный интеллект. Подход на основе эвристического программирования
.pdfП Р О Г Р А М М Ы , И Г Р А Ю Щ И Е |
В К А Р Т О Ч Н Ы Е |
И |
Д Р У П І Ё |
ИГРЫ |
61 |
X |
X |
X |
X |
О |
X |
|
X |
X |
X |
X |
X |
|
0 |
|
X |
О |
О |
|
|
|
|||
|
X |
0 |
О |
|
X |
Плоскость I |
|
|
Плоскость |
! |
|
|
Плоскость |
2 |
Плоскость 2 |
Ф и г , |
3.2. |
Позиция |
после |
Ф и г. 3.3. Позиция в конце |
пятого |
хода |
человека. |
игры. |
У. Дейли (1961). Ни один из ходов не был сделан в пло скостях 3 или 4, поэтому эти плоскости на фиг. 3.2 и 3.3 не показаны. Человек начал игру с хода 322, что оз начает: третий ряд, второй столбец, вторая плоскость.
Программа, играющая в «кубик», реализует минимакс ную процедуру «сначала вглубь» с линейной оценивающей функцией. Критерием окончания является «максимальная глубина 1». При «форсированном» поиске критерием окон чания является «максимальная глубина 10». Программа может осуществлять поиск «форсированного» выигрыша;
62 Г Л А ВА 3-
такому выигрышу предшествует последовательность хо дов вычислительной машины, формирующих каждый раз конфигурации «три в ряд», которые противник вы нужден блокировать. Если программа не может добиться выигрыша таким путем, она, прежде чем сделать ход, производит форсированный поиск за противника. Если она при этом обнаруживает, что противник может форси ровать выигрыш, форсированный попек действует как генератор ходов. Эти ходы ранжируются по вероятности с помощью процедуры неглубокого (одноуровневого) по иска. Программа выбирает наиболее вероятный из таких ходов (если таковые имеются), после которых противник уже не может форсировать выигрыша.
Введение форсированного поиска привело к улучше нию характеристик программы. Они были улучшены также благодаря приданию программе способности ре гулировать свою оценивающую функцию в соответствии с записями выигрышей и проигрышей противника. Дру гие игровые программы также были бы более эффектив ны, если бы они были способны принимать в расчет силь ные и слабые стороны своих противников. Программа, играющая в «кубик», делает ход за несколько секунд и играет очень хорошо. Несмотря на то что программа
обычно |
ходила второй |
(что дает |
ее противнику преиму |
|
щество), |
она |
среди более чем 100 сыгранных партий в |
||
80% случаев |
одержала |
победу. |
Программа была слаба |
в выборе дебютных стратегий, однако игру в дебюте можно было бы улучшить путем заучивания партий на изусть, как в программе, играющей в шашки. Действия программы должны, вероятно, стать еще более совершен
ными, если |
поиск будет |
производиться не до первого, а |
до второго |
и третьего |
уровней. |
3 . 3 . ПРОГРАММЫ, И Г Р А Ю Щ И Е В КАРТЫ
Программы, играющие в карточные игры, грубо гово ря, соответствуют общему описанию играющих про грамм, приведенному в разд. 1.6, но, к сожалению, в деталях имеют с ними очень мало сходных черт. Все та кие программы носят специализированный характер. В разд. 1.6 были описаны общие цели составления ма-
П Р О Г Р А М М Ы . И Г Р А Ю Щ И Е В КАРТОЧНЫЕ И Д Р У Г И Е ИГРЫ |
63 |
шинных программ, играющих в игры. Исследователи иногда выбирают карточные игры потому, что они ближе к «реальной жизни». Для этих игр характерен элемент случайности, и игроки точно не знают, в какой игровой позиции они находятся.
Программа, написанная Г. Кэрли (1962), играет в договорной бридж. Ставка предлагается низкая. Про грамма играет в силу среднего игрока. Программа, напи санная Т. Тиле, Р. Лемке и К- Фу (1963) для игры в мо дифицированный вариант «червей», действует лучше сред него игрока. Программа, написанная Д. Уотерманом (1970), обучается довольно хорошо играть в записной покер.-
3 . 4 . ПРОГРАММЫ, ВЫИГРЫВАЮЩИЕ ПР И |
И Г Р Е |
В «НЕВАДСКОЕ БАККАРА» и « Ч Е Р Н Ы Й |
ВАЛЕТ» |
Эдвард Торп разработал программу, которая помогла ему находить «системы» выигрыша в «невадское бакка ра» и «черный валет» (см. статью О'Нила, 1964). Когда в эти азартные игры играют в казино, колоды карт не тасуются после каждой сдачи. Выигрышная стратегия состоит в увеличении ставки в случае, когда в оставшей ся части колоды складывается благоприятное соотноше ние мастей.
При помощи своей системы Торп выиграл несколько тысяч долларов в игорных домах штата Невада. Однаж ды он выиграл, поставив 40 против 1. Торп разрабатывал такие системы, исходя из своих интересов математика, но также и потому, что это было забавно и притом оказа лось выгодным.
Черный валет. Программе, играющей в «черный валет», дается описание остатка колоды, т. е. числа про стых и козырных карт, остающихся в колоде. Программа находит наилучшую из возможных стратегий и соответ ствующую вероятность выигрыша для игрока. Чтобы получить свою систему, Торп запоминал стратегию, соответствующую описанию благоприятной колоды, ко торая довольно часто встречалась в реальной игре.
История системы проф. Торпа очень интересна. В ян варе 1961 г. он (тогда, профессор математики в Массачу-
64 |
Г Л А ВА 3 |
сетском технологическом институте) представил свой доклад «Формула удачи, выигрышная стратегия игры
в«черный валет»» собранию Американского матема
тического общества в Вашингтоне. Весной 1961 г. Торпу удалось превратить предоставленные ему двумя ньюйоркскими меценатами 10 000 долл. в 21 ООО долл., в то время как один из меценатов, не играя по системе Торпа, проиграл 11 ООО. К лету 1961 г. Торп, к немалому своему разочарованию, едва сумел остаться при своих. К счастью для него, он зимой 1962 г. столкнулся с Майклом (Мик ки) Макдугалом, бывшим следователем Управления по контролю за игорными домами штата Невада. Микки разгадал его тайну, и дилеры, сдающие карты, стали обма нывать Торпа! Но, несмотря на то что Торп уже не мог более придерживаться своей системы, он, делая нужные численные подсчеты, все же выигрывал около 100 долл. в час. Чтобы его не выгоняли из казино, он стал иногда
прибегать к |
маскировке. |
|
|
Ко времени написания данной работы |
Торп |
выиграл |
|
в «черного валета» в общей сложности 25 000 долл. |
|||
Баккара. Торп нашел, что есть практически |
выигрыш |
||
ная система |
игры в «невадское баккара» |
для |
побочных |
ставок на простую девятку и простую восьмерку. Он рас считал, что его капитал удваивается в среднем за 25 ча сов игры. Так же как и система игры в «черный валет», система игры в «баккара» состояла в выставлении побоч ных ставок, когда остаток колоды становился благоприят ным. Он составил программу для вычисления вероятности выигрыша при заданном распределении восьмерок и де вяток в колоде. Таким образом он получил систему ста вок, которая позволяла быстро увеличивать капитал с минимальным риском проигрыша. Весной 1963 г. Торп использовал свою систему игры в «баккара» в казино и выиграл тысячи долларов. После этого в казино эти по бочные ставки перестали использоваться!
У П Р А Ж Н Е Н И Я
1. Сформулируйте два соображения, |
по которым карточные |
игры ближе к задачам, взятым из реальной |
жизнн, чем другие игры, |
в которые играют программы. |
|
П Р О Г Р А М М Ы . И Г Р А Ю Щ И Е В К А Р Т О Ч Н Ы Е И Д Р У Г И Е |
ИГРЫ |
|
|
65 |
|||||||||||||||
2. |
Если |
первым ход в позиции |
на фиг. 3.1 |
принадлежит |
чело |
||||||||||||||
веку, |
в какую |
клетку он поставит |
фишку? |
|
|
|
|
|
|
|
|||||||||
3. .Укажите |
позицию |
после |
седьмого |
хода |
человека |
в |
игре |
||||||||||||
в «кубик», приведенной в табл. 3.1. |
|
|
|
|
|
|
|
|
|||||||||||
Л И Т Е Р А Т У Р А |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Ca г I е у |
Q., |
«А |
Program |
to |
Play |
Contract |
Bridge», |
master's |
the |
||||||||||
sis, |
Dept. |
of |
Electr. |
Eng., |
MIT , Cambridge, |
Mass., June 1962. |
|||||||||||||
D a l y |
W., |
«Computer |
Strategies |
foi the |
Came of |
Qubic», |
master's |
||||||||||||
thesis, |
Dept. of |
Electr. Eng., M I T , Cambridge, Mass., |
Jan. |
1961. |
|||||||||||||||
К о n i V e r |
D., |
«Computer |
Heuristics for |
Five-In-A-Row», |
master's |
||||||||||||||
thesis, |
Dept. |
of /Math., |
MIT , |
Cambridge, Mass., |
June |
1963. |
|||||||||||||
O'N e i l P., |
«The |
Professor |
Who Breaks |
the |
Bank», Life, |
March 27 |
|||||||||||||
(1964). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
T h i e I e T. N . . |
L e m k e R . |
R., |
|
F u K. S.. «A Digital |
Computer |
||||||||||||||
Card Playing Program», Веішѵ. |
Sei., |
8, |
362—368 |
(1963). |
|
||||||||||||||
W a t e r m a n |
D. A., |
«Generalised |
Learning Techniques |
for |
Auto |
||||||||||||||
mating the Learning of Heuristics», |
Art if. |
Intell., |
|
1, |
№ |
1—2 |
|||||||||||||
(1970). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
W e i z e n b a u m |
J., |
«How |
to |
Make a |
Computer |
Appear |
Intelli |
||||||||||||
gent; |
Hve-In-A-Row Offers |
No |
Garantee», Datamation, |
24—26, |
|||||||||||||||
F-ebr. (1J62). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
W e i z e n b a u m |
J., |
S h e p h e r d s o n |
R. |
C , |
«Gamesman- |
||||||||||||||
ship», |
Datamation, |
10, |
April |
|
(1962). |
|
|
|
|
|
|
|
5—1077
4 Программы, решающие
шахматные задачи, задачи по геометрии
и задачи из области исчислений
Различные виды интеллектуально трудных задач, по* видимому, имеют некоторую общую структуру. С по мощью двух типов эквивалентных имплицитных деревьев можно представить различные виды задач, включая зада чи из области шахмат, геометрии и отыскания неопреде ленных интегралов. Для анализа таких деревьев были составлены эвристические программы. Эксперименты с реализованными на вычислительной машине программа ми для решения шахматных задач (Бэйлор и Саймон,
1966), геометрических |
задач (Гелернтер и др., 1959, |
I960) |
и задач на отыскание |
интегралов (Слэйгл, 1963) |
позво |
лили сделать некоторые общие выводы. Эти программы способны решать довольно трудные задачи. Скорость действия каждой из этих программ выше скорости дейст вия людей, умеющих хорошо решать такие задачи. Даль нейшие исследования должны быть направлены на то, чтобы достичь аналогичных успехов при решении важных практических задач.
4.1. П Р Е Д С Т А В Л Е Н И Е З А Д А Ч И В В И Д Е И М П Л И Ц И Т Н О Г О Д Е Р Е В А
Геометрические и шахматные задачи являются хоро шими примерами задач достаточного общего вида, кото рые могут быть представлены двумя типами имплицитных деревьев. Как будет показано ниже, эти два представле ния являются эквивалентными. Шахматные задачи могут быть представлены в виде имплицитного дерева антаго нистической игры двух лиц. Задача тогда состоит в том, чтобы найти (сделать эксплицитным) нужную часть де рева игры, позволяющую доказать, что белые (квадрат)
П Р О Г Р А М МЫ Р Е Ш А Ю Щ И Е З А Д А Ч И |
67 |
\
I |
I |
I |
1 |
I |
I |
I — |
I |
I |
I |
I |
I |
I |
I |
I |
l |
I |
I |
I |
I |
I |
U _ J |
L _ „ _ J |
L . „ _ J |
I — |
• |
выигрывает |
о выигрывает |
Ф и г . 4.1. Три верхних |
уровня |
|
имплицитного дерева игры. |
|
Ф и г . 4.2. Эксплицит ное дерево игры и дока зательство.
Жирными линиями показано доказательство.
D |
выигрывает |
• выиерй/вает |
могут добиться выигрыша. На фиг. |
4.1 изображены три |
верхних уровня «имплицитного» дерева игры. Дерево,
представленное на |
фиг. 4.2, |
приведено к эксплицитному |
|
виду и отображает |
решение задачи. Толстыми сплошными |
||
линиями показано |
искомое |
доказательство. |
|
Геометрическая |
задача может быть представлена в |
||
виде имплицитного |
дизъюнктивно-конъюнктивного де- |
es |
|
|
|
|
|
|
Г Л А ВА 4 |
|
|
|
|
И |
|
|
|
|
|
/ - л |
|
|
|
|
|
|
|
7< |
|
|
у^. |
|
|
|
|
\ |
|
х ' |
\ |
ч |
|
І |
i |
i |
l |
! G 2 M |
|
| G 2 2 |
j |
|
|
|
|
\ |
// |
/ |
\ |
/ |
^ |
/ |
\ |
непосредственно • |
Цель |
\ |
|
|
|
|
|
достижилш |
непосредственно |
||
|
|
|
|
|
достижима |
|
|
Ф и г . |
4.3. Три верхних уровня имплицитного |
дерева |
игры. |
||||
рева |
|
целей. Задача состоит в том, чтобы, |
используя неко |
торые заданные гипотезы, доказать определенное утверж дение из области геометрии, например что два угла равны. Нахождение доказательства аналогично поиску на им плицитном дизъюнктивно-конъюнктивном дереве целей,
высшая |
цель |
(вершина) которого — «доказать |
первона |
||||
чально заданное утверждение». На фиг. 4.3 |
|
высшая |
цель |
||||
G |
достижима, |
если достижима дизъюнкция |
целей |
Gx и |
|||
Go, |
или, |
по |
определению дизъюнкции, |
«если |
дости |
||
жима Gi или |
(или «включительное») G2»- |
Эта дизъюнк |
|||||
ция представлена квадратной формой узла |
G. В |
примере |
|||||
доказательства |
равенства двух углов целью d |
может быть |
доказательство того, что углы являются соответствую щими частями подобных треугольников, а целью G2 — доказательство того, что углы являются внутренними накрестлежащими, образованными пересечением двух параллельных линий наклонной прямой. На фиг. 4.3 показано, что цель G2 достижима, если достижима конъюкция 02 і и G22> т - е-, по определению конъюкции, если до стижимы G2 i и G2 2 одновременно. Эта конъюнкция обозна чается круглой формой узла G2 . Исходное утверждение доказывается превращением дерева, показанного на фиг. 4.4, в эксплицитное. Это доказательство отмечено толстыми сплошными линиями.
П Р О Г Р А М М Ы, Р Е Ш А Ю Щ И Е З А Д А Ч И |
69 |
Цель |
Цель |
непосредственно |
непосредственно |
оостижима |
достижима |
Ф и г . 4.4. Эксплицитное |
дерево игры |
и доказательство. |
|
Жирными линиями показано доказательство.
Сравнение фиг. 4.1 с 4.3 и фиг. 4.2 с 4.4 показывает, что эти два представления эквивалентны. Шахматная задача также может быть представлена в виде имплицитного дизъюнктивно-конъюнктивного дерева целей. Геометри ческую задачу можно было бы представить в виде импли цитного дерева антагонистической игры двух лиц. Мы уви дим, что задачу отыскания неопределенного интеграла можно представить любым из этих двух способов.
4.2. Ц Е Л И С О С Т А В Л Е Н И Я ПРОГРАММ, Р Е Ш А Ю Щ И Х ШАХМАТНЫЕ З А Д А Ч И , З А Д А Ч И ПО Г Е О М Е Т Р И И И З А Д А Ч И НА ОТЫСКАНИЕ
Н Е О П Р Е Д Е Л Е Н Н Ы Х И Н Т Е Г Р А Л О В
Как и большинство задач, к которым до сих пор при менялось эвристическое программирование, шахматные и геометрические задачи, а также задачи на отыскание неопределенных интегралов имеют то преимущество, что они проще важных практических задач и вместе с тем сходны с ними. Это обстоятельство обсуждалось в разд. 1.6,
70 |
Г Л А ВА 4 |
Добавим, что программисты стремятся определить уро вень сложности тех задач, которые их программы спо собны решать на современных вычислительных машинах. Определение этого уровня облегчается тем обстоятель ством, что многие люди знакомы с задачами такого типа. Лицо, которое хорошо знакомо с определенной проблем ной областью, способно оценить выдаваемые программой решения, причем действия программы могут быть сопо ставлены с соответствующими действиями людей. Чтобы уметь обращаться с задачами довольно общего типа, а именно с такими, которые могут быть представлены им плицитным деревом антагонистической игры двух лиц или, что эквивалентно, имплицитным дизъюнктивно-конъюнк тивным деревом целей, исследователи стремились рас ширить возможности процедур, включая процедуры по иска на дереве. Усовершенствование процедур для реше ния задач общего типа дает в руки исследователей два важных преимущества. Во-первых, это наиболее эффек тивный путь для создания вычислительных машин, спо собных решать различные классы проблем; во-вторых, это наиболее подходящий способ достичь общего понима ния процесса решения задач.
Программы для решения геометрических задач в ос
новном |
используются |
для |
изучения |
способов |
примене |
|
ния моделей, в то |
время |
как программы |
для |
оты |
||
скания |
интегралов |
могут |
оказаться |
полезными |
сами |
по себе. В конце этой главы обсуждаются результаты и делаются выводы, относящиеся к особым целям, которые преследовались при составлении некоторых программ (например, каким образом программа отыскания неопре деленных интегралов была расширена с тем, чтобы сде лать возможным вычисление определенных и кратных интегралов). Так как решение таких задач на интегриро вание имеет важное значение для науки и техники, усо вершенствованные варианты таких вычислительных про грамм должны найти применение на практике. Програм ма для решения геометрических задач использует в ка честве модели чертеж и отвергает подцели, которые не отвечают структуре этой модели. Это обстоятельство яв ляется очень важным, так как использование моделей человеком усиливает его способность к решению задач.