вторник, 16 апреля 2013 г.

О вероятности возникновения различных эндшпилей в очных и адвансовых партиях

Недавно читал книгу Флера «Practical Endgame Playbeyond the basics»; напоминает «Стратегию эндшпиля» Шерешевского, но материал систематизирован не по отдельным принципам игры в эндшпиле, а по типам окончаний. Например, «две ладьи против ладьи и легкой фигуры» или «ладья и слона против ладьи и коня», и т.д.

К каждой главе Флер приводит вероятность возникновения такого типа эндшпиля, и мне было интересно посмотреть, есть ли какие-то систематические отличия очных партий от адвансовых. Я не стал опираться на его цифры, потому что он использовал маленькую выборку – только партии игроков с рейтингом 2600+, и у него получилось всего 25500 партий. 

Поэтому я пересчитал обе вероятности по своим базам. В очной мегабазе с твиками до 2013 года я отобрал только партии игроков с рейтингом 2400+. В адвансе я взял базу ИКЧФ и отобрал в ней партии игроков с рейтингом 2200+ (чтобы это все-таки был адванс) с 2005 (когда движки стали достаточно сильными) по 2013 годы. Итого в очной базе у меня осталось 521000 партий, в адвансовой – 97000.
Интересно, что все «чистые» эндшпили чаще возникают в очных партиях. Наверное, это как-то связано с тем, что за доской шахматисты стремятся реализовать перевес в простых позициях. В итоге при прочих равных условиях в адвансе добивают еще в миттельшпиле, а в очных чаще доходит до эндшпиля.

При этом вероятность возникновения «эндшпиля» в адвансе больше: 68% против 66%. Я думаю, что в адвансе на это повлияли более упорная защита и любители порезинить до мата. Здесь в понятие «эндшпиля» я включил все, что смотрел. То есть это почти все окончания, которые возникают в партиях с вероятностью больше 0,5%.
Зато эндшпили без качества в адвансе встречаются намного чаще, причем базовая «ладья против легкой фигуры» - более чем вдвое чаще. И в целом все распространенные эндшпили с нетождественным соотношением материала (ферзь против двух ладей, ферзь против ладьи и легкой фигуры, ладья против двух легких фигур и т.д.) встречаются в очных партиях намного реже адвансовых.

Наконец, паритет в распространенных сбалансированных окончаниях.

И в заключение, о «ничейной смерти».
Очные:
И адванс:
Я не включил в график 2012 год, потому что многие партии еще не закончились, и получился бы большой перекос в сторону вероятности ничьих.

четверг, 11 апреля 2013 г.

Перевод интервью с Доном Дейли - автором Комодо

Оригинал и полную версию интервью на английском языке можно найти на сайте TCEC.

Komodo – коммерческий движок Дона Дейли и Ларри Кауфмана. Рейтинг Komodo 5 – 3167. Движок занимает шестую строчку в общем рейтинг листе и четвертую – среди однопроцессорных программ. В текущем неофициальном чемпионате мира TCEC Komodo отобрался в третий этап и занимает третье место в таблице.



Когда вы начали работать над Komodo, или его первыми версиями, которые назывались Doch?

Не помню точно, около 4 или 5 лет назад. На самом деле я перестал заниматься разработкой шахматных программ почти на 15 лет, когда начал работать в стартапе в Массачусетсе. Так что это моя вторая карьера в компьютерных шахматах.

Ларри Кауфман раньше работал над Рыбкой. Как он оказался в команде разработчиков Komodo?

Мы перестали активно общаться, когда я ушел работать в Массачусетский технологический институт и после этого в стартап, который я упоминал. Но мы всегда были партнерами в компьютерных шахматах и сохраняли хорошие отношения. Я снова вышел с ним на связь, когда начал работать над Doch. Но поскольку он работал с Васиком, я не пытался заручиться его поддержкой. Тем не менее, Ларри интересовала моя работа, и иногда он предлагал какие-то идеи или отвечал на мои вопросы по разработке движка. Думаю, чем сильнее становился мой движок, тем больше интереса он проявлял. Постепенно мы начали работать над Doch вместе все больше и больше, а он тратил на Рыбку все меньше времени.

