Home
Name Modified Size InfoDownloads / Week
timer.c 2022-10-14 661 Bytes
utils.c 2022-10-14 6.7 kB
search.o 2022-10-14 31.8 kB
readme.txt 2022-10-14 8.0 kB
score.c 2022-10-14 27.4 kB
search.c 2022-10-14 29.2 kB
pvtree.h 2022-10-14 1.6 kB
obender-3.1.2.+.zip 2022-10-14 731.3 kB
pvtree.c 2022-10-14 6.2 kB
play.c 2022-10-14 5.3 kB
obender_plus.ico 2022-10-14 766 Bytes
obender_gui.exe 2022-10-14 779.7 kB
obender_plus.bmp 2022-10-14 6.6 kB
obender.ico 2022-10-14 766 Bytes
obender 2022-10-14 86.3 kB
OBender.bmp 2022-10-14 6.6 kB
Kaissa.bk 2022-10-14 181.1 kB
learn.c 2022-10-14 18.1 kB
main.c 2022-10-14 1.2 kB
hash.c 2022-10-14 2.4 kB
chess.h 2022-10-14 4.4 kB
genmov.c 2022-10-14 15.3 kB
start.cmd 2022-05-27 30 Bytes
winboard.ini 2022-05-18 12.0 kB
obender_private.h 2022-05-10 567 Bytes
obender_scr.png 2022-05-10 8.2 kB
Totals: 26 Items   2.0 MB 1

                 *** OBender ***

chess-engine for WinBoard(XBoard)
copyrigh(c) Korniloff E,
mail: evgeniy-korniloff@yandex.ru
Last modified:  8.10.2022

modified version 2.09.x

compile: 
         Visual C 2010, (create empty console project and add all *.c files,
                         set build Release )
         or gcc gnu compiler
         !WARNING     obender.exe  most be old, recompile!

         cd to obender_dir and type

          gcc *.c -O3 -o bender         // LINUX
          gcc *.c -O3 -o obender.exe     //WINDOWS

 
          *** Run the program with WinBoard ***

  http://www.tim-mann.org
  
  1. open teminal cmd.exe
  2. cd obender_dir
  3. enter command
       winboard.exe /fcp obender.exe          
       or
       click on start.cmd
       or on linux
         xboard -fcp ./obender & 
  
}
//////////////////////
or from command line:
           
//////////////////////
text encoding russia utf8

Добрый день!
Хочу представить свой стародавний движок, который я немного
модифицировал, так как у меня возникли некоторые идеи.
Программа является чисто учебной и служит для демонстрации
некоторых идей а также получения удовольствия от игры.
1. Поиск alpha-beta+hash+null+futility prun
2. Таблица самообучения, запоминает позиции, просчитанные функцией поиска
   и использует их в последующих поисках. Из за нестабильности
   поиска и эвристики пропуска хода, самообучение не является полным
   Теоретически, надо заставить программу в быстром режиме проиграть
   все классические дебюты и исключения из них, но мне лень
   этим заниматься
3. Дебютный справочник и выставление приоритетов разных вариантов
   для равновесной игры
   Это похоже на !!?? нейронную сеть и на то что сейчас модно
   называть Монте-Карло (хорошо не Папа КАрло, отец биржевого
   Пиннокио). 
   Считается что оценка в игре растет если скользящее среднее
   ((интегральная сумма)/период) с периодом 5 больше аналогичной
   с периодом 10. Это хорошо работает для анализа биржевых
   графиков только там используется 10 и 20 или 12 и 26(MACD)
   Также там используется корреляция скорости и ускорения (Элдер),
   но я поленился это делать.
   Вроде это работает, но добавил недавно и не тестировал.
   Также увеличил в эвристике истории приоритет матовых фигурных
   расстановок (это все что могу взять от альфаноль по природной лени :))
4. Аналог биржевого индикатора Моментум для определения хороших
   взятий, разменов и подрезки тихих ходов
5. В программе используется классическая вероятностная оценочная
   функция(подобная первой GNU CHESS, она написана 15 лет назад и 
   я ее даже не проверял, надо бы добавить определения характерных эндшпилей и
   корректировать материал, например если пешка+король против короля и пешка
   не боковая и свой король перед пешкой, до добавить к материалу ферзя - 2 пешки) 
   и неявно, для подрезки тихих ходов, итоговая
   оценка для шахмат, как некоторый предел, к которому
   оценка стремится (это просто суммарный индекс массива 0..63! для черных фигур
   минус инвертированный индекс для белых)
   Надо бы изобразить оценочную функцию в виде перцептрона и обучать коэф. градиентным спуском,
   потом как нибудь соберусь
6.   
    Я добавил диагностику хороших взятий, разменов, и 
    тихих ходов, которые предположительно не растут
    Для этого я использовал аналог биржевого индикатора моментум с периодом
    2 и 5 :))
    Например, если ход взятие и оценка материала более чем оценка 5 полуходов
    назад, то это хорошее взятие. Такое взятие дает примерно 30% вероятности что
    далее будет растущая последовательность.
    Кроме того программа запоминает позиции и их оценки и должны самообучаться
    но из за нестабильности поиска и эвристики недействительного перемещения, самообучение
    может идти медленно, так как программа может и не увидеть лучшую оценку из за подрезки поиска. 
7.  Так как сейчас популярен Монте Карло алгоритм выставления рандомизированных приоритетов
    для ветвей заканчивающихся матом, я прикрутил некготорый грубый аналог,
    заключающийся в добавление в таблицу истории ходов рандомного бонуса для
    матовых оценок. Не знаю, дало ли это что на практике, но теоретически, если
    у двух лучших ходов близкая оценка, то поиск вернет тот где мат
    более вероятен :))

///////////////
Возможные неточности и ошибки:
  Программа может терять файл самообучения если:
  1. запущена не в консоли а под WinBoard, так как WinBoard посылает команду
     quit и не дает достаточно времени чтобы записать файл (может, в системе тормозит антивирус) и выбрасывает программу из памяти (может это сигнал SIGINT, я не проверял)
  2. В Windows консоли нажать Cntrl-C. Файл самообучения обнуляется.
     Это загадка, так как файл открывается для чтения в начале и закрывается.

  Не начать в WinBoard новую игру. Надо нажать в меню New, 
  потом сделать ход, Game->pause, потом Game->machine black :((


 



   
Source: readme.txt, updated 2022-10-14