Показаны сообщения с ярлыком Методы анализа позиции. Показать все сообщения
Показаны сообщения с ярлыком Методы анализа позиции. Показать все сообщения

четверг, 9 июля 2009 г.

Пользовательский анализ в Рыбке Аквариум

Пользовательский анализ в Рыбке Аквариум

Статья этого месяца посвящена настройкам бесконечного анализа в Рыбке Аквариум. Они позволят вам создать собственные методы анализа и получать к ним быстрый доступ. Теперь вам не нужно будет настраивать анализ вручную каждый раз, когда вы захотите его использовать. Простая предварительная настройка поможет создать продвинутые аналитические конфигурации, включающие несколько различных движков и панелей.

Я надеюсь, наши читатели уже свободно обращаются с обычным бесконечным анализом в Рыбке Аквариум, который обсуждался в моей статье за июль 2008 года.

Пользовательский анализ vs. Обычный анализ

Когда упоминается бесконечный анализ, большинство пользователей представляют единственный движок, который анализирует позицию и выводит результаты в окне анализа. Но Аквариум позволяет вам гораздо больше:
  1. Одновременный анализ двумя или еще большим числом движков;
  2. Несколько окон анализа;
  3. Один или несколько движков в каждом окне анализа;
  4. Различные параметры анализа для каждого движка. Один из них может проводить обычный анализ, в то время как другой анализирует угрозы, а третий запущен в многовариантном режиме и т.д.
Все эти виды анализа могут быть сохранены в Аквариуме. Кроме одновременного анализа несколькими движками, Аквариум позволяет создавать ярлыки для вызова часто используемых видов анализа.

Вот только несколько идей:
  1. Настройка быстрого доступа для тех движков, которые вы используете чаще всего (если в оболочку установлено много различных движков);
  2. В режиме анализа на несколько линий настройка максимальной дельты - отклонения в оценке. Ходы, превышающие ее, не рассматриваются в анализе как заведомо плохие;
  3. Анализ только ходов из дерева вариантов;
  4. Анализ угроз.
Настройки - это самый короткий путь к началу использования пользовательского анализа. Вы просто выбираете нужные настройки и анализ начинается со специфическими параметрами. Запустив анализ, вы можете изменять установленные параметры как захотите, например, увеличивая и уменьшая число линий анализа. Обратите внимание, что любой вид пользовательского анализа требует мультипроцессорного компьютера. Не рекомендуется использовать даже два движка одновременно на одноядерном компьютере.

С другой стороны, пользовательский анализ не требует запуска бесконечного анализа и вообще никак не связан с ним. Вы можете запустить бесконечный анализ, нажав пробел или использовав кнопку "Анализ" на соответствующей панели.

Типы настроек

Когда вы хотите запустить анализ с особыми настройками, обратите внимание на панель анализа. Там вы можете выбрать пользовательский режим (Start Custom) или нажать на черный треугольник под кнопкой "Анализ" (Analyze) и затем выбрать настройки, как показано на рисунке:

Откроется окно "Настройки бесконечного анализа", где вы сможете определить нужные параметры анализа. Он запускается сразу после нажатия кнопки ОК.

Настройки бесконечного анализа

Опции разделены на две основные части. Слева расположен список доступных движков, где вы можете менять число окон анализа и количество движков в каждом. После того, как вы определились с движками, справа можно изменить параметры анализа для каждого в отдельности. Давайте внимательно посмотрим на левую сторону панели.

Настройка окон анализа

В столбце "Движок" (Engine) показаны все движки, загруженные в оболочку. Окна анализа пронумерованы в порядке возрастания, начиная с первого. Если мы посмотрим на первое окно анализа, то мы увидим отметку напротив Рыбки 3. Это означает, что в первом окне анализа будет работать Рыбка 3. Аналогично, Рыбка 3 Динамик будет работать во втором окне.

