Про воблу (stockfish)

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

  1. TopicStarter Overlay

    Scaramuccia Старожил

    • Участник
    • Старожил
    Рег.:
    13.01.2012
    Сообщения:
    3.173
    Симпатии:
    2.085
    Репутация:
    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. аван Старожил

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

    Scaramuccia Старожил

    • Участник
    • Старожил
    Рег.:
    13.01.2012
    Сообщения:
    3.173
    Симпатии:
    2.085
    Репутация:
    61
    Оффлайн
    А в какую сторону? При совершении хода оценка не меняется, а он вроде бы за другую сторону должен +0.5 дававть.

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

    • Участник
    • Старожил
    Рег.:
    09.11.2010
    Сообщения:
    1.660
    Симпатии:
    187
    Репутация:
    13
    Адрес:
    Украина
    Оффлайн
    Это как раз меняет то, что он "с шашкой наголо" идет на позиции, которые считает чуть ли не выигранными, хотя на самом деле лишь с небольшим преимуществом, или считает, что у него немного лучше, хотя на самом деле немного хуже. Затем заигрывается и отгребает по полной программе.
  5. TopicStarter Overlay

    Scaramuccia Старожил

    • Участник
    • Старожил
    Рег.:
    13.01.2012
    Сообщения:
    3.173
    Симпатии:
    2.085
    Репутация:
    61
    Оффлайн
    Стоп. Забыли про оценки важны исключительно ходы которые он предлагает.

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

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

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

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

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    30.12.2009
    Сообщения:
    16.477
    Симпатии:
    8.523
    Репутация:
    530
    Нарушения:
    31
    Оффлайн
    Так, наверное, точнее будет: http://www.sdchess.ru/download_engines.htm
  9. Vladruss НедоКМС, победитель второразрядников.

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





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

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    30.12.2009
    Сообщения:
    16.477
    Симпатии:
    8.523
    Репутация:
    530
    Нарушения:
    31
    Оффлайн
  11. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
    Гуди во второй партии скандинавку играть не должен!
    кащеевцы писали, шо неверный кряк :rtfm:
  12. Vladruss НедоКМС, победитель второразрядников.

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

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

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
    Antuan нравится это.
  15. DenKor Новичок

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

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Тем не менее, плюс 8.5% скорости ребята получили. Так что практика в данном случае - критерий истины, несмотря на все умозрительные рассуждения про компилятор.
  17. DenKor Новичок

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

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

    • Участник
    • Старожил
    Рег.:
    01.12.2013
    Сообщения:
    3.961
    Симпатии:
    5.378
    Репутация:
    379
    Адрес:
    Украина
    Оффлайн
    8.5% - не критично для данного вида задачи, ИМХО.
    Скорее, реальный прогресс в создания специализированных процессоров.
  20. WinPooh В.М.

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

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

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

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

    • Новичок
    Рег.:
    02.11.2016
    Сообщения:
    11
    Симпатии:
    5
    Репутация:
    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тник

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

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
    и тут про политику :)
  27. Michael-13 Господин

    • Участник
    • Старожил
    Рег.:
    18.11.2011
    Сообщения:
    3.068
    Симпатии:
    1.098
    Репутация:
    29
    Оффлайн
  28. roman57 Учаcтник

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

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

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
    Официальная версия Stockfish 10.

    http://abrok.eu/stockfish/
    Edwards нравится это.
  31. Vladruss НедоКМС, победитель второразрядников.

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

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

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

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

    • Команда форума
    Рег.:
    13.02.2006
    Сообщения:
    9.491
    Симпатии:
    3.118
    Репутация:
    95
    Адрес:
    Москва
    Оффлайн
    Похоже на Contempt. Его надо установить в 0 в настройках.
    Edwards нравится это.
  34. Комсюк народный модератор

    • Заслуженный
    • Ветеран
    • Заблокирован
    • Старожил
    Рег.:
    17.07.2011
    Сообщения:
    19.230
    Симпатии:
    23.509
    Репутация:
    1.263
    Нарушения:
    31
    Оффлайн
    такого разброса не будет, но он действительно оптимистично оценивает свои шансы (это сделано для матчей движков)
    Нулевой контемпт выравняет оценку
    Edwards нравится это.
  35. Gottfrid Учаcтник

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

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

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

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