English version | Русская версия  
 
Кветка логотип
Кветка

Программа для анализа шахматных партий
 
 

Настройки движка Stockfish.

Stockfish - один из самых сильных шахматных движков, к тому же являющийся бесплатным. Он использует протокол UCI. То есть, сам движок представляет из себя консольное приложение, и для комфортной работы с ним необходима графическая оболочка, поддерживающая этот протокол (подойдёт, например, Кветка или Chessbase).

Здесь мы приведём все настройки, предоставляемые Stockfish последних версий (начиная с 2.0.1). От версии к версии набор настроек сильно меняется, потому мы постараемся указать, в каких версиях та или иная настройка работает. К сожалению, авторы движка опубликовали описания не для всех настроек, так что этот текст будет неполным. Для изменения настройки необходимо передать движку команду

setoption name <имя_настройки> value <новое значение>
Подробнее про это можно прочитать в описании команды setoption протокола UCI.

Настройки последней версии (v8)

Настройки предыдущих версий

  • Passed Pawn Extension (non-PV nodes) - v2.0.1
  • Passed Pawn Extension (PV nodes) - v2.0.1
  • Passed Pawns (Endgame) - v2.0.1-v5
  • Passed Pawns (Midgame) - v2.0.1-v5
    (Passed Pawns (Middle Game) до v4)
  • Pawn Endgame Extension (non-PV nodes) - v2.0.1
  • Pawn Endgame Extension (PV nodes) - v2.0.1
  • Pawn Push to 7th Extension (non-PV nodes) - v2.0.1
  • Pawn Push to 7th Extension (PV nodes) - v2.0.1
  • Pawn Structure (Endgame) - v2.0.1, v4-v5
  • Pawn Structure (Midgame) - v2.0.1, v4-v5
    (Pawn Structure (Middle Game) до v4)
  • Search Log Filename - v2.0.1-v5
  • Single Evasion Extension (non-PV nodes) - v2.0.1
  • Single Evasion Extension (PV nodes) - v2.0.1
  • Space - v2.0.1-v6
  • UCI_AnalyseMode - v2.0.1-v5
  • Write Debug Log - v3-v7
    (Use Debug Log до v4)
  • Write Search Log - v2.0.1-v5
    (Use Search Log до v4)

Write Search Log. Возможные значения: true, false.
Use Search Log до версии 4.
Если настройка включена (true), то движок будет записывать результаты анализа позиции в файл. Имя этого файла записывается в настройке Search Log Filename. Значение по умолчанию: false.

Search Log Filename.
Имя файла, в который будут записываться результаты анализа позиции. Чтобы запись производилась, необходимо включить настройку Use Search Log. Значение по умолчанию: SearchLog.txt.

Write Debug Log. Возможные значения: true, false.
Use Debug Log до версии 4.
Если настройка включена (true), то движок будет записывать весь свой ввод и вывод в файл io_log.txt. Значение по умолчанию: false.

Debug Log File.
Имя файла, в который движок будет записывать весь свой ввод и вывод. Пустая строка означает, что вывод движка в файл не производится. Значение по умолчанию: пустая строка.

Book File.
Путь к дебютной книге, которая будет использоваться движком. Stockfish использует дебютные книги от Polyglot (расширение bin). Значение по умолчанию: book.bin.

Best Book Move. Возможные значения: true, false.
Мы не знаем, что конкретно делает эта настройка. Вероятно, если она включена и в движок загружена дебютная книга (см. настройку Book File), то движок предлагает лучший ход из неё. Значение по умолчанию: false.

SyzygyPath.
Путь к папке, в которой расположены файлы из эндшпильных баз в формате syzygy. Если папок несколько, то пути к ним нужно разделять символом ";" в системе Windows и символом ":" в Unix-системах. Значение по умолчанию пусто.

