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

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

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

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

Особенностью движка является то, что он (точнее, версия Houdini pro) очень хорошо заоптимизирован для работы на мощном железе, когда доступно большое число параллельных потоков (до 128) и большой объём памяти (до 128 ГБ).

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

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

Настройки

Большинство настроек Houdini подробно описаны на сайте авторов. Здесь мы приведём их описание на русском.

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

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

NalimovCache. Возможные значения от 4 до 1024.
Объём оперативной памяти, используемый для хранения баз Налимова. Чтобы параметр имел эффект, сначала надо подключить эти базы, указав к ним путь в NalimovPath. Измеряется в мегабайтах. Базы Налимова поддерживаются только в Houdini Pro. Значение по умолчанию: 32.

EGTB Probe Depth. Возможные значения от -10 до 99.
Эта настройка управляет частотой обращения движка к эндшпильным базам. Это могут быть базы в формате syzygy (см SyzygyPath) или Налимова (см. NalimovPath). Чем выше её значение, тем чаще будет происходить обращение к базам. Как утверждают разработчики, делается это с помощью хитрых алгоритмов, так что количественно описать настройку не получится. При значении настройки -10 алгоритмы отключаются. Увеличивать значение имеет смысл, только если у вас очень быстрый жёсткий диск. Значение по умолчанию: 5.

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

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

Contempt. Возможные значения: от -10 до 10.
Рискованность движка. Чем значение больше, тем более рискованные ходы делает движок, уменьшая при этом вероятность ничьей. Достигается это за счёт того, что Houdini оценивает свою позицию немного оптимистичнее, устанавливая ценность своих фигур немного выше, чем у фигур соперника. Как следствие, движок будет производить обмен фигурами только в том случае, если от этого он получит явное позиционное преимущество. В среднем параметр Contempt, установленный в 2, уменьшает вероятность ничьи на 5%. Возрастание уровня Contempt на единицу увеличивает оценку собственных фигур приблизительно на 0.15 пешки. Сильнее всего движок играет, когда этот параметр не установлен (то есть, установлен в 0). По умолчанию, этот режим не работает при бесконечном анализе позиции, однако его можно включить с помощью Analysis Contempt. Делать это не рекомендуется, так как в таком случае оценки для чёрных и белых будут несимметричными. Значение по умолчанию : 0.

Analysis Contempt. Возможные значения: true, false.
Включает режим рискованности (параметр Contempt) при бесконечном анализе позиции. Обычно делать это не рекомендуется, так как в таком случае оценки для чёрных и белых будут несимметричными. Значение по умолчанию : false.

Tactical Mode. Возможные значения: true, false.
При включении настройки, Houdini концентрируется на тактическом анализе позиции. При этом движок становится очень мощным решателем тактических задач. Нужно также отметить, что в режиме Tactical Mode сила игры существенно снижается, так что использовать его в реальных партиях не рекомендуется. Значение по умолчанию: false.

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

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

Strength. Возможные значения от 0 до 100.
Сила игры движка. Чем выше значение настройки, тем сильнее он играет. Следующая таблица показывает очень приблизительное соотношение параметра Strength и силы игры в формате Elo:
StrengthElo
01000
101300
201600
301900
402200
502500
1003200
Значение по умолчанию: 100.

UCI_Elo. Возможные значения от 1000 до 3200.
Сила игры движка в формате Elo. Значение 1700 соответствует уровню третьего разряда, 1950 - первого разряда, 2150 - кандидата в мастера, 2300 - мастера и 2500 - уровню гроссмейстера. Houdini пересчитывает этот параметр в значение Strength, используя таблицу из описания Strength. Чтобы ограничить силу игры с помощью UCI_Elo, надо предварительно установить UCI_LimitStrength в положение true. Значение по умолчанию: 3200.

UCI_LimitStrength. Возможные значения: true, false.
Включает режим ограничения силы игры движка. Когда он включён (значение true), сила игры регулируется с помощью параметра UCI_Elo. В противном случае, она регулируется с помощью Strength. Значение по умолчанию: false.

FiftyMoveDistance. Возможные значения: от 5 до 50.
Число обратимых ходов, после которых движок начинает рассматривать позицию как ничейную. Например, устанавливая параметр в 15, вы говорите движку, что если в течении 15 ходов каждым из игроков не сделано ни одного необратимого хода, партия считается ничейной. Значение по умолчанию: 50.

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

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

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

MultiPV_cp. Возможные значения от 0 до 999.
Указывает, насколько оценка хода должна быть близка к оценке наилучшего хода, чтобы движок отображал его в списке рекомендуемых ходов. Измеряется в десятых частях пешки. То есть, если оценка какого-то хода отличается от наилучшего хода больше, чем указано в этой настройке, то он в списке рекомендуемых ходов не отображается, даже если он должен был туда попасть в соответствии со значением MultiPV. По утверждениям разработчиков, параметр вычисляется приблизительно. Если указано значение 0, то параметр игнорируется. Значение по умолчанию: 0.

Hash. Возможные значения:от 1 до 1024 для 32-хбитной версии;
 от 1 до 4096 для 64-хбитной версии Standart;
 от 1 до 131072 для 64-хбитной версии Pro.
Размер памяти, выделяемой для хранения различной информации. Косвенно влияет на силу игры: больше памяти - сильнее игра. Однако слишком большие значения Hash могут наоборот замедлить работу движка, так как всей системе перестанет хватать памяти. При бесконечном анализе или в партиях с большим контролем времени рекомендуется выделять столько памяти, сколько может позволить система. Например, для системы с 4 ГБ памяти лучше выделить 2048 МБ для Hash. В более короткий партиях, например на 3 или 5 минут, разработчики рекомендуют использовать значение в 256 или 512. По этой ссылке (Eng) приводится формула для вычисления оптимальной величины Hash в зависимости от железа и контроля времени.
Параметр всегда округляется вниз до ближайшей степени двойки (1, 2, 4, 8 и т.д.). Измеряется в мегабайтах. Значение по умолчанию: 128.

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

Never Clear Hash. Возможные значения: true, false.
Эта настройка предохраняет движок от очищения памяти, выделенной параметром Hash, при переходе от одной партии к другой. Рекомендуется включать этот параметр при использовании Load Hash from File, иначе загруженные из файла данные при переходе к анализу новой партии будут утеряны. Значение по умолчанию: false.

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

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

Hash File.
Имя файла, который будет использоваться командами Save Hash to File и Load Hash from File для сохранения и загрузки хеш таблиц соответственно. Движок требует указывать полный путь к файлу, например, C:\Chess\Hash001.dat. Если никакого имени не указано, то будет использован файл hash.dat в папке My Documents текущего пользователя. Значение по умолчанию: <empty>

NUMA Enabled. Возможные значения: true, false.
Включает использование движком технологии NUMA. Эта технология поддерживается большинством многопроцессорных систем и призвана эффективнее распределять память между процессорами. При включенной настройке NUMA Enabled Houdini организует использование памяти и потоков таким образом, чтобы учесть конфигурацию NUMA на компьютере. Это может существенно ускорить работу движка, когда он работает более чем на шести ядрах. Настройка доступна только в версии pro. Значение по умолчанию: true.

NUMA Offset. Возможные значения: от 0 до 15.
Эта настройка полезна, когда на одной многопроцессорной системе запущены несколько движков Houdini. В этом случае всем им должны быть даны разные значения NUMA Offset, чтобы они не отбирали друг у друга ресурсы. Настройка доступна только в версии pro. Значение по умолчанию: 0.

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