🧠 COMPUTER SCIENCE

Как компьютер играет в шахматы лучше человека

В 1997 году машина впервые обыграла чемпиона мира по шахматам. Сегодня даже программа на твоём телефоне разгромит любого гроссмейстера. Разбираемся, как у компьютера это получается и в чём он реально сильнее человека.

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

Игра, в которой нельзя просто посчитать всё

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

В шахматах на каждом ходу есть в среднем около 30 разумных вариантов. После твоего хода и ответа соперника получается уже 30 умножить на 30 — это 900 позиций. Через пять ходов с каждой стороны счёт идёт на сотни миллиардов. А партия длится десятки ходов. Число возможных партий настолько чудовищно велико, что превышает количество атомов во всей наблюдаемой Вселенной.

Даже самый мощный компьютер, считай он хоть с начала времён, не успел бы перебрать все шахматные партии до конца.

Значит, грубая сила в лоб не работает. Машине, как и человеку, приходится быть умной, а не только быстрой. И вот тут начинается самое интересное.

Дерево ходов и умение заглядывать вперёд

Компьютер представляет игру как огромное дерево. Корень — текущая позиция. От него расходятся ветки — все возможные ходы. От каждого хода — ответы соперника, и так далее. Программа не доходит до самого конца, а заглядывает вперёд на несколько ходов — скажем, на 15–20, — и останавливается.

Но как понять, какая из тысяч получившихся позиций хорошая? Здесь работает функция оценки. Это формула, которая смотрит на позицию и выдаёт число: насколько всё хорошо для играющего. Она учитывает кучу факторов:

  • сколько у кого фигур и насколько они ценные (ферзь дороже пешки);
  • насколько в безопасности король;
  • контролирует ли игрок центр доски;
  • активны ли фигуры или зажаты в углу.

Дальше включается главный трюк — алгоритм минимакс. Идея простая и почти человеческая: компьютер исходит из того, что соперник тоже играет наилучшим образом. Поэтому он выбирает ход, который даёт лучший результат при условии, что противник будет отвечать максимально вредно. Машина как бы рассуждает: «Если я пойду сюда, лучший ответ соперника оставит меня вот в такой позиции. А если сюда — вот в такой. Выберу ту, что выгоднее даже против сильнейшего ответа».

Чтобы не тратить время на заведомо плохие ветки, придумали альфа-бета-отсечение. Это как искать самую дешёвую вещь в магазине: если ты уже видишь, что эта полка дороже найденного минимума, нет смысла перебирать её до конца — переходишь к следующей. Так компьютер отбрасывает миллионы бесперспективных вариантов и тратит силы только на важные.

Глубокая синяя машина против чемпиона

В 1997 году произошло историческое событие. Компьютер компании IBM по имени Deep Blue обыграл в матче действующего чемпиона мира Гарри Каспарова — одного из сильнейших шахматистов в истории. Машина просчитывала около 200 миллионов позиций в секунду.

Deep Blue был именно таким «считающим» компьютером: гигантское дерево ходов, оценочная функция, отточенная с помощью гроссмейстеров, и грубая вычислительная мощь. Он не понимал красоту партии и не чувствовал азарта. Он просто считал глубже и точнее, чем способен человек. И этого хватило, чтобы переломить игру, в которой люди считались непобедимыми царями интеллекта.

Это был поворотный момент: стало ясно, что в задачах, где можно чётко описать правила и цель, машина способна превзойти даже гениев.

AlphaZero: компьютер, который научился сам

Долгое время шахматные программы становились всё сильнее, но работали по одному принципу: люди вручную закладывали в них знания — оценочные функции, дебютные библиотеки, правила. А потом, в 2017 году, появилась AlphaZero от компании DeepMind, и подход перевернулся.

AlphaZero никто не учил играть. Ей дали только правила шахмат и сказали: играй сама с собой. Она сыграла сама против себя миллионы партий, каждый раз запоминая, какие ходы вели к победе, а какие к поражению. Внутри неё работала нейросеть — программа, устроенная отдалённо похоже на сеть нейронов в мозге, которая учится на опыте, а не следует жёстким правилам.

Представь, что ты учишься кататься на велосипеде. Никто не может дать тебе формулу равновесия — ты просто пробуешь, падаешь, чувствуешь, и через сотни попыток тело само понимает, как держаться. AlphaZero делала то же самое, только вместо велосипеда были шахматы, а вместо тела — нейросеть, и «попыток» у неё были миллионы за считаные часы.

Уже через несколько часов самообучения AlphaZero играла на уровне выше любых прежних программ. Причём играла красиво и рискованно — жертвовала фигуры ради позиции так, как раньше осмеливались только самые смелые гроссмейстеры. Машина не просто считала — она будто бы выработала собственное чувство игры.

Так в чём же компьютер сильнее человека?

Дело не в том, что машина «умнее». У неё нет интуиции в человеческом смысле и она не радуется победе. Её сила — в сочетании двух вещей, которые человеку даются тяжело:

  • Гигантская скорость и точность счёта. Человек удержит в голове несколько вариантов на пару ходов вперёд. Машина — миллионы вариантов на десятки ходов, не уставая и не отвлекаясь.
  • Отсутствие усталости и эмоций. Человек к пятому часу партии устаёт, нервничает, зевает фигуры. Компьютер на тысячном ходу считает так же безупречно, как на первом.

А ещё современные программы вроде AlphaZero добавили к этому умение учиться на собственном опыте — то, что раньше считалось чисто человеческим. Получился сплав холодного расчёта и обучения, против которого человеку уже не выстоять за доской.

Но есть и хорошая новость. Компьютер сильнее человека в шахматах — в мире с понятными правилами и чёткой целью. А вот придумать новую игру, пошутить, утешить друга или понять, почему тебе грустно, машина пока не может. Шахматы оказались не вершиной человеческого ума, а отличным полигоном, на котором мы научились строить умные алгоритмы. И эти же идеи — дерево решений, оценка вариантов, обучение на опыте — сегодня помогают распознавать болезни, переводить языки и водить машины. Так что проиграть компьютеру в шахматы не обидно. Это мы его таким сделали.

#computer science#алгоритмы#искусственный интеллект#нейросети#шахматы
Понравилась статья?
В Telegram-канале — лучшее из журнала и анонсы новых учебников.