SmarThink v1.95

Тема в разделе "Машинное отделение", создана пользователем Сергей Марков, 24 май 2016.

  1. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    SmarThink v1.95 — версия движка от мая 2016. Основные изменения:

    — поддержка эндшпильных таблиц в формате Syzygy;
    — эндшпильные таблицы Налимова более не поддерживаются;
    — более агрессивные прямые отсечения в дереве перебора;
    — улучшено распределение времени;
    — различные оптимизации;
    — дальнейшая подстройка оценочной функции.

    Прирост в силе игры примерно 50 пунктов. При игре с самим собой на сверхкоротких контролях все 120, но это так, читерство)

    Скачать можно тут, как обычно: http://genes1s.net/smarthink.php

    [​IMG]
     
    WinPooh нравится это.
  2. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    Перезалил архив, в изначальном забыл values.txt, без него движок играет заметно слабее (если играет вообще).
     
  3. Локомотив
    Оффлайн

    Локомотив Старожил

    Репутация:
    120
    В Аквариуме не работает. Версия 1.80 работает нормально, а вот 1.90 и 1.95 не фурычат.

    [​IMG]
     
  4. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    Это версия уже с values.txt?
    Ни один exe-шник не работает?..
     
  5. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Можно с этого места чуть поподробнее? :)
    На чём проводилось обучение? Сколько времени заняло? Каковы объёмы датасетов?
    Главное, сколько пунктов Эло это даёт (отдельно от прочих изменений в программе)?
     
  6. Локомотив
    Оффлайн

    Локомотив Старожил

    Репутация:
    120
    Да, это версия с values.txt. Пока попробовал только с x64, другие не испытывал. Пробовал также загрузить движок в Hiarcs Explorer, вот что показывает.

    [​IMG]
     
  7. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    ~24 000 000 позиций, игры в основном разных версий SmarThink между собой, но и немного с другими движками, взяты позиции, в которых сделанный далее в партии ход не был взятием или превращением. Подстройка ведётся на 20-ядерном Xeon'е, в общем-то, безостановочно. Периодически добавляется какой-то новый фактор, либо удаляется, либо меняется способ его расчёта, и всё запускается снова. Я использую сочетание случайных векторов при спуске, покоординатного спуска и спуска с модификацией пары факторов. На плато примерно через 3—4 дня это дело выходит.

    В целом алгоритм похож на https://chessprogramming.wikispaces.com/Texel's+Tuning+Method, но со своими нюансами, да и использовать я его, наверное, начал раньше, чем автор Texel)

    Вот тут ещё некоторые подробности: http://www.talkchess.com/forum/viewtopic.php?t=55696&start=108

    Общий эффект от этой подстройки оценить трудно, т.к. там было очень много итераций. Но, наверное, в сумме пунктов 80 или 100.
    —- добавлено: 24 май 2016 —-
    А что будет если просто запустить exe-шник? Он запускается? Что пишет в консоли?..
     
  8. WinPooh
    Оффлайн

    WinPooh В.М. Команда форума

    Репутация:
    95
    Я вот тоже немного сейчас играюсь с этим методом, правда на меньших объёмах, порядка миллиона позиций. Случайные вектора сходятся очень плохо, покоординатный спуск гораздо быстрее (практически в том простейшем варианте, который в статье приведён). А вот с усилением проблемы, редко когда удаётся больше 10-20 пунктов таким образом набрать. Может быть, из-за того, что оценочная функция в целом очень простая, всего порядка 50 компонент. Или партий всё-таки маловато...

    По идее, метод должен работать и для ходов со взятиями и превращениями, если функционал считать с использованием qsearch. Программа будет учиться делать правильные размены... Но если только тихие ходы, то вместо qsearch можно и просто eval вызывать, это быстрее. Пробовал и так и так, результаты сравнимы.

    Типичные значения функционала у меня получаются где-то порядка 0.35 (среднеквадратичная ошибка предсказания исхода партии по всем позициям в ней), после оптимизации обычно сбрасывается несколько единиц в третьем знаке после запятой.
     
    Последнее редактирование: 24 май 2016
  9. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    Ну если юзать qsearch, то сильно скорость падает. Мне кажется, что это неоправданно. Чтобы делать правильные размены достаточно понимать, что вероятность победы зависит от конкретного набора материала на доске.

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

    Локомотив Старожил

    Репутация:
    120
    [​IMG]
    —- добавлено: 25 май 2016, опубликовано: 25 май 2016 —-
    Установил dll файл в папку smt195, проблема вроде бы решилась.
    —- добавлено: 25 май 2016 —-
    Проблема решена. Удалось запустить движок в консоли и Аквариуме. Скачал dll http://ru.dll-files.com/libiomp5md.dll.html и скопировал в папку с программой.
    —- добавлено: 25 май 2016 —-
    Сергей Марков, наверно, надо добавить эту библиотеку в архив.
     
  11. Локомотив
    Оффлайн

    Локомотив Старожил

    Репутация:
    120
    Провёл блиц-матч из 4х партий SmarThink 1,95 - Murka 3x64 - 3:1 (+3 -1). (Контроль 3+2, без книги).
    Впечатления пока довольно приятные. Играет активно, стремится к захвату пространства. Чёрными также стремится играть на перехват, а не на уравнение.
    Из отмеченных недочётов - чересчур оптимистичная оценка позиции. Равную позу оценивает как лучшую для себя, при минимальном перевесе рисует себе больше единицы. В единственной проигранной партии явно недооценил угрозы королю, рокировавшись в длинную сторону на ослабленный ферзевый фланг. В общем, неисправимый оптимист, вроде Ларсена или Боголюбова.
    Интересный тактический удар провел в следующей партии.






    43..e5! 44. Bxe5 На отход слона решает Qc8!
    44..Qc3 45.Bxd4 У белых нет ничего лучше, чем отдать качество: 45.Qe2 Bxe5 46.Qxe5 Rf1+ ; 45.Re2 Qa1+
    45..Qxe1 и т.п., остальное дело техники.

    Красивый геометрический мотив, эдакая вилка по двум диагоналям.

     
    vasa нравится это.
  12. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    exe-шники, в которых в названии есть _standalone, должны работать без неё.
     
  13. EvgeniyZh
    Оффлайн

    EvgeniyZh Учаcтник

    Репутация:
    15
    Я сколько не игрался, так у меня сходиться и не стало, на любых объемах. Счас другие методы пробую...

    Интересный факт - регулируя процент ничьих в датасете, можно регулировать агрессивность движка.
     
  14. Vlad_Imir
    Оффлайн

    Vlad_Imir Новичок

    Репутация:
    20
    smartthink.png
    C консоли этот екзешник запускается нормально, а в Арене (3.5.1) , вылетает. 180 версия SmartThink работаект нормально. Windows 7. 64 битная. Values.txt присутствует.
     
  15. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    Можно глянуть, что в View Problem Details?
     
  16. Vlad_Imir
    Оффлайн

    Vlad_Imir Новичок

    Репутация:
    20
    Problem signature:
    Problem Event Name: APPCRASH
    Application Name: SmarThink_v195_x64_standalone.exe
    Application Version: 0.0.0.0
    Application Timestamp: 5742ed1e
    Fault Module Name: SmarThink_v195_x64_standalone.exe
    Fault Module Version: 0.0.0.0
    Fault Module Timestamp: 5742ed1e
    Exception Code: c000001d
    Exception Offset: 000000000000f5d0
    OS Version: 6.1.7601.2.1.0.256.1
    Locale ID: 1049
    Additional Information 1: aab0
    Additional Information 2: aab0c111e8754e170c831ecc8b08a209
    Additional Information 3: 2796
    Additional Information 4: 2796bdc013e143e6ae50f803d930f766

    У меня бывали случаи, что архив некорректно скачивался, но я еще раз скачал с вашего сайта smt195.zip. Разархивировал rar-ом.
     
  17. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    А какой процессор на машине?
     
  18. Vlad_Imir
    Оффлайн

    Vlad_Imir Новичок

    Репутация:
    20
    Intel Core 2 Quad 6600, 4 Gb RAM
     
  19. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    Видимо, я накосячил где-то в параметрах при сборке версии x64 и из-за этого на машинах с SSE2 не работает. Я сегодня буду публиковать 1.96, попробуем это учесть...
     
  20. Vlad_Imir
    Оффлайн

    Vlad_Imir Новичок

    Репутация:
    20
    1.96 нормально работает. Спасибо.
     
  21. Stargazer
    Оффлайн

    Stargazer Учаcтник

    Репутация:
    6
    Файл SmarThink_v195_x32.exe запущенный в Win XP выводит свою инфу и совершает ошибку (из за чего ось его закрывает).
    Файл SmarThink_v196_x32.exe запущенный в Win XP ничего не выводит и сам закрывается.
    Файл values.txt, размером более чем в два раза превышающий ! сам движок (видимо призванный помочь последнему лучше думать:scratch:) рядом присутствовал.
     
  22. Сергей Марков
    Оффлайн

    Сергей Марков Учаcтник

    Репутация:
    0
    Видимо, под XP придётся делать отдельную сборку, там всё плохо уже(
    А скриншот с ошибкой можете прислать? Особенно если там можно подробности посмотреть. Также сообщите модель процессора.
     
  23. Stargazer
    Оффлайн

    Stargazer Учаcтник

    Репутация:
    6

    Proc P4 2,4GHz, Windows XP SP2 Home Edition (2005 года рухлядь) smt_err1.jpg smt_err2.jpg