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

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

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

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

Здесь мы приведём все настройки, предоставляемые в последних версиях Komodo (начиная с 9.2). Возможно, в будущем они будут меняться. Для изменения настройки необходимо передать движку команду

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

Настройки

Большинство настроек Komodo подробно описаны либо на сайте авторов, либо в файле Readme, поставляемого вместе с движком. Здесь мы приведём их описание на русском.

OwnBook. Возможные значения: true, false.
Если настройка включена, то Komodo при анализе позиции будет использовать дебютную книгу. Она располагается в отдельном файле, путь к которому задаётся в настройке Book File. Значение по умолчанию: true.

Book File.
Имя файла с дебютной книгой. Komodo поддерживает дебютные книги в формате Polyglot (расширение .bin). Значение по умолчанию: komodo.bin

Best Book Line. Возможные значения: true, false.
Если настройка включена, то Komodo будет уделять больше внимания наилучшему ходу из дебютной книги. Для работы этой настройки необходимо, чтобы движок использовал дебютную книгу (OwnBook = true) и настройка Book File указывала на файл с дебютной книгой. Значение по умолчанию: false.

Use Syzygy. Возможные значения: true, false.
Если настройка включена, то Komodo будет использовать эндшпильные таблицы в формате Syzygy. Путь к ним задаётся настройкой SyzygyPath. Значение по умолчанию: true.

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

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

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

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

Smart Syzygy. Возможные значения: true, false.
Если настройка включена, то движок всегда будет обращаться к эндшпильным базам в формате syzygy (см. SyzygyPath), как только на доске осталось (Syzygy Probe Limit - 1) фигур, при любой глубине анализа. Если же настройка выключена, то обращение к эндшпильным базам начнётся только по достижении глубины Syzygy Probe Depth. Эта настройка позволяет получать больше пользы от эндшпильных баз на компьютерах с медленным доступом к жёсткому диску.
Например, пусть Syzygy Probe Limit выставлен в 6, Probe Depth выставлен в 10 и включена Smart Syzygy. Тогда при достижении глубины анализа 10 Komodo будет использовать 6-фигурные эндшпильные базы Syzygy. На меньшей глубине он будет обращаться к пятифигуркам. Дело в том, что пятифигурные базы занимают полгигабайта и на многих компьютерах кешируются в оперативную память. С другой стороны, обращение к шестифигуркам обычно замедляет работу движка при использовании стандартных жёстких дисков.
Параметр Smart Syzygy не влияет на анализ стартовой позиции. То есть, если в позиции осталось шесть фигур, то Komodo в любом случае будет обращаться к шестифигуркам. Значение по умолчанию: false.

Threads. Возможные значения от 1 до 64.
Число потоков, которые будут параллельно производить анализ. Чем больше значение настройки, тем быстрее анализируется позиция, а следовательно возрастает сила игры. С другой стороны, большое число потоков может "тормозить" систему. Также не имеет смысла устанавливать значение больше, чем число ядер в процессоре. Даже если процессор поддерживает больше потоков, чем у него есть физических ядер (режим hyper-threading), то всё равно наиболее сильная игра будет при параметре Threads равном числу физических ядер. Значение по умолчанию: 1.

Use LMR. Возможные значения: true, false.
Use Lmr до версии 9.3.
Включает(true)/выключает(false) режим LMR (удаление поздних ходов). Это специальный режим в Komodo, который позволяет выкидывать из рассмотрения многие ходы, в результате чего серьёзно увеличивается глубина анализа позиции. Однако некоторые важные ходы при этом могут быть пропущены.
Обычно со включенным режимом LMR Komodo играет гораздо сильнее. Однако в некоторых сложных позициях может иметь смысл отключить его, чтобы тщательнее исследовать позицию на предмет неожиданных решений.
Значение по умолчанию: true.

Null Move Pruning. Возможные значения: true, false.
Включает(true)/выключает(false) режим обрезания пустых ходов. Он во многом похож на режим LMR. В этом режиме движок отбрасывает многие, по его мнению не стоящие ходы. Со включенным режимом движок играет гораздо сильнее, однако время от времени он может пропускать глубокие угрозы или цугцванги. Рекомендации здесь такие же, как и для LMR. В сложных позициях можно попробовать отключить этот режим для более тщательного анализа позиции. Значение по умолчанию: true.