Number of analysis panels внизу рисунка позволит вам определить количество окон анализа. В нашем примере используется два окна. Подключение дополнительного окна возможно только в том случае, когда существует движок, который можно будет к нему подключить. Если мы запустим анализ, используя настройки, показанные выше (а это стандартное разделение процессов 1 ядро + 1 ядро), то мы увидим что-то подобное:

Бесконечный анализ с двумя окнами

Мы видим два окна анализа с Рыбкой 3 в верхнем окне и Рыбкой 3 Динамик в нижнем. Мы также видим одно из преимуществ бесконечного анализа несколькими движками: два движка предлагают различные ходы. Обычная Рыбка 3 предлагает 33.Rb1 на глубине 19 полуходов, но Динамик предпочитает 33.Rc1 на той же глубине. Это та причина, по которой многие анализируют важные позиции несколькими движками. Если движки признают один ход лучшим, то вы будете более уверенным в том, что этот ход неплох. Если они расходятся во мнениях, то вы можете добавить их предложения в число ходов-кандидатов для проведения более тщательного анализа.

Если вас интересует только лучшая линия каждого движка, или вы хотите сэкономить место, запустите оба движка в одной панели. Просто поменяйте настройки анализа вот так:

Теперь обе Рыбки будут анализировать в одном окне. Движок можно добавить, нажав на соответствующую клетку на пересечении строк и столбцов. Также можно добавлять движки в ту же панель, зажав Ctrl, и дважды кликнув мышью по его названию. Если вы повторите аналогичные действия, движок будет удален из окна анализа. В нашем случае анализ будет выглядеть так:

Два движка анализируют в одном окне

Если вы сравните этот вывод результатов анализа с тем, когда каждый движок анализирует в своем окне, то увидите гораздо более компактный вид.

Когда одновременно анализируют несколько движков, каждый из них настраивается отдельно. Просто выделите нужный движок в левой части настроек бесконечного анализа, и справа вы увидите его настройки, как показано на рисунке ниже:

Настройки отдельного движка

Я уже писал о большинстве этих настроек в моей статье о бесконечном анализе, но Аквариум постоянно развивается, и с тех пор было введено несколько новых.

Когда вы выбираете "Ход противника" (Opponent Move), прежде всего вы можете установить финксированную глубину анализа угроз (Limited Depth). Например, я установлю этот параметр на 8 полуходов. Это означает, что когда движок начнет анализ, прежде всего он рассмотрит угрозы противника до достижения глубины в 8 полуходов. Тогда основная угроза противника будет определена, она будет показана на диаграмме красной стрелкой.

Черные угрожают ...Ba4

Эта позиция из партии Фишер - Геллер, Скопье 1967, которая анализировалась в моей январской статье за 2009 год. Черные только что сыграли 20...Qb7, и теперь ход белых. Даже с низким значением глубины анализа угрозы (всего 8 полуходов), идея Геллера 21...Ba4!!, которая явилась сюрпризом для Фишера, была быстро найдена. После определения угрозы черных, движок переходит к анализу позиции со стороны белых.

Обратите внимание, что использование этой опции вовсе не подразумевает ее быстрого исполнения или показа в окне анализа. Все, что вы увидите - стрелку на диаграмме.

Анализ на несколько вариантов также разобран мной в январской статье. Если вы хотите использовать ограничение анализа по оценке (Delta), но не уверены, какое значение выбрать, я рекомендую вам начать с установки 50 сантипешек. Это сделает многовариантный анализ более эффективным, т.к. Рыбка не будет тратить время на ходы, оценка которых отличается от лучшего найденного более чем на 50 сантипешек.

Настройки использования дерева вариантов (Tree Usage) также описывались мной в январской статье. Я бы хотел подчеркнуть, что эта настройка основаны на использовании (или напротив, игнорировании) тех ходов, которые показаны в окне дерева вариантов. Оно может совмещать множество различных деревьев, дополняя ходы из нотации партии. Игнорирование ходов из дерева (Ignore moves in tree panel) используется для анализа альтернатив ходу в партии. Если партия была прокомментирована, то будут анализироваться ходы, которые не встретились в партии или данных в примечаниях вариантах.

