Альтернативные подходы к программированию шахматного движка

14

Насколько я понимаю, грубо говоря, шахматные движки работают по:

  1. вычисление всех возможных вариаций (дерева игр) до некоторой глубины
  2. оценка окончательной позиции на основе некоторых критериев (материал, штучная деятельность ...)
  3. на основании этой оценки определиться с лучшим ходом

Я полностью понимаю, что для эффективного двигателя существуют способы обрезки определенных линий, ограничения глубины и т. Д .; но это не мой вопрос.

Вопрос: есть ли альтернативные попытки запрограммировать (не обязательно сильный, но не случайный) шахматный движок, который не следует этой схеме?

user1583209
источник
Ботвинник попытался сократить исходный ход, предложив компьютеру найти только лучший ход кандидата. Не было успешной попытки этого, и шахматы лучше для этого.
Фред Найт

Ответы:

13

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

Недавно была предпринята еще одна попытка дать возможность движку обучать себя шахматам с помощью Deep Learning (вероятно, обнадеживает успех Google Go AI ). Согласно статье, на которую я ссылался, они были довольно успешными и сумели достичь силы IM.

Глорфиндель
источник
1
Насколько я понимаю, Alpha Go работает точно так же, как описанный OP, и только функция eval из (2.) основана на / создана с помощью Deep Learning. Другой ответ вроде бы согласен.
Герман Деппес
According to the article I linked to, they were quite successful and managed to reach IM strengthно если вы прочтете оригинальную статью, вы увидите, что статья сильно преувеличивала успех.
Сальвадор Дали
1
@ HermannDöppes Нет, AlphaGo основан на поиске дерева Монте-Карло.
HelloWorld
3

@ Глорфиндель не ошибается, но глубокий подход к шахматам - действительно интересный термин для настройки параметров в шахматном программировании.

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

Другие возможности:

  • GPU шахматное программирование
  • Поиск дерева Монте-Карло
Привет, мир
источник
Большая часть вашего ответа должна быть комментарием под [ответом Глорфинделя] ( chess.stackexchange.com/a/16293/2789 . Часть, которая фактически затрагивает вопрос, состоит всего из семи слов, что недостаточно для ответа. «Шахматное программирование на GPU» - это просто способ распараллеливания любого алгоритма, который вы могли бы использовать, поэтому я не думаю, что это действительно «подход» в том смысле, в котором ищет вопрос, скорее это просто метод реализации.
Дэвид Ричерби
-2

Конечно! Если вы действительно имеете в виду .... "в теории, есть ли другие способы кодирования шахматного движка?" ... Тогда да !!

Например ... можно хранить копию каждой возможной позиции в шахматах (я знаю, огромное количество) и иметь оценку для каждой. Тогда его ответ на любой заданный вопрос (т. Е. «Лучший ход для белых в позиции Х») будет сразу же известен, просто взглянув на эту доску. Является ли текущее состояние компьютерного оборудования таким, чтобы это имело какой-либо смысл? Неа. Но ты этого не спрашивал.

Ник Лопес
источник