среда, 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

Комментариев нет: