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

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

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

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

Здесь мы приведём все настройки, предоставляемые Rybka версий 2 и 3. Возможно, в четвёртой версии появились какие-то новшества, однако пока документация по её настройкам отсутствует. Для изменения настройки необходимо передать движку команду

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

Настройки

  • MultiPV   (2.x, 3)
  • MultiPV_cp   (3)
  • NalimovCache   (2.x, 3)
  • NalimovPath   (2.x, 3)
  • NalimovUsage   (2.x, 3)
  • Outlook   (2.x)
  • Persistent Hash Enabled   (3)
  • Persistent Hash File   (3)
  • Persistent Hash Merge File   (3)
  • Persistent Hash Play Depth   (3)
  • Persistent Hash Reset   (3)
  • Persistent Hash Resize   (3)
  • Persistent Hash Size   (3)
  • Persistent Hash Write Depth   (3)

Display Draw Scores (Rybka 2.x). Возможные значения: true, false.
Если настройка отключена (false), то оценка любой позиции между -0.03 и 0.03 округляется в сторону одного из этих двух граничных значений. Это не даёт оболочкам оценивать позиции как ничейные. В режиме бесконечного анализа эта настройка не работает.

Preserve Analysis (Все версии). Возможные значения: true, false.
Если настройка включена (true), Rybka дольше держит в памяти результаты анализа позиции. В противном случае они быстрее перезаписываются результатами анализа для последующих позиций. Рекомендуется включать Preserve Analysis при интенсивном анализе для близких друг к другу позиций, когда пользователь в основном перемещается вверх и вниз внутри одного участка дерева продолжений. Если же анализ быстро переключается от одной позиции к другой, настройку лучше отключить. При включённой Preserve Analysis рекомендуется очищать хеш таблицу (Clear Hash) во время перемещения от одного набора близких позиций к другому.

Contempt (Rybka 2.x). Возможные значения от -100 до 100.
Агрессивность игры. Указывает, насколько Rybka считает себя более сильным игроком и предпочитает более сложные, несбалансированные позиции простым. Положительные значения параметра указывают на высокий уровень неуважения к сопернику и стремление к сложным позициям. Отрицательные значения указывают на высокий уровень уважения к сопернику и стремление к упрощениям и сбалансированным ничейным позициям. Эта настройка управляет оценочной функцией Rybka, но не способом перебора вариантов. При положительных значениях движок даёт себе более высокую оценку. Значение по умолчанию: 0.

Contempt Play (Rybka 3). Возможные значения от -250 до 250.
То же, что и Contempt для Rybka 2.x. Используется во время игры. Значение по умолчанию: 15.

Contempt Analyze (Rybka 3). Возможные значения от -250 до 250.
Похоже на Contempt, используется во время бесконечного анализа. Указывает, насколько Rybka рассматривает белых более сильным игроком. Значение по умолчанию: 0.

Outlook (Rybka 2.x). Возможные значения: Very Pessimistic, Slightly Pessimistic, Neutral, Slightly Optimistic, Very optimistic, Ultra Optimistic.
Стиль оценивания позиции. Чем он оптимистичнее, тем больше движок уделяет внимания маловероятным, но потенциально хорошим тактическим ходам. В пессимистичном стиле движок больше концентрируется на позиционной игре. В отличие от Contempt, эта настройка управляет способом перебора вариантов, а не оценочной функцией. Значение по умолчанию: Neutral.

Rate of Play (Rybka 2.x). Возможные значения: Ultraslow, Slow, Normal, Fast, Ultrafast.
Темп игры. Варьируется от очень медленного (Ultraslow) до очень быстрого (Ultrafast). Значение по умолчанию: Normal.

Time Usage (Rybka 2.x). Возможные значения: Varied, Constant.
Распределение времени на обдумывание позиций. Если установлено значение Varied, то движок тратит гораздо больше времени на интересные по его мнению позиции. В противном случае (Constant) время на все позиции тратится равномерно. Значение по умолчанию: Varied.

Emergency Time Buffer (Rybka 2.x). Возможные значения: Small, Medium, Large.
Количество времени в партии, которое Rybka резервирует на экстренные нужды. Времени может выделяться мало (Small), средне (Medium) и много (Large). Большое количество резервного времени может быть полезно, если система перегружена, игра на сервере происходит с большим лагом или просто для ускорения игры. Значение по умолчанию: Medium.

Compensate Lost Time (Rybka 2.x). Возможные значения: true, false.
Рассмотрим следующую ситуацию: Rybka начинает обдумывание хода, когда на её часах остаётся 30 секунд (без инкремента). После двух секунд обдумывания она делает ход. Однако когда она получает указание делать следующий ход, ей сообщают, что у неё осталось только 27 секунд (вместо ожидаемых 28). Пропавшая секунда называется "потерянным временем", и если настройка Compensate Lost Time включена, то Rybka будет предполагать, что такое же количество времени будет теряться после каждого хода, и соответствующим образом будет подстраивать свои часы. (Отметим, что установленный параметр может скрывать серьёзные проблемы в системе или оболочке).

Server Buffer (Rybka 2.x). Возможные значения: true, false.
В некоторых случаях онлайновые шахматные сервера сообщают оставшееся время в партии не совсем правильно. (Обычно это играет существенную роль только в чрезмерно длинных партиях на 100 ходов и больше). Если эта настройка включена, то Rybka предполагает, что реальное оставшееся время меньше, чем ей передаётся от оболочки.