Кнопка Personalities - это настройки того движка, который выделен в списке слева. Когда вы нажмете на кнопку, вы увидите список доступных для изменения параметров данного движка, как показано на следующем рисунке (для Рыбки 3).

Параметры движка

Я показал только верхнюю и нижнюю часть окна. Наиболее важным параметром при настройке анализа несколькими движками является число ядер для каждого движка. Убедитесь в том, что число используемых всеми движками ядер не превышает общее число ядер процессора вашего компьютера. Если вы превысите это число, движки начнут бороться друг с другом за ресурсы процессора, что приведет к непредсказуемым последствиям. Вы также должны быть уверены в том, что общий объем хэш-памяти не превышает доступные резервы компьютера.

На рисунке выше я установил максимальное число используемых ядер равным единице. Обратите внимание, что изменение цвета фона данного поля говорит о том, что этот параметр был изменен. Это позволит вам контролировать те параметры, которые были изменены для каждого из движков во время настройки анализа. Кнопка "По умолчанию" (Restore Defaults) сбрасывает все сделанные изменения на значения по умолчанию.

Если вы изменили любую из настроек бесконечного анализа, то движок будет использовать их даже после перезагрузки Аквариума. Чтобы снова изменить настройки, просто выберите пользовательский режим (Start Custom), как уже было показано выше.

Сохранение и использование настроек


После того, как вы протестировали различные настройки анализа и определили, какие подходят лучше всего, вы наверняка захотите получать к ним быстрый доступ. По этой причине Аквариум позволяет вам сохранять настройки анализа. Каждому комплексу настроек может быть присвоено название, чтобы позже вы могли быстро выбрать нужный из списка доступных.

Когда вы определите те настройки, которые вас устраивают, сделайте так, как показано на рисунке ниже. Прежде всего, нажмите на треугольник под кнопкой "Анализ" и выберите настройки (или используйте пользовательский режим). Будут отображены настройки бесконечного анализа. Нажмите "Сохранить текущие установки" (Save current settings). Наконец, введите название для комплекса настроек в окне "Сохранить настройки" (Save preset) и нажмите ОК. Например, я назвал свои настройки "Рыбка - Заппа (угрозы)". Это говорит мне о том, что Рыбка будет анализировать как обычно, используя все доступные ядра, кроме одного, которое Заппа использует для анализа угроз соперника.

Сохранение настроек анализа

После этого новые настройки готовы к использованию. Нажав на треугольник под кнопкой запуска пользовательского режима анализа (Start Custom), вы увидите список всех сохраненных ранее настроек. На рисунке ниже показано семь различных настроек, одна из которых выделена (только что нами созданная). Нажав на любую из них, вы немедленно запустите анализ с установленными настройками.

Начать анализ с установленными настройками

Как вы можете видеть, использование предварительных настроек экономит время по сравнению с использованием бесконечного анализа. Комплексный анализ, который содержит несколько движков и окон, может быть быстро запущен из списка, вместо того, чтобы каждый раз настраивать его вручную.

© Оригинал: Dadi Jonsson
© Перевод: Vitaly Khimkin

среда, 1 июля 2009 г.

Rybka's Monte-Carlo analysis

Rybka's Monte-Carlo analysis

Эта статья посвящена тому, о чем наши читатели настойчиво просили - описанию новой опции Рыбки 3 - анализу Монте-Карло. Этот анализ означает, что движок играет множество очень быстрых игр против себя, создавая уникальную оценку позиции. Это не так сложно, как вы могли думать - в этой статье есть все, что нужно знать.

Сейчас наступает момент, которого вы все с нетерпением ждали (если письма, которыми завален мой электронный ящик, хоть что-то означают); в этом еженедельном выпуске ChessBase Workshop мы поговорим об анализе Монте-Карло Рыбкой 3.