SyzygyProbeLimit. Возможные значения от 0 до 6.
Задаёт, сколько на доске должно остаться фигур, чтобы начать обращаться к эндшпильным базам. Оптимальное значение этого параметра зависит от того, какие у вас имеются базы. Если шестифигурки, то стоит указать 6. Однако если есть только пятифигурки, то лучше указать 5. Значение параметра 0 полностью отключит использование эндшпильных баз движком. Значение по умолчанию: 6.

Syzygy50MoveRule. Возможные значения: true, false.
Если настройка включена, то при доступе к эндшпильным базам в формате syzygy (см. SyzygyPath) будет учитываться правило 50-ти ходов. Значение по умолчанию: true.

SyzygyProbeDepth. Возможные значения от 1 до 100.
Эта настройка задаёт глубину анализа, начиная с которой движок начнёт обращаться к эндшпильным базам в формате syzygy (см. SyzygyPath). Чем выше параметр, тем реже движок к ним обращается. Оптимальное значение настройки тем выше, чем медленнее скорость доступа к эндшпильным базам. Так, если базы хранятся на SSD накопителе (то есть скорость доступа к ним очень высока), то оптимальным будет значение 1. Если же базы записаны на обычном жёстком диске или, что ещё хуже, на USB накопителе, то слишком частое обращение к ним может существенно замедлить анализ позиции. В этом случае настройку SyzygyProbeDepth стоит установить повыше. Измеряется в полуходах. Значение по умолчанию: 1

Min Split Depth. Возможные значения:от 4 до 7 для версий ниже 3;
 от 4 до 12 для версии 3;
 от 0 до 12 для версии 4 и выше.
Minimum Split Depth до версии 2.2.2
При использовании нескольких процессоров Stockfish ведёт себя следующим образом. Сначала анализ проводится одним потоком. Далее, по достижению глубины Minimum Split Depth анализ распараллеливается на несколько потоков (момент, когда это происходит, называется "точкой разбиения"). Максимальное их число записывается в Maximum Number of Threads per Split Point. Если после такого распараллеливания ещё остаются свободные потоки, то анализ продолжается до следующей точки распараллеливания, где один из потоков анализа разбивается дальше. Глубина измеряется в полуходах (не уверен на 100%). Изменение этой настройки может привести к более эффективному использованию многозадачности. Однако тут сложно дать какие-то рекомендации. Значение по умолчанию: 4 для версий до 4-й и 0 для более новых версий.

Max Threads per Split Point. Возможные значения от 4 до 8.
Maximum Number of Threads per Split Point до версии 2.2.2.
Максимальное число параллельных потоков, на которое разбивается анализ позиции. Подобных "точек разбиения" во время анализа может быть несколько. Подробнее про них см. описание Minimum Split Depth. Изменение этой настройки может привести к более эффективному использованию многозадачности. Однако тут сложно дать какие-то рекомендации. Значение по умолчанию: 5.

Threads. Возможные значения:от 1 до 16 для v2.0.1;
 от 1 до 32 для v2.1 - v2.2.2;
 от 1 до 64 для v3 - v DD;
 от 1 до 128 для v5 и выше.
Число потоков, которые будут параллельно производить анализ. Чем больше значение настройки, тем быстрее анализируется позиция, а следовательно возрастает сила игры. С другой стороны, большое число потоков может "тормозить" систему. Также не имеет смысла устанавливать значение больше, чем число ядер в процессоре. По умолчанию до v4 число потоков устанавливалось равным числу ядер процессора, на котором запущен движок. В более новых версиях значение по умолчанию: 1.

Use Sleeping Threads. Возможные значения: true, false.
Если настройка включена, то будут использоваться "спящие потоки". Не до конца представляю, что это значит. Однако авторы утверждают, что эта настройка может ускорить анализ на процессорах с технологией Hyper-Threading. По умолчанию настройка выключена (false).

Hash. Возможные значения:от 4 до 8192 для версий ниже v3;
 от 1 до 8192 для v3 - v DD;
 от 1 до 16384 для v5;
 от 1 до 2048 для v6 и выше (32 бит);
 от 1 до 1048576 для v6 и выше (64 бит).
