Страница 1 из 1

Мат.модель шахмат

Добавлено: 04 сен 2004, 00:57
DeuSeX
Уважаемые участники форума, помогите мне с поиском и выбором алгоритма для создания ИИ к шахматам (можно на Си или Java, но с коментариями).

Добавлено: 04 сен 2004, 13:42
Jevgenij
К сожалению на и С не писал. Писал давно в универе на Паскале. Могу описать общие принципы.

1. Нужна оценочная функция. Это пожалуй самое сложное - нельзя тупо сравнивать материально (иногда и без Ферзя позиция лучше). Нужно брать во внимание владение линиями и диагоналями, пространственный перевес и т.д.

2. Функция перебора ходов строит дерево с оценками в вершинах. Считает до определенно заданной глубины (скажем 8 полуходов). Плюс (если хочешь что бы прога играла посильнее) в последней вершине запускай ФОРСИРОВАННЫЙ ВАРИАНТ (ФВ) на 3 или более полуходов (ФВ - все взятия и шахи на первом ходу). Можно на 2-4 полухода. Тогда вероятность тупых зевков уменьшится.

3. Если честно - все это будет работать медленно. По крайней мере у меня так было. Однако есть способ ускорить - обрезать заведомо плохие ветви - это делается по результатам оценочной функции. При обрезании можно также запускать ФВ.

4. Для простоты реализации советую оценивать позицию относительно белых (это разумно, если у белых оценка +0.8 то у ченых соответсвенно -0.8).

5. И вообще - поисчи в нете статьи Е.Я. Гика - очень многое я почерпнул именно из его материалов.

6. Да. В начале научи прогу просто находить все возможные ходы, понимать шах и мат. Так легче будет тестить остальное.

Добавлено: 05 сен 2004, 11:45
Andy
DeuSeX, примеры шахматных программ с исходниками и коментариями есть в инете. Также с Borland C раньше поставлялся такой пример. Важный вопрос - для какой цели нужен алгоритм? Если это просто учебная программа, то надо найти что-нибудь готовое. Если планируется создание нормальной программы, то тут уже важна ваша шахматная квалификация (или квалификация консультанта), так как потребуются библиотеки дебютов, эндшпилей и т.п.

Добавлено: 05 сен 2004, 23:43
DeuSeX
Прошу прощения за анонимность, пост гостя мой, просто забыл залогиниться :D

Добавлено: 06 сен 2004, 15:07
Jevgenij
Сорри, но вот на счет исходников помочь не могу - погибли вместе со старым хардом.. Согласен с Andy - в нете хватает примеров - посмотри, может что и пригодится. Но лично я бы писал сам - интереснее. А на счет дебютных библиотек - уже есть мрого готовых баз со своим форматом. Надо только научится его читать.
Удачи, надеюсь ты вдохновился!

Добавлено: 08 сен 2004, 18:34
DeuSeX
Спасибо за поддержку. Если слчайно встретите что-нибудь в тему прошу дать ссылочку :roll: , а пока постараюсь сам что-нибудь соорудить :D .