Знаете, я бы не хотел, чтобы кто-то чувствовал себя разочарованным или вроде того, но далеко не в единственном письме эта опция названа "недостаточно освещенной в справке". Скажу вам прямо, там нет ничего такого, что требовало бы объемного описания. В двух словах, анализ Монте-Карло заключается в следующем: вы устанавливаете игровую позицию, запускаете анализ и Рыбка начинает играть множество игр против самой себя (с установленной вами позиции). Сыгранные партии не сохраняются в базе данных (так, как это происходит при автоигре движков - ShootOut), но все ходы прописываются в дереве вариантов.

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

Теперь давайте посмотрим на этот анализ в действии, чтобы лучше понять, как он работает. Мы начнем с позиции, которая была сыграна в 1901 году в - как вы и предполагали - Монте-Карло. Мой "старый знакомый" Давид Яновский (о котором я недавно писал в одной моей электронной книге) играл черными против М. Дидера. Белые только что сыграли 14.с3 и получилась следующая позиция:

Нам следует помнить, что партия игралась в 1901 году. В это время Яновский был сильным позиционным игроком, в отличие от его пристрастия к острой игре в середине 1920 годов. Что сделал Яновский в этой позиции?

Когда я просматривал партию, я никогда не видел, что должно было в ней произойти. Вместо того чтобы терпеть двух белых коней, которые поддерживали друг друга, Яновский пожертвовал качество ходом 14... Rxb6 15. Nxb6 Qxb6 16. cxd4 exd4. Я заитересовался и решил посмотреть, как Рыбка оценит позицию после 14.с3, используя анализ Монте-Карло.

Для того чтобы запустить анализ Монте-Карло с определенной позиции, откройте Инструменты (Tools) -> Анализ (Analysis) и выберите Монте-Карло (Monte-Carlo) в подменю (обратите внимание, что эта опция будет недоступна и окрашена в светло-серый цвет, пока вы не загрузите Рыбку). Следующее, что вы должны знать: панель нотации партии будет заменена кнопкой "Загрузить книгу" (Load Book). И над всем этим вы увидите окно такого содержания:

У вас есть 2 типа настроек в этом окне. Первая - глубина анализа(Search Depth), по умолчанию установленная на "5". Эта опция контролирует, на сколько полуходов вперед движок будет анализировать позицию, перед тем как сделать ход. Например, если вы оставите глубину перебора на значении "5", движок будет анализировать на 2,5 хода вперед, перед тем как сделать ход. Помните, т.к. движок будет играть множество игр против самого себя и сохранять ходы в дереве вариантов, глубина анализа - важный параметр. Тем не менее, вы должны понимать, что здесь совершается своеборазный обмен: чем больше глубина анализа, тем больше времени движок будет тратить на каждый ход, - словом, вы меняете время на качество. С другой стороны, установление маленькой глубины анализа означает, что за отведенное время может быть сыграно значительно большее число игр, но сами по себе ходы, скорее всего, будут достаточно очевидными и низкокачественными.

Также помните, что вам следует использовать только четные числа при установке глубины анализа, потому что у движков при анализе на нечетное число полуходов, как правило, развивается тактическая слепота за одну из сторон (blind spot). Правило, проверенное опытом: четные числа - хорошо, нечетные - плохо.

Следующая опция - ширина дерева вариантов (Tree size). Она подобна показателю вариативности в IDeA (Branching factor) и является другим обменом времени на качество. Если вы создаете дерево небольшой ширины (Narrow), то вы не увидите большого числа альтернативных ходов - они не отображаются в дереве, но общий процесс его создания будет идти быстрее. Деревья большой ширины (Broad) содержат больше альтернатив, но и создаются гораздо дольше (т.к. процесс поиска альтернатив требует больше процессорного времени, что замедляет движок).

Выберите дерево средней ширины (Medium), глубину перебора 7 полуходов, нажмите ОК и посмотрите, что произойдет.

