В настоящее время известный лучший алгоритм (алгоритмы) для компьютерных шахмат? [закрытый]

Я просто хотел изучить название алгоритмов.. спасибо

13
задан anarhikos 8 January 2010 в 08:19
поделиться

4 ответа

[

] Взгляните на некоторые из бесплатных исходных шахматных кодов, например, Crafty или даже лучше, как насчет Fruit? Играет почти та же сила, что и Рыбка. Но есть много новых алгоритмов. Придет день, когда шахматисты-люди должны будут просто сказать, что я не играю против этого движка, и эта статья в основном подводит итог --> [] http://www.mychessblog. com/man-versus-machine-когда-вычислитель-встреча-чемпион мира-шахмат/[][

]
0
ответ дан 1 December 2019 в 21:38
поделиться

Общая стратегия в игровых алгоритмах - это минимаксная стратегия, дополненная альфа-бета-сокращением . Алгоритм минимакса находит лучший ход, а отсечение альфа-бета предотвращает его попадание в ветви дерева игры, которые не могут дать лучший результат, чем предыдущие ветви.

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

21
ответ дан 1 December 2019 в 21:38
поделиться

Википедия - безопасная ставка в качестве отправной точки. Вы там смотрели?

Рыбка вроде бы претендент.

1
ответ дан 1 December 2019 в 21:38
поделиться

Вот мое решение в Clojure:

(defstruct BST :val :left :right)

(defn in-order [bst]
  (when-let [{:keys [val, left, right]} bst]
    (lazy-seq
      (concat (in-order left) (list val) (in-order right)))))

(defn is-strictly-sorted? [col]
  (every?
    (fn [[a b]] (< a  b))
    (partition 2 1 col)))

(defn is-valid-BST [bst]
  (is-strictly-sorted? (in-order bst)))
-121--2047455-

Я бы пошел с «C++ Coding Standards: 101 Rules, Guidelines, and Best Practices»: если вы можете сделать это как функция, не являющаяся членом, сделать это как функция, не являющаяся членом (в том же пространстве имен).

Одна из причин: он лучше работает с неявным преобразованием типа. Пример: имеется сложный класс с перегруженным оператором *. Если нужно записать 2.0 * aComplexNumber, оператор * должен быть функцией, не являющейся членом.

Еще одна причина: меньшее сцепление. Функции, не являющиеся членами, менее тесно связаны, чем функции членов. Это почти всегда хорошо.

-121--3033955-

Minimax

Если вам нужны глубокие знания о алгоритмах ИИ, я думаю, что «искусственный интеллект современный подход» книга является лучшим источником.

3
ответ дан 1 December 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: