Ifrit logos by Graham Banks

Шахматная программа Ифрит (Ifrit)

Ссылки

История версий

Ifrit
История разработки.
Часть 8.

Исходники Ifrit_m1_6
(148Kb)

Ifrit_m1_6
(99Kb)

Ifrit_b - описание алгоритмов

Структура программы Ifrit_C

Логика работы программы Ifrit_C

Некоторые мысли

License

Гостевая книга

Последнее обновление 10.May.2012

Ифрит (Ifrit) - шахматный UCI движок написанный на языке С++.

Jim Ablett's Winboard Chess Projects
Ifrit m1.6 компиляция от Jim Ablett (Jim Ablett compiles: Ifrit m1.6-JA)
Windows/Linux/Android 64/32

Whats New: (Ifrit m1.6 Jim Ablett's builds)
1. Ported source code to GCC.
2. New Android compile

Rating in CCRL 40/40:

        Ifrit j2.9              2200   (+42   -41)
        Ifrit j3.1              2172   (+93   -91)
        Ifrit j3.5              2258   (+120   -112)
        Ifrit j3.6 64-bit     2333   (+33   -33)
        Ifrit j3.6              2319   (+116   -105)
        Ifrit j3.7              2235   (+83   -85)
        Ifrit j3.8              2246   (+185   -192)
        Ifrit j3.8 64-bit     2250   (+55   -58)
        Ifrit j3.9              2262   (+86   -87)
        Ifrit j4.2              2308   (+115   -110)
        Ifrit j4.3              2267   (+34   -34)
        Ifrit j4.4              2282   (+128   -125)
        Ifrit m1.5            2472   (+32   -33)
       

Ифрит представлен на сайтах:

SDchess - бесплатные шахматные программы (Free Chess)

WBEC Newspage

CCRL 40/40 Complete rating list

CEGT 40/4

RWBC-chess Ratings


Ифрит участвует в битве движков ChessWar, который проводит Olivier Deville
на сайте ChessWar
WinBoard forum

Ifrit m1_5 in OpenWar

Games group G(completed)
Final standings after round 11

Games group F
Final standings after round 11


Ifrit j4-3_x64_ja - OpenWar 08(completed)
Crosstable OpenWar 8th


Ifrit m1-5_x64_ja - OpenWar 9th Edition
OpenWar 9th Edition starts 15.11.2011 at 10:00 french time.
List of participants
Pairings
Crosstable OpenWar 9th


Ифрит играет в турнирах которые проводит Graham Banks

Ifrit j2.6 - 17th Amateur Series Division 8(completed)
17th Amateur Series Division 8

Ifrit j3.5 - 21th Amateur Series Division 7(completed)
21th Amateur Series Division 7

Ifrit j3.6 - 22nd Amateur Series Division 7(completed)
22nd Amateur Series Division 7

Ifrit j3.9 - 24th Amateur Series Division 6(completed)
24th Amateur Series Division 6

Ifrit j4.2 - 25th Amateur Series Division 6(completed)
25th Amateur Series Division 6

Ifrit j4.3 - 26th Amateur Series Division 6(completed)
26th Amateur Series Division 6

Ifrit j4.3 - 27th Amateur Series Division 6(completed)
27th Amateur Series Division 6

Ifrit m1.5 - 31st Amateur Series Division 5(completed)
31st Amateur Series Division 5

Ifrit m1.5 - REDSHIFT MYSTERY(completed)
REDSHIFT MYSTERY


UCI движок Ifrit

В серии "с" используется 0х88 генератор ходов.
В серии "b" используется bitboard генератор ходов.
В серии "j" используется bitboard генератор ходов + объектно-ориентированное программирование (object-oriented programming).
(объектно-ориентированное программирование до версии j3 и начиная с версии j3.8)
В серии "m" используется magic-bitboards генератор ходов.


Типы игры:
При игре обычно использую 256 Мб хеш-таблицу.
1. Фиксированная глубина. (Fixed depth)
Возможность задавать фиксированную глубину поиска в полуходах.
2. Блиц партии.(Blitz game)
Тестируем с контролем 1 мин + 1 сек и 5 мин + 1 сек на партию.
3. Бесконечный анализ.(Infinite analysis)
Работа в режиме анализа позиции. Вы делаете ходы, а движок оценивает позицию.

Алгоритм:
1. MiniMax. Основной перебор оптимизирован альфа-бета отсечением. При правильной реализации он не вносит дополнительной погрешности.
2. Late move reductions.
3. Hash-table(хеш-таблица).
4. Mvv/lva(most valuable victim / least valuable aggressor). Сортировка взятий наиболее ценная жертва/наименее ценный агрессор.
5. Killer heuristic(эвристика убийцы). Это просто использование лучшего хода для данной глубины.
6. Quiescence search (форсированный перебор).
    На максимальной глубине основного перебора мы продолжаем цепочку взятий, либо начинаем, если фигура под боем.
    Взятия считаются до конца.
7. Extensions(продления).
    В случае шахов глубина этой ветки увеличивается на полуход.
8. Null move(нулевой ход). Редукция 4.
9. Delta pruning используем в quiescence search.
10. Futility pruning.
11. Razoring.
12. History heuristic.

В графической оболочке Арена (автор Martin Blumewww.playwitharena.com можно поиграть с Ифритом.


Программа находится в процессе разработки
Программу тестируют Dragon777, Сергей Зеркалов, Anechka008.exe.

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

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

Оставляйте сообщения в гостевой и пишите по нижеуказанному адресу.
Я заглядываю на:
Шахматный форум на www.kasparovchess.crestbook.com
Шахматный форум на www.sdchess.net

С уважением Бренкман Андрей(Brenkman Andrey)
Мой ник(nickname) ChessTerminator75

E-mail: Andchess2006@yandex.ru

Найти: на