Оболочка загрузит движок, и вы увидите окно с результатами анализа. И что - ничего? Терпение... Минуту или около того все будет выглядеть так, как будто ничего не происходит, но после вы увидите, как дерево вариантов (там, где раньше была нотация партии), начнет заполняться данными:

Оно выглядит так же, как и обычное дерево дебютной книги, с которым вы уже знакомы. Существуют лишь небольшие различия в том, как отображаются данные. По-прежнему "N" означает число сыгранных игр (10 на тот момент, когда я сделал снимок экрана) и процент того, наскольшо хорош этот ход с точки зрения белых; мы видим, что жертва качества Яновского пока неочевидна. "Prob" - вероятность того, что этот ход будет сделан; пока что 14... Rxb6 было сыграно в каждой игре Рыбки против самой себя, поэтому его вероятность равна 100%.

Замечу, что вы можете просматривать ходы дерева также и в то время, пока оно формируется. Используйте стрелки на вашей клавиатуре, чтобы двигаться по ходам (вправо и влево - ход вперед или назад, вверх и вниз для выбора хода из нескольких отображаемых в дереве).

Строка наверху монитора также содержит полезную информацию:

Эта строка показывает, какой движок используется при анализе и глубину анализа в полуходах, которую мы установили в начале. Мы также видим, сколько игр сыграно на данный момент (54, когда я сделал снимок экрана) и их результаты. В нашем случае белые выиграли 25 игр, в то время как черные только 3; 26 игр закончились вничью. Следующий показатель - уровень успеха, данный со стороны белых (70,4%). "TP" - перфоманс, также представленный за белых. Остальные показатели пока что остаются для меня непонятными.

Вы можете запускать анализ Монте-Карло на столько времени, на сколько захотите. Помните, что чем больше игр сыграет движок, тем более достоверными будут статистические результаты.

Теперь в последний раз взглянем на статистику анализа Монте-Карло нашей игры Дидер - Яновский после хода белых 14.с3:

После 100 сыгранный Рыбкой игр мы видим, что жертва качества Яновского действительно была единственным заслуживающим внимания ходом (100% вероятность и ни одного другого хода в дереве вариантов). Но и после этого хода белые набирают 68% очков с позиции после 14... Rxb6 (т.е. получая более 2/3 всех возможных очков, где победа оценивается в одно очко, ничья в пол-очка, естественно). Черные выиграли только 7 из 100 партий, сыгранных с этой позиции.

Проведенный анализ Монте-Карло говорит нам, что ход 14... Rxb6 не давал черным преимущества, но Яновский был вынужден так сыграть, потому что все альтернативы были еще хуже (так что Яновский еще раньше принял решение, которое и привело к трудной позиции). Но интересно, что Яновский выиграл эту игру; вы можете поискать в базе партий и доиграть ее до конца, если захотите.

Вернемся к Рыбке: чтобы остановить анализ Монте-Карло, нажмите на Stop (небольшая красная кнопка с белым крестиком в верхнем левом углу панели анализа Монте-Карло). Вы увидите всплывающее окно с вопросом, желаете ли вы сохранить построенное дерево вариантов. Нажав "Да", вы получите стандартное окно Windows с предложением выбрать папку для сохраниения и присвоить имя файлу. Помните, что все ходы партий являются частью дерева и сохраняются в нем с того момента, где вы запустили анализ. В нашем примере все ходы после 14.с3 будут сохранены вместе в общем дереве "Monte-Carlo tree", которое начинается с четырнадцатого хода черных.

Если вы выберете "Нет", то вы просто вернетесь к обычному виду (доска и панель нотации). Все ходы, которые вы просматривали, пока анализ составлял дерево, будут отображены как варианты / подварианты в нотации партии.

Все, что я написал, содержит много букв, но на самом деле все очень просто. Анализ Монте-Карло позволяет Рыбке играть множество игр против самой себя и сохранять все результаты в дереве вариантов. Понять все это вовсе не сложно.

До следующей недели.

© Оригинал - Steven A. Lopez

© Перевод - Vitaly Khimkin