Null Scale. Возможные значения от 10 до 50.
Позволяет управлять, насколько сильно Komodo сокращает глубину анализа при использовании режима обрезания пустых ходов. Большие значения приводят к большим обрезаниям, что позволяет движку анализировать глубже, увеличивая при этом риск пропустить что-нибудь важное. Чтобы этот параметр работал, настройка Null Move Pruning должна быть включена. Тесты разработчиков показали, что значение настройки 29 оптимально. Значение по умолчанию: 29.

Time Usage. Возможные значения от -9 до 9.
Эта настройка задаёт то, как Komodo управляет эвристиками контроля времени. Они могут сделать движок более или менее агрессивным. Скорее всего, значение 0 близко к идеальному. Однако можно заставить движок играть быстрее, выставив негативное значение Time Usage или наоборот, заставить движок выделять время на ход более агрессивно, выставив положительное значение настройки. Вряд ли при экстремальных значениях Time Usage движок будет играть хорошо. Так что рекомендуется экспериментировать с его небольшими изменениями. Значение по умолчанию: 0.

King Safety. Возможные значения от 0 до 200.
Настройка контролирует, как высоко движок оценивает безопасность короля. Чем выше значение King Safety, тем большим будет эффект от атак на короля в оценке позиции. Значение по умолчанию: 60 для версий до v9.4, 70 для v9.4 и 85 для v10.2 и выше.

Selectivity. Возможные значения от 10 до 200.
Настройка контролирует, какое воличество ходов Komodo отбрасывает при анализе. Более высокие значения настройки заставят движок отбрасывать больше ходов на небольших глубинах поиска, что приведёт к большей глубине поиска. Однако это увеличит риск потери некоторых хороших ходов. Значение по умолчанию: 74 для версий до v9.3, 131 для v9.3, v9.4 и 100 для v10 и выше.

Reduction. Возможные значения от -1000 до 150.
Настройка контролирует глубину анализа движка. Увеличение значения этой настройки заставит Komodo "обрубать" части дерева поиска раньше. Это увеличит глубину поиска, однако, как и для настройки Selectivity, некоторые хорошие ходы могут быть утеряны. Авторы утверждают, что в однопоточном режиме (Threads = 1) оптимальное значение параметра близко к нулю. Однако в многопоточном режиме такой уверенности нет. Значение по умолчанию: 0.

Contempt. Возможные значения от -500 до 500.
Рискованность движка. Чем значение больше, тем более рискованные ходы движок делает. С уменьшением значения движок будет делать более осторожные ходы, что будет приводить к большему числу ничьих. Авторы Komodo дают такие рекомендации: против приблизительно равных по силе оппонентов значение Contempt лучше выставить в 0. Если оппонент слабее, то значение стоит слегка увеличить (по умолчанию оно равно 15). Против человека его следует выставлять минимум 25. Рекомендованные значения: 40 против гроссмейстеров, 50 против мастеров и 75 против сильных любителей. Значение по умолчанию : 15 для версий до v9.3 и 10 для v9.3 и выше.

White Contempt. Возможные значения: true, false.
Contempt for White до версии 10.
Если установлен в true, то рискованность позиции (параметр Contempt) движок всегда вычисляет с точки зрения белых. В противном случае, она вычисляется со стороны игрока, чей сейчас ход. То есть, при включённой настройке White Contempt, положительное значение Contempt означает, что белые будут менее склонны принимать ничьи или обмен фигурами. При отрицательном значении Contempt белые, наоборот, будут более склонны к ничьим. Если движок играет чёрными, то значение Contempt нужно брать с противоположным знаком. Установление этого параметра в true также запретит автоматическое установление рискованности в ноль при бесконечном анализе позиции. Значение по умолчанию : false.

Dynamism. Возможные значения от 0 до 200.
Настройка, контролирующая, насколько серьёзно в своём анализе движок учитывает динамичную составляющую. Чем меньше значение настройки, тем аккуратнее движок играет. Большие же начения делают игру более рискованной. Статичные составляющие оценки позиции (материал, пешечная структура и т.п.) этой настройкой не затрагиваются. При слишком маленьких значениях Dynamism игра движка станет неадекватной. При значениях параметра в районе 80 движок выдаёт более реалистичную оценку позиции, чем при значении 117. Однако сила игры при этом снижается где-то на 20 - 30 ELO. Значение по умолчанию : 100 для версий до v10 и 117 для v10 и выше.

