Человек и компьютер. Взгляд в будущее - Гарри Каспаров
Шрифт:
Интервал:
Закладка:
В 1963-м, спустя 12 лет после сыгранного вничью матча за мировую корону с могущественным Ботвинником, Бронштейн по-прежнему оставался одним из сильнейших шахматистов мира. И 4 апреля 1963 года в Московском институте математики он сыграл полную партию с шахматной программой, созданной советскими учеными и работавшей на советской ЭВМ М-20. Я бы очень хотел спросить у Бронштейна, что он чувствовал, когда делались первые ходы. Он не знал, на каком уровне играет машина, и не имел возможности подготовиться к встрече с уникальным соперником, поэтому для него это было прыжком в неизвестность.
Однако быстро выяснилось, что главный сюрприз, если перефразировать знаменитое изречение Сэмюэла Джонсона, состоял не в том, что машина хорошо играла в шахматы, а в том, что она вообще в них играла. Бронштейн просто забавлялся с откровенно слабым соперником. Он пожертвовал ей часть материала, а взамен расставил фигуры на атакующие позиции и обрушился на ее короля. Затратив на партию всего 23 хода, он напрочь разгромил машину.
Победа Бронштейна над М-20 не удивляет. В поединках более-менее сильных игроков с машинами первого поколения компьютеры слишком жадничали, за что нещадно наказывались. Ранние программы уделяли чрезмерное внимание количественной оценке материала, то есть числу фигур у каждого игрока. Это самый простой оценочный фактор — присвоить значение каждой фигуре на доске и определить их совокупную ценность, а кто справляется с расчетами лучше компьютеров? Базовое значение фигур было определено еще два века назад: за единицу стоимости принимается пешка, следовательно, слоны и кони стоят по три пешки, ладья — пять пешек, ферзь — десять.
С королем дело обстоит сложнее, поскольку эта фигура слаба с точки зрения мобильности и дальнобойности, но ее необходимо защищать любой ценой. Король не может находиться под шахом, и если он не может уйти от шаха, партия окончена: это мат. Одно из решений — задать королю значение миллион, чтобы программа знала, что этой фигурой нельзя рисковать. Мат — однозначное и конечное событие, еще одна вещь, которую хорошо понимают компьютеры. И если есть способ поставить мат в четыре хода, компьютер с глубиной просмотра в четыре хода обязательно его найдет, независимо от того, насколько сложной может выглядеть позиция для человеческого глаза.
Начинающие игроки, особенно дети, также сосредоточиваются в основном на материале. Они заботятся только о том, чтобы «съесть» побольше фигур противника, и не обращают внимания на другие аспекты позиции, такие как активность фигур и относительная безопасность короля. В конце концов они узнают на личном опыте, что, хотя материал — существенный фактор, не важно, сколько вражеских фигур вы взяли, если мат неминуем.
Даже стоимость фигур может меняться в зависимости от ситуации на доске. Например, конь в благоприятной позиции может стоить столько же, сколько ладья с ограниченной областью действия, или даже больше. В миттельшпиле — динамичной, тактической стадии игры — слон, скорее всего, будет ценнее трех пешек, хотя в эндшпиле все может измениться. Программу можно научить присваивать фигурам разные значения в процессе игры, но добавление знаний в алгоритм замедляет поиск.
Первые шахматные машины не могли учиться на опыте, как это делают люди. Дети учатся каждый раз, когда получают мат: несмотря на проигрыш, они накапливают в памяти полезные навыки и знания. Между тем компьютеры снова и снова повторяли одну и ту же ошибку, и их одушевленные соперники быстро это улавливали и начинали использовать. Еще в 1980-е годы можно было, запомнив ходы и хронометраж, повторить всю предыдущую партию с компьютером и обыграть его точно так же, как в прошлый раз.
Хронометраж имеет значение, поскольку в каждую дополнительную микросекунду поиска компьютер может избрать другой ход. Человек, тратящий на ход одну минуту, вряд ли сыграет иначе, если дать ему на обдумывание не 60 секунд, а 61. А вот у компьютера каждая лишняя микросекунда уходит на углубление поиска, и в итоге машина делает более качественные ходы.
Кажущееся сходство между ранними шахматными программами и начинающими игроками — ловушка, частично обусловленная присущим людям желанием наделить компьютеры человеческим мышлением. Согласно парадоксу Моравека, компьютеры очень хорошо справляются с тем, что у людей вызывает больше всего проблем, — с шахматными расчетами. Но в то же время машины слабы в распознавании образов и оценке по аналогии, что, напротив, особенно хорошо удается нам. За исключением мата, почти каждый фактор, учитываемый при оценке позиции, зависит от множества других условий. Это обстоятельство наряду с низкой скоростью ранних компьютеров убедило экспертов в невозможности создания сильной программы типа А, основанной на грубой силе.
Они ошибались, хотя, чтобы понять это, потребовалось некоторое время. Многие первые программы представляли собой попытки использовать стратегию типа B для того, чтобы грамотно сократить дерево поиска так же, как это делают люди. Другие исследовательские группы решили взяться за более конкретную задачу — увеличение скорости поиска и, следовательно, его глубины, что всегда позволяет повысить шахматную силу машины предсказуемым образом.
Первая программа, способная компетентно играть в шахматы, была разработана в Массачусетском технологическом институте в конце 1950-х годов, на несколько лет раньше советской программы, побежденной Бронштейном. Программа Котока — Маккарти работала на машине IBM-7090 и использовала ряд методов, которые стали основой для всех последующих сильных алгоритмов, включая отсекающий алгоритм «альфа-бета» для ускорения поиска.
Ведущая советская команда разработчиков выбрала подход А, что довольно интересно, поскольку, в отличие от американцев, она была окружена сильными шахматистами. Алан Коток и Джон Маккарти оба играли довольно слабо и имели весьма романтические представления о шахматах. Для меня же выбор советскими программистами метода типа А, напротив, отражал глубокое понимание того, как построена сильная игра. Шахматы — очень точная игра, когда в нее играют на высоком уровне. Преимущества в одну пешку, как правило, бывает более чем достаточно для победы в партии между сильными игроками. Слабые игроки смотрят на игру сквозь призму собственных ограничений. Для новичков и профанов игра, с ее неожиданностями и обоюдными ошибками, похожа на американские горки, где маятник фортуны качается то в одну, то в другую сторону.
Если вы разрабатываете шахматную машину с таким романтическим видением игры, научная точность для вас менее важна, чем моменты озарения. Вы считаете, будто случайные промахи не так уж страшны, поскольку противник ответит вам тем же, — предположение, которое может обернуться самореализующимся пророчеством. Подход типа B предполагает, что вся система непредсказуема, поэтому нужно как можно раньше выбрать ходы, на которых следует сосредоточиться. Вместо того чтобы найти 20 или даже десять лучших ходов и исследовать их, программа Котока — Маккарти начинала всего с четырех. То есть она смотрела вперед на один полуход и выбирала четыре лучших варианта, затем находила по три лучших ответа на каждый из этих вариантов; далее искала на них по два лучших ответа и т. д., постепенно углубляя и сужая поиск.