Про воблу (stockfish)

Тема в разделе "Машинное отделение", создана пользователем Scaramuccia, 22 апр 2012.

  1. Scaramuccia
    Оффлайн

    Scaramuccia Старожил

    Репутация:
    61
    Как пользователь линукса я регулярно сталкиваюсь с ситуацией когда типовые проги написаны под винду и считается что какую-то задачу под линуксом не решить. Компьютерный анализ одна из таких областей - оболчки виндовые, движки тоже. Обычно выясняется что мнение ошибочно и под линуксом задача спокойно решается. Не будем рассматривать сейчас запуск гудини из под wine(он отлично работает), а также проги для работы с базой(scid меня вполне устраивает)

    Героем сегодняшнего обсуждения будет вобла. Stockfish - движок который ставиться под линукс по дефолту(во всех репозиториях он есть). В теме Матч Аронян-Крамник. 21-28 апреля 2012 была высказана оценка, что вобла слабый движок. Воспользовавшись рейтинг листами я покажу что это утверждение не верно.
    Будем пользоваться следующими листами:
    http://www.husvankempen.de/nunn//40120new/40_120_ratinglist/40_120_AllVersion/rangliste.html
    (всем сайтом)
    и http://www.computerchess.org.uk/ccrl/4040/.

    На первом есть контроль 40/4 40/20 (два вида) и 40/120. На втором 40/40.
    Результат:
    40/4 - 4
    40/20 - 11
    40/20 permanent brain = o n - 5
    40/40 - 4
    40/120 - 3

    Если посмотреть зависимость результатов от контроля то видно, что вобла тугодум. Чем больше времени на матч тем лучше результат(Хороший результат на 4 минутах скорее всего обусловлен сильной оценочной функцией - там расчёта почти нет).

    Вторая важная особенность - вобла миролюбива. Процент ничьих во всех рейтингах у неё стабильно высок. По опыту использования - она не любит неясных обострений часто выбирая надёжные продолжения.

    Самые интересные результаты можно увидеть на её личной страничке второго рейтинга.А именно - несмотря на четвёртое место рейтинга она проигрывает только гудини и то на очень небольшую величину(+12−14=26). Низкий же итоговый рейтинг обусловлен тем, что вобла не вырубает хвост - со слабыми движками она часто играет в ничью, а critter, например, наоборот выносит слабых, но плохо играет с топом.

    В итоге можно сказать, что вобла сильный движок, работающий помедленнее остальных, но играющий в заметно другой манере. Если вам нужен просто неплохой анализ позиций - воблы вполне достаточно(особенно если вы не любите острые варианты). Если же вы занимаетесь серьёзным анализом(advance, турнирная/матчевая подготовка). То вобла хороший кандидат в вашу коллекцию используемых движков.
     
    tesla и Goranflo нравится это.
  2. аван
    Оффлайн

    аван Старожил

    Репутация:
    13
    Главный его недостаток - очень сильная переоценка позиции, к реальной оценке он стандартно прибавляет себе около +0,5.
    Причина этого - в чрезмерном оптимизме, за сомнительные возможности атаки он готов отдать все.
    Поэтому для анализа годится только в качестве "поставщика идей".
     
  3. Scaramuccia
    Оффлайн

    Scaramuccia Старожил

    Репутация:
    61
    А в какую сторону? При совершении хода оценка не меняется, а он вроде бы за другую сторону должен +0.5 дававть.

    С оценкой у него другая особенность - в его понимании +1.0 это гораздо меньше чем +1.0 гудини. Поскольку абсолютной шкалы все равно не существует то то что его оценки раза в два выше гудинивских по абсолютной величине ничего не меняет.
     
  4. аван
    Оффлайн

    аван Старожил

    Репутация:
    13
    Это как раз меняет то, что он "с шашкой наголо" идет на позиции, которые считает чуть ли не выигранными, хотя на самом деле лишь с небольшим преимуществом, или считает, что у него немного лучше, хотя на самом деле немного хуже. Затем заигрывается и отгребает по полной программе.
     
  5. Scaramuccia
    Оффлайн

    Scaramuccia Старожил

    Репутация:
    61
    Стоп. Забыли про оценки важны исключительно ходы которые он предлагает.

    Вот позиция из матча крамник-аронян первая партия 23 ход
    гудини говорит -0.27 и предлагает g4.
    вобла говорит -0.64 и предлагает g3.
    И тут сразу понятно, что важны не числа, а ходы. Вобще в шахматах есть только один способ дать точную оценку - выиграно или проиграно при идеальной игре. Все остальное это некие попытки осознать происходящее на доске.

    И если вспомнить как оценивает вобла -просто числа больше, меня умиляет гудинивская точность в 0.03 пешки. То видно что оба движка считают, что у белых хуже, но еще можно покрутиться.
     
  6. аван
    Оффлайн

    аван Старожил

    Репутация:
    13
    Я уже говорил: Стокфиш годится только как поставщик идей, проверять их надо с помощью Гудини.
     
  7. SDChess
    Оффлайн

    SDChess Учаcтник

    Репутация:
    6
    Предлагаем вашему вниманию новые версии компиляций Stockfish (версии 3, 4, DD и 5) для совсем старых процессоров в архаичных операционных систем (Windows 98 Windows 95), подготовленных Vicente Fernandez!
    http://www.sdchess.ru/Tournaments/test_1_top.htm
     
  8. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Так, наверное, точнее будет: http://www.sdchess.ru/download_engines.htm
     
  9. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Скачал сегодня Стокфиш 5 для ХР 32-битку - работает. Решил посмотреть как играет с Гудини. И Стокфиш расправился в двух партиях с недавно сильнейшим движком без проблем. как с ребенком. Играли с контролем 4+2, без дебютной книги.
    Что заметил - Гудок в дебюте цепляется за материал и на этом горит, а Стокфиш располагает фигуры гармонично, не цепляясь за материал. В обеих партиях он убедительно победил.





     
  10. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
  11. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.263
    Гуди во второй партии скандинавку играть не должен!
    кащеевцы писали, шо неверный кряк :rtfm:
     
  12. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    Почему не может? У меня некоторое время он ход 1...d5 рассматривает как сильнейший. Потом, правда, меняет свое решение. В какой-то момент мог и сыграть таким образом. А движок, вроде, нормально крякнут.
     
  13. clear0004
    Оффлайн

    clear0004 Учаcтник

    Репутация:
    19
    [​IMG]
    вроде ничья, до 60 глубины +0,38. А может и дальше
     
  14. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.263
    Antuan нравится это.
  15. DenKor
    Оффлайн

    DenKor Новичок

    Репутация:
    0
    Скорость что на ассемблере что на С++ будет одинаковой. Считайте что С++ в те же ассеблерные иструкции код компилирует. Другое дело что некоторые вещи можно оптимизировать под кокретные модели процессоров. Так что скорость это некривые руки програмера ...
     
  16. WinPooh
    Оффлайн

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

    Репутация:
    95
    Тем не менее, плюс 8.5% скорости ребята получили. Так что практика в данном случае - критерий истины, несмотря на все умозрительные рассуждения про компилятор.
     
  17. DenKor
    Оффлайн

    DenKor Новичок

    Репутация:
    0
    Я же не умозрительно это говорю. Сам программист на ассемблере и С++. И проблемы оптимизации программ по скорости выполнения представляю.
     
  18. WinPooh
    Оффлайн

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

    Репутация:
    95
    Так и я, представьте себе, программист. И тоже на C++. И с асмом дело доводилось иметь, правда, давно - лет 15 назад.
    Что тут обсуждать, вообще не понимаю: вот вам код Стокфиша на плюсах, вот он же на асме, берите, сравнивайте скорость и идентичность выводимого анализа.
     
    Комсюк нравится это.
  19. nh2008
    Оффлайн

    nh2008 Старожил

    Репутация:
    379
    8.5% - не критично для данного вида задачи, ИМХО.
    Скорее, реальный прогресс в создания специализированных процессоров.
     
  20. WinPooh
    Оффлайн

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

    Репутация:
    95
    Ну, как сказать... Вроде, считается, что ускорение движка в два раза даёт плюс 100 пунктов Эло. Значит, 8.5% дадут 5-10 пунктов. В борьбе за высшую строчку рейтинга может и пригодиться.
    А так, конечно, суета это всё. Суета и томление духа :)
     
  21. DenKor
    Оффлайн

    DenKor Новичок

    Репутация:
    0
    В смысле сравнивать. Большинство затыков по скорости идет не от использования языка програмирования. А от неправильных алгоритмов например ввод-вывод на медленное устройство в цикле. Я и говорю что скорость программы зависит от кривых рук програмиста больше чем от языка ВУ.
     
  22. WinPooh
    Оффлайн

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

    Репутация:
    95
    Согласен. Но, уверен, и исходный Стокфиш, и его ассемблерного собрата писали программисты с чрезвычайно прямыми руками. Растущими к тому же оттуда, откуда полагается.
     
    Rom и nh2008 нравится это.
  23. Rom
    Оффлайн

    Rom Старожил

    Репутация:
    28
    Интересно, откуда такая разница в размерах бинарников? У Асм всего 110 килобайт, а у оф. Стока в 10 раз больше, и даже без сизиги в 8 раз. Меньше избыточности? Встроенные динамические библиотеки? Что-то другое?
     
  24. minga
    Оффлайн

    minga Новичок

    Репутация:
    1
    Привет. Извиняюсь, что пишу здесь, у меня нет прав создавать новые темы. Но вопрос мой действительно относится к Стокфишу, но несколько иной.
    Меня интересует почему стокфиш одинаковую позицию каждый раз считает по разному.
    Я задю ему стартовую позицию, например такую

    position startpos moves e2e4 e7e6 d2d4 d7d5 b1c3 g8f6

    и даю команду расчитать 5 линий с глубиной 17 полуходов

    go depth 17

    так вот, для одной и той же позиции Стокфиш каждый раз выдает разный результат.

    Я уже подозревал что влияют накопленные данные в хеш памяти и чистил хеш - не помогло.
    Тогда для каждого нового рассчета я запускаю Стокфиш по новой, чтобы точно быть уверенным что исходные данные для расчета одинаковы, но все равно результаты отличаются. Это порядок команд для теста

    uciok
    setoption name Hash value 1024
    setoption name MultiPV value 5
    setoption name Threads value 4
    ucinewgame
    position startpos moves e2e4 e7e6 d2d4 d7d5 b1c3 g8f6
    go depth 17

    И каждый раз результат отличается от предыдущего. Не понятна такая нестабильность движка. Кстати такая же нестабильность наблюдается и для комодо.
    Не нашел в интернете ответ, почему же так считает и какими командами можно добиться стабильности рассчета.

    Спасибо
     
  25. Осипов Юрий
    Оффлайн

    Осипов Юрий Учаcтник

    Репутация:
    11
    Многоядерность.
    Поставьте Threads=1 и получите стабильность.
     
    Комсюк нравится это.
  26. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.263
    и тут про политику :)
     
  27. Michael-13
    Оффлайн

    Michael-13 Господин

    Репутация:
    29
  28. roman57
    Оффлайн

    roman57 Учаcтник

    Репутация:
    1
    Появился рецепт ничьей против Stockfish8 в программе Арена на компе 32bit , любопытно узнать работает ли этот рецепт на компе 64bit , вот заветные 3-х кратные повторения 1.Nf3 d5 2.d4 Bf5 3.Nh4 Bc8 ( Nf3 Bf5 ) - три раз , Stockfish8 отказывается играть по другому , правда это в режиме блиц 2минуты , буду пробовать в других режимах
     
    Camon14 нравится это.
  29. sovaz1997
    Оффлайн

    sovaz1997 Учаcтник

    Репутация:
    3
    minga, это из-за того, что используется многоядерность (алгоритм Lazy SMP). В одном потоке все стабильно.
     
  30. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.263
    Официальная версия Stockfish 10.

    http://abrok.eu/stockfish/
     
    Edwards нравится это.
  31. Vladruss
    Оффлайн

    Vladruss НедоКМС, победитель второразрядников. баннер

    Репутация:
    530
    А я, помнится, на Иммортале был единственным, кто заявлял со всей ответственностью, что мне Стокфиш нравится. Тогда про него даже и речи не было.
     
  32. Edwards
    Оффлайн

    Edwards Старожил

    Репутация:
    21
    Почему-то, что 9-й, что этот, 10-й Стокфиш у меня дают разную оценку позиции в зависимости от стороны, за которую он "играет", анализирует. "За себя" ему всегда больше нравится.

    Т.е. я даю ему позицию, где ход белых, он пишет, скажем "+0.40".
    После сделанного белыми хода по его первой линии, если дать ему анализировать уже ход чёрных, он напишет что-то около "-0.40".
    Ну и так далее.

    В 8-й версии такого не было.
    Это как-то лечится?
     
  33. WinPooh
    Оффлайн

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

    Репутация:
    95
    Похоже на Contempt. Его надо установить в 0 в настройках.
     
    Edwards нравится это.
  34. Комсюк
    Оффлайн

    Комсюк народный модератор баннер

    Репутация:
    1.263
    такого разброса не будет, но он действительно оптимистично оценивает свои шансы (это сделано для матчей движков)
    Нулевой контемпт выравняет оценку
     
    Последнее редактирование: 5 дек 2018
    Edwards нравится это.
  35. Gottfrid
    Оффлайн

    Gottfrid Учаcтник

    Репутация:
    135
    Да, он.
    В январе 2018-го года один из разработчиков (Stéphane Nicolet) сопроводил патч-commit об изменении default-значения параметра Contempt (кто как его по-русски интерпретирует: "нацеленность на атаку", "оптимистичность оценки позиции", "рискованность" и даже "степень презрения к сопернику") объёмным комментарием, в котором говорится, что на основании многих партий, сыгранных Стокфишем в TCEC, они меняют дефолтное значение параметра с 0 на 20 (до этого он был всегда равен нулю, как некое отражение "беспристрастности оценки"). С тех пор, за 2018 год, значение параметра Contempt в разных сборках Стокфиша успело "поплавать" от 12 до 24 (значение на данный момент).

    Другими словами, движку придают для результата в соревнованиях некоторую человеческую нацеленность на атаку, методом перебора и анализа устанавливая положительное значение Contempt. Вот только непонятно, почему это выносят в default-настройки данного параметра, ведь основным применением движков по-прежнему остаётся беспристрастная оценка позиции, а не победа в турнирах TCEC (где, к слову, скорее всего можно выставить перед партиями те параметры движка, которые будут необходимы).

    Правда, стоит отметить, что в апреле они ввели ещё два новых параметра в опциях: Analysis Contempt и UCI_AnalyseMode (который всё равно по умолчанию установлен в false).
     
    Последнее редактирование: 5 дек 2018
    Edwards нравится это.