Progress Threshold. Возможные значения от 10 до 99.
Указывает, после какого числа обратимых полуходов Komodo начинает устремлять оценку позиции к нулю (в соответствии с правилом 50 ходов). Чем меньше это значение, тем раньше движок начинает замечать, что не было сделано никакого прогресса, и начинает давать больший приоритет необратимым ходам. На чемпионате мира использовалось значение 85. По всей видимости, оно даёт прирост в 1-2 ELO по сравнению с нынешним значением по умолчанию 30. Однако значение по умолчанию делает движок лучшим средством для анализа, сокращает длинные партии и успешно помогло выиграть мировой чемпионат по рапиду. Значение по умолчанию: 30.

Overhead ms. Возможные значения:от 0 до 50000 для версий ниже 10.0;
 от 0 до 10000 для версии 10.0 и выше.
Эта настройка нужна в случае, когда движок работает с медленным интернет соединением или медленным пользовательским интерфейсом. Она указывает, на сколько миллисекунд стоит раньше выдавать ход, чем если бы он передавался сопернику мгновенно. Этот параметр можно увеличить, если дижок слишком часто проигрывает по времени. Значение по умолчанию: 30.

Minimal Reporting. Возможные значения от 0 до 200.
Suppress в версиях 9.3 и 9.4.
Настройка позволяет уменьшить объём выдаваемой движком информации в самом начале анализа хода. Например, если выставлено значение 8, то движок не будет выдавать никаких оценок, пока не достигнута глубина в 8 полуходов. Эта настройка может быть полезной, если движок запущен через сеть. В этом случае, сократив вывод на начальном этапе анализа, можно существенно ускорить работу движка. Значение по умолчанию: 0.
В версиях 9.3 и 9.4 эта настройка включала и выключала режим suppress, который уже в свою очередь делал то, что Minimal Reporting делает сейчас.

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

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

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

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

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

Hash. Возможные значения от 1 до 65536 (от 1 до 2048 в 32-хбитной версии).
Размер памяти, выделяемой для хранения различной информации. Косвенно влияет на силу игры: больше памяти - сильнее игра. Однако слишком большие значения Hash могут наоборот замедлить работу движка, так как всей системе перестанет хватать памяти. Рекомендации по оптимальной установке этого параметра можно найти в файле setHash.txt, который поставляется вместе с движком. Измеряется в мегабайтах. Значение по умолчанию: 128.

Clear Hash.
Эта команда используется для очистки памяти, выделенной параметром Hash.

Save Hash to File.
Эта команда используется для сохранения содержимого памяти, выделенной параметром Hash, в файл. Это может быть полезным, если работу движка по какой-то причине надо прервать, а через некоторое время снова восстановить. Впоследствии данные снова можно загрузить в память с помощью команды Load Hash from File. Имя файла, в котором сохраняется хеш, задаётся командой Hash File Name.

Load Hash from File.
Эта команда используется для загрузки из файла ранее сохранённых данных обратно в память. Имя файла, из которого загружается хеш, задаётся командой Hash File Name.

Hash File Name.
Имя файла, который будет использоваться командами Save Hash to File и Load Hash from File для сохранения и загрузки хеш таблиц соответственно. Значение по умолчанию: <empty>

Table Memory. Возможные значения от 1 до 1024.
Размер памяти в мегабайтах, выделяемой для хранения различных внутренних таблиц, таких как хеш таблица пешечных структур и некоторые другие. Слишком много памяти может негативно сказаться на силе игры, ровно как и слишком мало памяти. Значение по умолчанию 128 на современных машинах в большинстве случаев выглядит оптимальным. Для достаточно медленных компьютеров можно попробовать уменьшить этот параметр, а для высокопроизводительных компьютеров или для игр с большим контролем (или для анализа) можно попробовать его увеличить. В последних турнирах разработчики выставляли значение 512. Значение по умолчанию: 64 для версий до v9.4 и 128 для версии v10.0 и выше.

Большая часть текста переведена с английского отсюда.
Автор перевода --- Бодягин Дмитрий