Когда я начал разрабатывать Doch, я делал это больше для развлечения. Я не стремился к созданию самого сильного движка в мире, к тому же мой возраст (мне уже 57) вычеркивает меня из профессиональных компьютерных шахмат. Но я пересмотрел свои взгляды, когда Doch становился все сильнее и сильнее, и мы не испытывали сложностей в усилении движка. Работа с Ларри стала дополнительным ускорением, потому что мы смогли постоянно обсуждать новые идеи. В какой-то момент мы даже рассчитывали прирост в пунктах ЭЛО за неделю. Меня очень обнадеживало, что мы могли выбрать значительно более сильный движок по сравнению с Doch и уже через несколько недель искать новую цель. Тот сильный движок становился слишком слабым конкурентом!

Нашей главной целью долго был Glaurung. Как только мы приближались к нему по силе игры, Торд [Ромстад] выпускал новую, более сильную версию – в итоге Glaurung превратился в Stockfish. Но мы постоянно двигались за этой целью и с каждым релизом приближались к конкурентам. Сейчас единственной целью остался Houdini, и наша работа практически не изменилась. Мы догнали по силе игры Houdini 2, но приходится бороться уже с Houdini 3.

Вы собираетесь переписать код Komodo и называете этот проект BeeKay. Расскажите, зачем понадобилось переписывать код?

Сначала я планировал сделать Komodo мультипроцессорным движком, но со временем код стал слишком неряшливым, и я посчитал непрактичной дальнейшую работу в этом направлении. К тому же мне все больше не нравилось качество и чистота кода, и я планировал переписать его. Я читал о С++11, и собирался применить кое-что из объектно-ориентированного программирования в BeeKay. Не думаю, что я буду полностью переписывать код, но я исправлю то, что считаю необходимым.

То есть BeeKay будет написан на другом языке по сравнению с Komodo?

Komodo написан на стандартном С, BeeKay на С++11.

Как вы тестируете движок, после того как изменили код?

Это зависит от того, какие изменения мы сделали. Есть несколько видов изменения кода, которые требуют разного тестирования. Например, вы можете только ускорить движок, но не улучшить его функционально. Мы проверяем такое изменение небольшим тестом на «вменяемость» - запускаем несколько тысяч партий с коротким контролем и проверяем, что движок работает нормально.

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

Поскольку у нас нет ресурсов для регулярных тестов на нормальном контроле (например, 50000 партий по 5 минут), мы проводим такие тесты относительно редко, примерно каждые 20 небольших улучшений движка.

Как вы оцениваете выступление Komodo в этом сезоне ТСЕС?

Конечно, я доволен. Я не ожидал, что одноядерный Komodo выступит так успешно против 3- и 16-ядерных программ. Я знаю, что даже на одном ядре Komodo сильнее большинства многоядерных движков, но, тем не менее, есть несколько более сильных программ по сравнению с нашей.

Большинство зрителей ожидало BeeKay уже к третьей стадии отбора. Если Komodo пройдет третий этап, вы собираетесь подготовить мультипроцессорную версию для четвертого?

Надеюсь, да. На данный момент [07.04.2013] BeeKay слабее даже Komodo 5, а в турнире играет еще более сильная версия движка. Я бы оценил разницу примерно 70 пунктов, поэтому нам потребуется 3-4 дополнительных ядра только для того, чтобы сократить это отставание между версиями. Я не думаю, что выход BeeKay вместо Komodo 5 в четвертом этапе будет большим усилением, но в какой-то степени это может помочь.

К тому же мне не нравится идея выпускать движок без полноценного тестирования. На данный момент у BeeKay немного шансов выйти в суперфинал, и нет никаких шансов выиграть в нем у Houdini. Впрочем, если я успею уравнять силу одноядерного BeeKay и Komodo к четвертому этапу, то BeeKay и Houdini будут фаворитами на выход в суперфинал.

Вам удалось найти специфические слабости движка, основываясь на партиях этого сезона TCEC?

Да, я должен поработать над безопасностью короля. Я видел несколько партий, которые Komodo проиграл из-за этой проблемы, и при этом он долго оценивал позицию слишком оптимистично.

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

Сейчас на рынке шахматных движков много клонов и деривативов, люди активно используют движки с открытым кодом, компилируют их заново, и выпускают под своим именем. Что вы думаете на этот счет?

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

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

Недавно Stockfish начал открытое тестирование новых версий движка. Что вы думаете о таком подходе?

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

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

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

Иногда у авторов заканчиваются идеи, и развитие движков замедляется – как у профессиональных шахматистов. В компьютерных шахматах необходима фантазия, поскольку всегда кажется, что улучшать больше нечего. Но если продолжать работать, то постепенное усиление силы движков неизбежно.