Time Buffer (Rybka 3). Возможные значения от 0 до 900.
Похоже на Emergency Time Buffer для Rybka 2.x. Указывает время в партии (в секундах), которое Rybka резервирует на экстренные нужды. Оно может быть полезно, если система перегружена, игра на сервере происходит с большим лагом или просто для ускорения игры. Значение по умолчанию: 0.

Win Percentage to Hash Usage (Rybka 2.x). Возможные значения: true, false.
Если настройка включена, то движок будет передавать в параметре "hashfull" оценку выигрышности текущей исследуемой позиции. Подробнее об этом параметре можно прочитать в описании команды info формата UCI.

Engine Priority (Rybka 2.x, не все версии). Возможные значения: Normal, Low, NormalAndLow.
В некоторых версиях Rybka 2.x сама устанавливает приоритет своего процесса, независимо от того, какой приоритет выставила ей оболочка. Настройка Engine Priority контролирует этот приоритет. Normal означает, что и основной процесс, и все его потомки будут работать с нормальным приоритетом (как и большинство запускаемых в системе приложений). Low означает, что приоритеты всех процессов будут низкими. Его можно установить, чтобы не тормозить остальные запущенные программы в системе. Значение по умолчанию - NormalAndLow - означает, что главный процесс будет иметь нормальный приоритет, а все его потомки - низкий приоритет.

CPU Usage (Rybka 2.x). Возможные значения от 1 до 100.
Процент загрузки процессора движком. Значения, меньшие 100, заставляют Rybka "засыпать" на некоторое время во время анализа, что позволяет отдать больше машинного времени другим процессам в системе. Этот параметр предоставляет альтернативный метод для работы с многозадачностью по сравнению с механизмом приоритетов, поддерживаемым системой (см. настройку Engine Priority). Значение по умолчанию: 100.

Max CPUs (Все версии). Возможные значения от 1 до 2048.
Максимальное число процессов, запущенных движком. По умолчанию устанавливается равным числу физических ядер в процессоре. Настройку можно уменьшить, если в системе есть другие работающие приложения, которые требуют много процессорного времени.

NalimovPath (Все версии).
Путь (один или несколько) к директориям, содержащим эндшпильные базы Налимова. Можно указывать несколько путей, разделённых символом ";".

NalimovCache (Все версии). Возможные значения от 1 до 256.
Размер буфера в мегабайтах, используемый для хранения таблиц Налимова. Увеличение этого параметра может в определённых случаях ускорить анализ позиции (например, в эндшпиле), но с другой стороны это увеличивает объём занимаемой движком памяти. Значение по умолчанию: 1.

NalimovUsage (Все версии). Возможные значения: frequently, normally, rarely, never.
Управляет частотой, с которой Rybka прибегает к помощи эгдшпильных баз Налимова. Частота может меняться от часто (frequently) до никогда (never). Значение по умолчанию: rarely.

Display Current Move (Rybka 2.x). Возможные значения: true, false.
Если настройка отключена, то Rybka не посылает никакой информации о текущем анализируемом ходе. Текущий ход описывается в параметре "currmove". Подробнее об этом параметре можно прочитать в описании команды info формата UCI.

Display PV Tips (Rybka 2.x). Возможные значения: true, false.
Если настройка включена, то Rybka передаёт вероятное продолжение (principal variation) наибольшей возможной длины. Обычно такие продолжения не несут большой ценности и даже могут содержать грубые ошибки. При выключенной настройке вероятные продолжения всё равно передаются, однако они существенно короче. Вероятное продолжение выводится в параметре "pv". Значение по умолчанию: false.

UCI_LimitStrength (Все версии). Возможные значения: true, false.
При включенной настройке движок будет ограничивать свою силу до определённого уровня Elo. Сила движка при этом должна устанавливаться в UCI_Elo.

UCI_Elo (Все версии). Возможные значения от 1200 до 2400.
Устанавливает силу движка. Игнорируется, если настройка UCI_LimitStrength отключена (Rybka тогда играет в полную силу). Значение по умолчанию: 1200.

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

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

MultiPV_cp (Rybka 3). Возможные значения от 0 до 32768.
Когда Rybka запущена в режиме вывода нескольких рекомендуемых ходов (MultiPV больше единицы), то для каждого хода, у которого оценка как минимум на MultiPV_cp ниже наилучшей, выводимая оценка будет не точной. Это позволит уберечь процессорное время от вычисления точной оценки очевидно слабых ходов.

UCI_Query (Rybka 3).
Некая секретная настройка. Утверждается, что оболочки могут ей воспользоваться, чтобы изучить расширенные по сравнению со стандартом UCI возможности движка. Однако никаких деталей, как пользоваться настройкой, нет.

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

Hash (Все версии). Возможные значения от 2 до 4096.
Размер памяти, выделяемой для хранения хеш таблиц. Косвенно влияет на силу игры (больше памяти - сильнее игра). Измеряется в мегабайтах. Значение по умолчанию: 32.

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

Остальные настройки

В Rybla 3 ещё используются следующие настройки, управляющие хранением, загрузкой и объединением информации об анализе позиций. Более подробной информации, к сожалению, обнаружить не удалось.

  • Saved Hash File
  • Save Hash
  • Load Hash
  • Persistent Hash Enabled
  • Persistent Hash File
  • Persistent Hash Play Depth
  • Persistent Hash Write Depth
  • Persistent Hash Size
  • Persistent Hash Reset
  • Persistent Hash Resize
  • Persistent Hash Merge File
  • Persistent Hash Do Merge

Вольный перевод с английского описания настроек для Rybka 2.x и Rybka 3.
Автор перевода --- Бодягин Дмитрий