Bison

Тема в разделе "Машинное отделение", создана пользователем Bison, 18 янв 2008.

  1. Алексей Н. Алексей

    • Участник
    Рег.:
    22.01.2008
    Сообщения:
    160
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Столица Сибири
    Оффлайн
    :)
    http://www.igorkorshunov.narod.ru/WildCat/cat_relax.jpg
  2. Dozent Зарегистрирован

    Рег.:
    09.02.2008
    Сообщения:
    4
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Код:
    Почему бизон не российское животное?!
    Ну если уж на то пошло - "Состоит из двух видов — европейского зубра (Bison bonasus) и американского бизона (Bison bison)."
    Никого я тут обидеть и т.п. не хотел и предлагать назвать "Медведев" не собирался. Это личное мое мнение - нужно аккуратнее подбирать имена движкам.

    Код:
    Сергей тогда не задавался целью создать супердвижок, скорее он хотел показать, что за очень короткое время можно создать движок 2300+
    Иван показал это-же самое и будем надеятся что силы и желание продолжить у него будут.

    Отправил тебе еще pgn с играми.
  3. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Выкладываю последнюю версию программы вместе с исходниками, которая фактически датируется августом прошлого года. Развитие программы приостановлено, хотя у меня и остались некоторые идеи насчет ее развития.
    Bison 9.6 играет в силу WildCat 7 и Booot 4.14 в блиц. Вот мой рейтинг-лист
    Код:
       rating           +  /  -    Score/Games
       2685.2       -68    64   38.0/ 138.0  27.5% Scorpio 1.9 
       2662.3       -24    24  392.0/ 830.0  47.2% Bison 9.6   
       2651.3       -15    15 1029.5/1979.0  52.0% Booot 4.14.0
       2644.3       -17    18  811.0/1511.0  53.7% Booot 4.13.0   
       2636.8       -17    18  755.0/1509.0  50.0% WildCat 7
    По идеи должен играть сильнее пунктов на 50 минимум :) но где-то в поисковых алгоритмах заметно теряет.
    Из интересного можно отметить файл auto.h с функцией автоматического подбора параметров ОФ. С автоподбором я получил прирост в силе ~30 пунктов Эло за пару дней счета. Надеюсь, что ничего впосоледствие в том хидере не менял, потому что заново проверять генерацию желания нет.

    Ссылка для скачивания https://sourceforge.net/project/showfiles.php?group_id=264963
  4. Fruit Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    11.02.2006
    Сообщения:
    2.196
    Симпатии:
    53
    Репутация:
    3
    Оффлайн
    А как происходил автоподбор?
  5. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Запускал турнир из 40 версий программы, кажется по 5 полуходов на обдумывание. По результатам отсеивал худшие версии и видоизменял лучшие. В общем делал примерно так, как на этом форуме предлагал делать Сергей Нефедов. Все это есть в файле config.txt
  6. Осипов Юрий Учаcтник

    • Участник
    Рег.:
    18.06.2007
    Сообщения:
    396
    Симпатии:
    466
    Репутация:
    11
    Адрес:
    Правда
    Оффлайн
    Немного почитал исходники. Очень симпатичный движок. И хороший потенциал для развития.
  7. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Спасибо на добром слове. Это наверное потому, что многое было почерпнуто из Стрелки ;)
    А так, если попытаться объективно оценить его силу по исходникам, то он действительно своего недобирает, во всяком случае в коде тех же Глаурунга и Фрукта нет такой эвристики, которой не было бы в Бизоне за исключением не особо значимых вещей (типа простейших эндшпилей). Ему только не хватает функции тестирования поиска по набору позиций (тактика хромает), которую я так и не дописал. Может кто-нибудь теперь и приделает.
  8. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Да, забыл сказать, движок надо запускать в одной папке с 'Parameters.txt', который можно скачать там же. Так что параметры оценочной функции можно менять даже не перекомпилируя исходники.
  9. Осипов Юрий Учаcтник

    • Участник
    Рег.:
    18.06.2007
    Сообщения:
    396
    Симпатии:
    466
    Репутация:
    11
    Адрес:
    Правда
    Оффлайн
    Ну чего он не добирает, видно невооруженным глазом.

    Во-первых, скорость можно увеличить за счет оптимизации основных функций.
    Во-вторых, перебор можно сильно сократить за счет более агрессивных отсечений.

    А что понравилось - material.h. Интересно сделано.
  10. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Насчет увеличения скорости, возможно я где-то упустил более агрессивную оптимизацию, но не думаю, что там можно много взять. А вот сокращение перебора - это действительно хорошая идея, я даже примерно догадываюсь, что там нужно сокращать, и даже успел наваять класс EvalInfo, только вот желания этим заниматься особого нет.
    Самая большая потеря идет где-то в sort.h и search.h + возможно есть какой-то баг в trans.h

    А что именно так понравилось, если не секрет? Особо нового там вроде мало
  11. Осипов Юрий Учаcтник

    • Участник
    Рег.:
    18.06.2007
    Сообщения:
    396
    Симпатии:
    466
    Репутация:
    11
    Адрес:
    Правда
    Оффлайн
    А откуда же тогда всё это? В Стрелке сделано не так, а хуже. Нечто похожее я видел только в Рыбке 3.
  12. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Приятно слышать о таком родстве с Рыбкой. Я, наверное, телепат. Так или иначе претензий к материалу особых нет, в партиях с Рыбкой и Стрелкой, у которых есть вшитые таблицы, особо не влетает в невыгодные размены, если только из-за плохого счета.
  13. Осипов Юрий Учаcтник

    • Участник
    Рег.:
    18.06.2007
    Сообщения:
    396
    Симпатии:
    466
    Репутация:
    11
    Адрес:
    Правда
    Оффлайн
    Похоже, Бизон скомпилирован с опцией /MD. Из-за этого возникают трудности с запуском движка у тех, у кого нет библиотек Студии.
    Иван, надо бы перекомпилировать с /MT.
  14. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Закачал исправленную версию вместо старой
  15. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
  16. Aleksandr Sh. Учаcтник

    • Участник
    Рег.:
    15.01.2007
    Сообщения:
    129
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Код:
    1: Cyrano 0.6b17   171.0/240 ········ 17-10-13  21-8-11   28-5-7  25-11-4  21-5-14   30-1-9  18556,
    2: Crafty 22.6     160.0/240 10-17-13 ········  20-12-8  23-7-10  22-10-8   30-5-5   30-4-6  17067,
    3: Sloppy 0.2.0 JA 144.5/240  8-21-11  12-20-8 ········  24-6-10  25-3-12  21-7-12  22-6-12  15379,
    4: Bison 9.6       109.0/240   5-28-7  7-23-10  6-24-10 ········ 20-10-10   24-9-7  22-12-6  11570,
    5: Arasan 11.3     94.5/240   11-25-4  10-22-8  3-25-12 10-20-10 ········  16-17-7  21-13-6  10866,
    6: DanaSah 4.24    88.0/240   5-21-14   5-30-5  7-21-12   9-24-7  17-16-7 ········ 16-11-13  10072,
    7: Kiwi 0.6d       73.0/240    1-30-9   4-30-6  6-22-12  12-22-6  13-21-6 11-16-13 ········  8481,5
    
    1+1
  17. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Решил выложить забавную партию, которых, конечно, играется великое множество, да и контроль
    1'+0'' не делает ее серьезней. Тем не менее что-то в партии навело меня на идею запостить ее.
    Наверное, то, что после хода Nxe5 я уже отдал победу Scorpio.
    .
    Код:
    [Event "1 Minutes/Game"]
    [Site "353 TacMov2"]
    [Date "2009.07.26"]
    [Round "2.1"]
    [White "Scorpio 1.9 UCI"]
    [Black "Bison 9.7.25x TM2 11"]
    [Result "0-1"]
    
    1. Nf3 d5 2. g3 Nf6 3. Bg2 c6 4. O-O Bg4 5. d3 Nbd7 6. Nbd2 
    e5 7. h3 {-0.01/11 3s} Bxf3 {-0.04/12 2s} 8. Bxf3 {-0.06/11 
    1s (Nxf3)} Bd6 {-0.03/11 1s (Be7)} 9. e4 {+0.07/10 1s} d4 
    {+0.17/11 2s (O-O)} 10. Nc4 {+0.30/10 1s} Qe7 {+0.16/11 1s 
    (Be7)} 11. c3 {+0.37/9 1s (Bd2)} O-O {+0.10/10 1s} 12. Nxd6 
    {+0.36/9 1s (cxd4)} Qxd6 {-0.12/10 0s} 13. Qc2 {+0.33/9 1s 
    (cxd4)} Qe6 {-0.04/10 1s (a5)} 14. Bg2 {+0.48/9 1s (Kg2)} 
    a5 {-0.13/10 1s (c5)} 15. Bd2 {+0.49/9 1s} a4 {-0.21/10 1s 
    (b6)} 16. cxd4 {+0.56/9 1s (Rfb1)} exd4 {-0.25/11 1s} 
    17. Rfc1 {+0.55/9 1s (f4)} Rfc8 {-0.39/10 1s (Rfe8)} 18. f4 
    {+0.64/9 1s (b4)} b5 {-0.68/10 0s (c5)} 19. b4 {+0.62/9 1s 
    (e5)} a3 {-0.25/10 1s} 20. Rab1 {+0.83/10 1s (Qb3)} Ra6 
    {+0.08/10 1s (Qe8)} 21. Qb3 {+1.14/10 1s} Qe7 {+0.46/11 0s 
    (Nb6)} 22. e5 {+1.38/11 1s} Nh5 {+0.40/11 1s (Ne8)} 23. g4 
    {+1.36/11 1s (Kh2)} Ng3 {+0.26/11 1s} 24. Bf3 {+1.56/10 1s 
    (Qd1)} h5 {+0.28/10 0s} 25. Be1 {+1.55/10 0s} Nxe5 
    {+0.38/11 1s (h4)} 26. fxe5 {+1.87/9 0s} Qxe5 {+0.78/11 1s} 
    27. Qd1 {+1.97/9 0s (Bf2)} h4 {+0.63/9 1s (Re8)} 28. Bd2 
    {+2.45/9 0s (Bf2)} Re8 {+1.16/9 0s} 29. Rc5 {+2.43/9 0s 
    (Qe1)} Qd6 {+0.37/10 0s (Qe6)} 30. Bg5 {+2.73/9 0s (Kg2)} 
    Ne2+ {0.00/10 0s} 31. Bxe2 {+2.77/10 0s} Qg3+ {+0.92/11 1s} 
    32. Kf1 {+2.96/10 0s} Qxh3+ {+1.05/10 0s (f6)} 33. Ke1 
    {+2.96/10 0s} f6 {+1.11/10 0s} 34. Qb3+ {+3.21/10 0s} Kh7 
    {+1.13/10 0s (Kf8)} 35. Qf7 {+3.65/9 0s} Rxe2+ {+1.15/10 
    0s} 36. Kxe2 {+4.58/9 0s} Qxg4+ {+1.39/10 0s} 37. Kd2 
    {+4.49/9 0s} Qg2+ {+1.27/9 0s} 38. Kd1 {+4.51/10 0s (Kc1)} 
    Qg4+ {+1.47/11 0s (fxg5)} 39. Kc2 {+4.88/10 0s} fxg5 
    {+1.16/8 0s} 40. Re1 {+4.73/9 0s (Kb3)} Qg2+ {+1.48/9 0s} 
    41. Kc1 {+4.52/10 0s} Qg4 {+1.98/10 0s (Ra8)} 42. Kb1 
    {+5.61/9 0s (Re8)} h3 {+1.61/9 0s (Rb6)} 43. Rcc1 {+5.86/9 
    0s (Rc2)} c5 {+1.64/10 1s} 44. Re7 {+5.57/10 0s (bxc5)} Rg6 
    {+1.32/9 0s} 45. Re8 {+3.68/11 6s (bxc5)} Rf6 {+2.02/8 0s} 
    46. Qg8+ {+3.68/10 0s} Kg6 {+0.73/8 0s} 47. Ree1 {+3.68/8 
    0s (bxc5)} Qf3 {0.00/8 0s (Qg3)} 48. Rxc5 {+3.73/7 0s 
    (Qe8+)} Qxd3+ {-0.26/8 0s} 49. Kc1 {+3.49/8 0s} h2 {-0.26/7 
    0s} 50. Qe8+ {+3.04/8 0s (Qh8)} Kh7 {-0.39/7 0s} 51. Rc2 
    {+0.89/11 3s (Qe5)} Rh6 {0.00/9 0s} 52. Rh1 {+0.62/10 0s} 
    g4 {0.00/10 0s} 53. Qa8 {+0.62/8 0s (Rcxh2)} g3 {-1.70/8 0s 
    (Qe3+)} 54. Qg2 {+0.17/8 0s (Qd5)} Rh4 {-1.70/7 0s (Qe3+)} 
    55. Rc5 {-0.21/7 0s (Qd5)} Qe3+ {-1.74/7 0s} 56. Kd1 
    {-3.03/11 2s (Kc2)} g6 {-1.50/7 0s (d3)} 57. Rc7+ {+0.87/6 
    0s (Qb7+)} Kh6 {-2.28/5 0s} 58. Qb7 {0.00/8 0s (Rc5)} Re4 
    {-3.71/6 0s (Qd3+)} 59. Rh7+ {0.00/7 0s} Kg5 {-1.71/4 0s} 
    60. Qxb5+ {0.00/7 0s} Re5 {-3.98/8 1s (Kg4)} 61. Qf1 
    {-3.70/8 1s (Qc6)} Qe4 {-5.76/8 0s (Rf5)} 62. Kc1 {-9.19/6 
    0s (Rh3)} g2 {-9.15/9 0s} 63. R7xh2 {+0.01/1 0s (Qxg2+)} 
    Qe3+ {-M7/6 0s} 64. Kb1 {+0.01/1 0s} gxf1=Q+ {-M6/6 0s} 
    65. Rxf1 {+0.01/1 0s} Qd3+ {-M5/5 0s} 66. Ka1 {+0.01/1 0s 
    (Rc2)} Qxf1# {-M0/4 0s} 0-1
    Кстати, вопреки своим словам в этой теме, я продолжил работу с Бизоном, так что ждите скоро новую версию.
  18. ChessTerminator75 Андрей

    • Участник
    Рег.:
    22.05.2007
    Сообщения:
    121
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Челябинск
    Оффлайн
  19. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
  20. ChessTerminator75 Андрей

    • Участник
    Рег.:
    22.05.2007
    Сообщения:
    121
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Челябинск
    Оффлайн
    Список изменений выглядит так, но, по-моему, они слишком лаконичны. :)

    Improvements:
    - search window in root (see RootSearch())
    - new evaluation function's parameters
    - bugfixed function GetMove()
    - new pruning's (see "Victim delta pruning" and "Eval pruning")
    - improved History pruning
    - a lot of small improvements

    Если не затруднит, опишите подробнее изменения, которые вы сделали в программе, и какой они дали эффект.
  21. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Да, конечно. Постараюсь даже с рейтинговыми примерами
    Код:
       
       Elo       Av.Op.   -     +    Score/Games                Name
       2782.6    2716.9   -16    17 1077.5/1821.0  59.2%   Glaurung 1.2.1
       2776.0    2769.9   -30    30  261.0/ 513.0  50.9%   Bison 9.7.28w SecHist (он же 9.8)
       2770.9    2780.3   -21    21  526.5/1074.0  49.0%   Bison 9.7.27x AspSear
       2745.9    2737.0   -23    23  445.5/ 869.0  51.3%   Bison 9.7.21q sFuLMR
       2717.2    2709.0   -36    37  174.5/ 341.0  51.2%   Bison 9.7.15t SorInP
       2707.0    2693.8   -28    28  303.0/ 584.0  51.9%   Bison 9.7.7a SVL 300
       2694.8    2674.3   -16    16  964.0/1821.0  52.9%   Bison 9.6 EPHv3 BV
       2680.2    2691.4   -15    14 1013.0/2093.0  48.4%   Bison 9.6
    Каждая вышестоящая версия содержит изменения предедущих. Основные новшества опишу ниже, но возможны
    и незначительные изменения, о которых я уже не помню (например дополнение таблицы материала).
    Bison 9.6 EPHv3 BV - версия с "Eval pruning" (нечто похожее видел в Stockfish'e, но уже после того, как это появилось в Бизоне, честно ;) )
    Bison 9.7.7a SVL 300 - версия с добавлением "Victim pruning" (название мое, т.к. нигде ничего похожего я не видел). С этой эвристикой связана просадка в скорости версии 9.8 по сравнению с 9.6. В последующих за SVL 300 версиях я еще немного выжал из "Victim pruning", введя в ОФ бонус за атаку чужих фигур и пешек.
    Bison 9.7.15t SorInP - здесь исправил ошибку в сортировке. Суть ее в том, что при генерации "тихих" ходов, вместе с ними повторно генерировались ранее рассмотренные киллеры и trans-ходы.
    Bison 9.7.21q sFuLMR - переделал Futility pruning и Late Moves Reduction
    Bison 9.7.27x AspSear - здесь были единовременно введены узкое окно поиска в root и бонус за атаку фигур и пешек, о котором я писал выше
    Bison 9.7.28w SecHist - переделал History pruning (ту часть, что в sort.h) и добавил более агрессивный прунинг с использованием все той же информации от "victim pruning". Так что суммарно этот самый "victim pruning" дал 20-30 пунктов (плюс еще остается резерв на будущее), даже с учетом замедления программы.
    В том текстовом файле я забыл о новой ОФ для ладейника, но, видимо, не зря, т.к. прирост от нее настолько мал, что в нем есть сомнения. Все параметры в ней поставил, что называется, "от балды", а следовало бы
    использовать автоподбор. Бонуcы за атаку чужих фигур тоже ждут автоподбора.
    Если что-то нужно пояснить подробнее, спрашивайте, я всегда готов помочь.
  22. TopicStarter Overlay

    Bison Учаcтник

    • Участник
    Рег.:
    18.01.2008
    Сообщения:
    49
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Как раз в тему. Нужны позиции для ладейного окончания (ладья с пешками против ладьи с пешками), чтобы можно было использовать их в автоподборе. Если у кого-нибудь есть, буду очень признателен.
  23. ChessTerminator75 Андрей

    • Участник
    Рег.:
    22.05.2007
    Сообщения:
    121
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Челябинск
    Оффлайн
    Спасибо.
    Получилось подробнее, чем я ожидал.

Поделиться этой страницей