Рейтинг@Mail.ru

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

Ссылки

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

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

Исходники Ifrit_m1_8
(163Kb)

Ifrit_m1_8
(100Kb)

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

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

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

Последнее обновление 27 June 2012(ревизия от 21.03m.21) (16 августа 2018 поменял хостинг на платный Fozzy Hosting Services(Хостинг Fozzy) )

На главную


Добавил Ифрита на github.com
Ifrit add to github.com

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





Rating in CCRL 40/40(June 23, 2012):
        Ifrit j2.9              2084   (+37   -37)
        Ifrit j3.6 64-bit    2211   (+32   -32)
        Ifrit j3.8 64-bit    2161   (+39   -39)
        Ifrit j4.2              2115   (+34   -34)
        Ifrit j4.3              2156   (+33   -33)
        Ifrit m1.5            2375   (+28   -28)
        Ifrit m1.6            2328   (+40   -40)
        Ifrit m1.7            2429   (+68   -67)
        Ifrit m1.8            2386   (+80   -82)
       
Rating in CCRL 40/4(May 14, 2012):
        Ifrit m1.5 64-bit     2369   (+30   -30)
       

All Ifrit Все доступные на сайте версии Ифрита.
       BIN
       bin(GENIE)
       bin_ifrit(Ifrit_C exe)
       bin_ifrit_b(Ifrit_b exe)
       bin_ifrit_j(Ifrit_j exe)
       bin_ifrit_m(Ifrit_m exe)
       Jim_Ablett_compiles(Ifrit exe)

       SRC
       src_ifrit(GENIE, Ifrit_C src)
       src_ifrit_b(Ifrit_b src)
       src_ifrit_j(Ifrit_j src)
       src_ifrit_m(Ifrit_m src)

       src Strelka_2_0 by Jury Osipov in January 2008
       Strelka_2_0

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

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

        WBEC Newspage

        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

Ifrit m1.8 - INFESTATION OF THE NANOBYTES(completed)
INFESTATION OF THE NANOBYTES

Ifrit m1.8 64-bit - 39th Amateur Series Division 6(completed)
39th Amateur Series Division 6


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 Blume)   www.playwitharena.de можно поиграть с Ифритом.


На данный момент разработка программы приостановлена.
Программу когда-то тестировали: Dragon777, Сергей Зеркалов, Anechka008.exe, GreKo.exe, Murka_2_w32.exe, fruit_21.exe.

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

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

Оставляйте сообщения в гостевой и пишите по нижеуказанному адресу.

E-mail: Andchess2006@yandex.ru