Размер памяти, выделяемой для хранения хеш таблиц. Косвенно влияет на силу игры (больше памяти - сильнее игра). Измеряется в мегабайтах. Значение по умолчанию: 32 для версий до v6 и 16 для v6 и выше.

Clear Hash.
Эта команда используется для очищения памяти, используемой для хранения хеш таблиц.

Ponder. Возможные значения: true, false.
Если настройка включена, движок переключается в режим, когда он может думать над позицией во время хода противника. В этом режиме Stockfish не начинает анализ сам по себе, для этого ему должна быть послана команда "go ponder" (см. описание команды go).

OwnBook. Возможные значения: true, false.
Если настройка включена, то Stockfish будет использовать свою собственную дебютную базу. По умолчанию настройка выключена (false).

MultiPV. Возможные значения от 1 до 500.
Указывает, сколько рекомендуемых ходов должен выводить движок. Значение по умолчанию: 1.

Emergency Move Horizon. Возможные значения от 0 до 50.
Горизонт для экстренного хода. Что это такое - не ясно. Значение по умолчанию: 40.

Emergency Base Time. Возможные значения:от 0 до 60000 для версий ниже 2.1;
 от 0 до 30000 для версии 2.1 и выше.
Время на Emergency base. Что это такое - не ясно. Измеряется в миллисекундах. Значение по умолчанию: 200.

Emergency Move Time. Возможные значения от 0 до 5000.
Время на экстренный ход. Что это такое - не ясно. Измеряется в миллисекундах. Значение по умолчанию: 70.

Minimum Thinking Time. Возможные значения от 0 до 5000.
Минимальное время, которое Stockfish будет затрачивать на ход. Измеряется в миллисекундах. Значение по умолчанию: 20.

Slow Mover. Возможные значения от 10 до 1000.
Параметр влияет на то, сколько времени движок будет раздумывать над текущим ходом в зависимости от того, сколько времени ему осталось. Чем больше значение параметра, тем медленнее движок будет делать ходы при одном и том же контроле времени. Значение по умолчанию: 100 в версиях 3 и 4; 70 в версии DD; 80 в версии 5 и 6; 84 в версии 7; 89 в версии 8.

Move Overhead. Возможные значения от 0 до 5000.
Этот параметр призван компенсировать внешние задержки времени между тем, как движок закончил обдумывание, и тем, когда ход был непосредственно сделан на доске. Измеряется в миллисекундах. Например, значение 1000 будет означать, что движок делает ходы из расчёта, что у него на одну секунду меньше, чем есть на самом деле. Значение по умолчанию: 30.

nodestime. Возможные значения от 0 до 10000.
Если параметр установлен в ноль, то время на ход вычисляется движком с помощью таймера. Если значение положительно, то время на ход измеряется числом обработанных ходов. То есть, движок будет предполагать, что за одну миллисекунду обрабатывается ровно nodestime ходов. Использование параметра полезно, когда параллельно играет несколько движков, и нет гарантии, что на них выделяется одинаковое процессорное время. Значение по умолчанию: 0.

Skill Level. Возможные значения от 0 до 20.
Сила игры движка. Чем значение больше, тем сильнее движок играет. Значение по умолчанию: 20.

Contempt. Возможные значения от -100 до 100.
Contempt Factor до версии 6.
Рискованность движка. Чем значение больше, тем более рискованные ходы движок делает. С уменьшением значения движок будет делать более осторожные ходы, что будет приводить к большему числу ничьих. Значение по умолчанию : 0.

UCI_Chess960. Возможные значения: true, false.
Если настройка включена, то Stockfish будет анализировать игру для шахмат Фишера.

UCI_AnalyseMode. Возможные значения: true, false.
Включенная настройка означает, что движок будет оптимизирован под бесконечный анализ позиции, а не под непосредственно игру.

Бодягин Дмитрий (c) 2011 - 2016
Если у вас есть какие-то дополнения или комментарии к тексту - пишите на info@kvetka.org.