2010-01-08 2 views
12

Я просто хотел узнать имя алгоритмов .. спасибоИзвестный лучший алгоритм (ы) для компьютерных шахмат?

+0

Прежде чем перейти в свой «алгоритмический» режим, большинство (но не все) шахматных программ полагаются на эвристику, а именно обширную библиотеку шахматных открытий. – mjv

ответ

3

Minimax

Если вам необходимо углубленное знание о алгоритмах искусственного интеллекта, я думаю, что "artificial intelligence modern approach" книги является лучшим источником.

+2

Это будет * одна * часть алгоритма игры в шахматы. Однако минимакс не сам по себе шахматный алгоритм. – Tarydon

1

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

Rybka представляется соперником.

+0

Я согласен Википедия - хорошее место, чтобы посмотреть, но Рыбка закрыт, поэтому, вероятно, не так много помогает –

+0

@Dave: Правда, но она решает проблему anarhikos *, просто желая узнать название алгоритмов *. – Tarydon

+1

@ Tarydon - Rybka - это имя движка _chess. Поскольку он закрыт, никто не знает (кроме автора), какие алгоритмы он использует. –

20

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

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

+0

Эквивалент минимакса называется negamax. Разница в том, что оценка сбрасывается при каждой смене глубины в дереве. Таким образом, оба игрока пытаются максимизировать счет (где минимаксный пытается его минимизировать). Я не уверен, что это делает с окном alpha/beta. Становится ли это единственной ценностью? – phkahler

+2

следует отметить, что функция определения местоположения, вероятно, является самым важным аспектом шахматного двигателя при определении его силы. Фактически, это, вероятно, единственная область, где сейчас новизна в большинстве шахматных движков. Например, функция оценки положения Рыбки была разработана более 5 лет (если irc) очень сильными игроками. В некотором смысле функция оценки - это то, что дает компьютерную интуицию о позиции шахмат, фундаментально важной части любой шахматной игры и ортогональной другим вопросам, таким как тактика в игре. – ldog

+0

@gmatt - только частично верно ... агрессивная обрезка - это часть того, что делает Рыбку настолько сильной, и исследования в этом не слишком старые. Расширенное обрезка бесполезности, ограниченное разборчивость и адаптивная нулевая обрезка были самыми современными менее чем десять лет назад – tbischel

0

Посмотрите на некоторые из бесплатных шахматных кодов, например Crafty или еще лучше, как насчет Fruit? Он играет почти такую ​​же силу Рыбки. Но есть много новых водорослей. День придет, когда игрокам в шахматы просто нужно будет сказать, что я не играю против этого двигателя, и эта статья в значительной степени подводит итог ->http://www.mychessblog.com/man-versus-machine-when-a-computer-will-become-world-chess-champion/

0

Множество алгоритмов, которые используются в шахматном программировании, описано на сайте http://chessprogramming.wikispaces.com/ , Существует несколько программ с открытым исходным кодом, которые реализуют эти алгоритмы.

Смежные вопросы