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

Алгоритмы: от сортировки пузырьком до численных методов

Модераторы: C_O_D_E, DeeJayC

Ответить
DeuSeX
Сообщения: 4
Зарегистрирован: 04 сен 2004, 00:50

04 сен 2004, 00:57

Уважаемые участники форума, помогите мне с поиском и выбором алгоритма для создания ИИ к шахматам (можно на Си или Java, но с коментариями).
Jevgenij
Сообщения: 12
Зарегистрирован: 01 сен 2004, 12:13

04 сен 2004, 13:42

К сожалению на и С не писал. Писал давно в универе на Паскале. Могу описать общие принципы.

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

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

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

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

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

6. Да. В начале научи прогу просто находить все возможные ходы, понимать шах и мат. Так легче будет тестить остальное.
Andy
Сообщения: 238
Зарегистрирован: 17 фев 2004, 08:15
Откуда: Минск

05 сен 2004, 11:45

DeuSeX, примеры шахматных программ с исходниками и коментариями есть в инете. Также с Borland C раньше поставлялся такой пример. Важный вопрос - для какой цели нужен алгоритм? Если это просто учебная программа, то надо найти что-нибудь готовое. Если планируется создание нормальной программы, то тут уже важна ваша шахматная квалификация (или квалификация консультанта), так как потребуются библиотеки дебютов, эндшпилей и т.п.
*provided AS IS
DeuSeX
Сообщения: 4
Зарегистрирован: 04 сен 2004, 00:50

05 сен 2004, 23:43

Прошу прощения за анонимность, пост гостя мой, просто забыл залогиниться :D
Jevgenij
Сообщения: 12
Зарегистрирован: 01 сен 2004, 12:13

06 сен 2004, 15:07

Сорри, но вот на счет исходников помочь не могу - погибли вместе со старым хардом.. Согласен с Andy - в нете хватает примеров - посмотри, может что и пригодится. Но лично я бы писал сам - интереснее. А на счет дебютных библиотек - уже есть мрого готовых баз со своим форматом. Надо только научится его читать.
Удачи, надеюсь ты вдохновился!
DeuSeX
Сообщения: 4
Зарегистрирован: 04 сен 2004, 00:50

08 сен 2004, 18:34

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