Computer Go

редактировать
Область искусственного интеллекта, предназначенная для создания компьютерной программы, которая воспроизводит Go

Computer Go - это поле искусственный интеллект (AI), предназначенный для создания компьютерной программы, которая воспроизводит традиционную настольную игру Go. Игра Го была плодотворным предметом исследований искусственного интеллекта на протяжении десятилетий, кульминацией которой в 2017 году стало то, что AlphaGo Мастер выиграл три из трех игр у Ке Джи, который в то время постоянно держал №1 в мире за два года.

Содержание
  • 1 Эффективность
    • 1.1 Ранние десятилетия
    • 1.2 21 век
    • 1.3 2015 г. и далее: эпоха глубокого обучения
  • 2 Препятствия на пути к высокому уровню показателя
    • 2.1 Размер доски
    • 2.2 Количество вариантов ходов
    • 2.3 Функция оценки
    • 2.4 Комбинаторные задачи
    • 2.5 Финал
    • 2.6 Порядок игры
  • 3 Тактический поиск
  • 4 Представление состояния
  • 5 Проектирование системы
    • 5.1 Новые подходы к задачам
    • 5.2 Философия проектирования
      • 5.2.1 Минимаксный поиск в дереве
      • 5.2. 2 Системы, основанные на знаниях
      • 5.2.3 Монте-Карло методы
      • 5.2.4 Машинное обучение
    • 5.3 AlphaGo
  • 6 Список компьютерных программ для игр в го
  • 7 Соревнования компьютерных программ Go
    • 7.1 История
    • 7.2 Проблемы формализации правил в компьютерной среде компьютерных игр
    • 7.3 Тестирование
  • 8 См. также
  • 9 Ссылки
  • 10 Дополнительная литература
  • 11 Внешние ссылки
Производительность

Го - сложная настольная игра, требующая интуиции, творческое и стратегическое мышление. Это долгое время считалось сложной сложной в области искусственного интеллекта (AI), и ее значительно труднее решить, чем шахматы. Многие в области искусственного интеллекта считают, что Go требует больше элементов, имитирующих человеческое мышление, чем шахматы. Математик И. Дж. Гуд писал в 1965 году:

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

До 2015 года лучшие программы для игры в го высшего только уровня любительского дана. На маленькой доске 9 × 9 компьютер показал себя лучше, и некоторым программам удавалось выигрывать часть своих игр 9 × 9 у профессиональных игроков. До AlphaGo некоторые исследователи утверждали, что компьютеры никогда не победят лучших людей в Go.

Ранние десятилетия

Первая программа Go была написана Альбертом Линдси Зобристом в 1968 году. в рамках его диссертации по распознаванию образов. Он ввел функция влияния для оценки территории и хеширование Зобрист для обнаружения ko.

. В апреле 1981 года Джонатан К. Миллен опубликовал статью в Байт, в котором обсуждалась Программа Go с платой 15x15, которая помещается в 1K RAM микрокомпьютера KIM-1. Брюс Ф. Вебстер опубликовал в журнале статью в ноябре 1984 года, в которой обсуждалась программа Go, для которой он написал Apple Macintosh, включая источник MacFORTH.

В 1998 году очень сильные игроки смогли побеждать компьютерные программы, создавая гандикап в 25–30 стоунов, огромный гандикап, когда-либо приняли бы немногие игроки-люди. Был случай на чемпионате мира по компьютерному гоу 1994 года, когда победившая программа Go Intellect проиграла все три игры молодым игрокам, получив гандикап в 15 очков. В общем, игроки, которые использовали слабые стороны программы, могли выиграть значительно большими гандикапами, чем обычные игроки.

21 век

Развитие поиска по дереву Монте-Карло и машинное обучение вывело лучшие программы на высокий дан уровень на маленькой доски 9x9. В 2009 году появились первые такие программы, которые могли достичь и удерживать низкие ранги уровня дана на KGS Go Server, а также на плате 19x19.

В 2010 году на Европейском Конгрессе Го в Финляндии в 2010 году MogoTW сыграл 19x19 Го против Каталина Тарану (5 очков). MogoTW получил гандикап в семь стоек и выиграл.

В 2011 году Дзен достиг 5 дан на сервере KGS, играя игры по 15 секунд на ход. Учетная запись, которая достигла этого ранга, использует кластерную версию Zen, работающую на 26-ядерной машине.

В 2012 году Дзен победил Такемию Масаки (9 очков) на 11 очков с гандикапом в пяти камнях. за последовательную победу с 20 очками с форой в четыре камня.

В 2013 году Crazy Stone победил Йошио Исида (9p) в игре 19 × 19 с четырьмя камнями. гандикап.

Codecentric Go Challenge 2014, лучший из пяти матчей в четном матче 19x19, проводился между Crazy Stone и Franz-Jozef Dickhut (6d). Ни один более сильный игрок прежде не соглашался сыграть серьезное соревнование против программы на равных. Франц-Юзеф Дикхут выиграл, хотя Crazy Stone выиграл первый результат с результатом 1,5 очка.

2015 г. и далее: эпоха глубокого обучения

В октябре 2015 г. программа Google DeepMind AlphaGo победил Фань Хуэй, чемпиона Европы по го, пять раз из пяти в условиях турнира.

В марте 2016 года AlphaGo победила Ли Седола в первых трех матчах из пяти. Это был первый раз, когда мастер 9 дан играл профессиональную игру против компьютера без гандикапа. Ли выиграл четвертый матч, назвав свою победу «бесценной». AlphaGo выиграла финальный матч двумя днями позже.

В мае 2017 года AlphaGo победила Ке Джи, который на тот момент занимал первое место в мире, в матче из трех игр. во время Future of Go Summit.

В октябре 2017 года DeepMind представила новую версию AlphaGo, обученную только через самостоятельную игру, которая превзошла все предыдущие версии, превзойдя версию Ке Джи в 89 из 100 игр.

Первые принципы AlphaGo были опубликованы в журнале Nature, другие смогли создать программы высокого уровня. К 2017 году оба проекта Zen и Tencent Fine Art были иногда побеждать профессионалов очень высокого уровня и с открытым исходным кодом Выпущен двигатель Leela Zero.

Препятствия на пути к высокому уровню игры

В течение долгого времени было широко распространено мнение, что компьютерный Го представляет собой проблему, принципиально отличную от компьютерных шахмат. Считалось, что методы, основанные на быстром глобальном поиске с относительно небольшими знаниями предметной области, не будут эффективны против людей-экспертов. Таким образом, большая часть усилий по разработке компьютерного языка сконцентрирована на способах представления экспертных знаний, подобных человеку, и сочетанию их с локальным поиском для ответа на вопросы тактического характера. Результатом этого явления были проблемы, которые хорошо справлялись с общей обработкой событий. Кроме того, эти классические программы практически ничего не выиграли от увеличения доступной вычислительной мощности как таковой, и прогресс в этой области был в целом медленным.

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

Появление программ, основанных на поиске Монте-Карло (начатое в 2006 году), во многом изменило ситуацию: первые профессиональные игроки с 9 данами в го проиграли в 2013 году многоядерным процессорам. компьютеры, хотя и с четырехсторонним дефектом.

Размер доски

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

В 2002 году компьютерная программа под названием MIGOS (MIni GO Solver) полностью решила игру го для доски 5 × 5. Черные побеждают, забирая всю доску.

Количество вариантов ходов

Продолжая сравнение с шахматами, ходы го не так ограничены правила игры. Для первого хода в шахматах у игрока есть двадцать вариантов. Игроки в го начать с выбора из 55 различных разрешенных ходов с учетом симметрии. Это число быстро растет, поскольку симметрия нарушается, и вскоре оценивать почти все из 361 пункта доски. Некоторые ходы намного популярнее других, а некоторые почти никогда не используются, но все возможны.

Функция оценки

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

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

Более одного хода можно считать лучшим в зависимости от того, какая стратегия используется. Чтобы выбрать ход, компьютер должен оценить возможные исходы и решить, какой из них лучше. Это сложно из-за тонких компромиссов, присутствующих в Go. Например, можно захватить некоторые вражеские камни за усиление вражеских камней в другом месте. Хорошая ли сделка или нет, может быть трудным решением даже для игроков-людей. Вычислительная сложность также проявляется здесь, поскольку ход может быть важен не сразу, но после множества ходов может стать очень важным, поскольку области доски обретают форму.

Комбинаторные задачи

Иногда в этом контексте возникают сложные комбинаторные задачи (фактически любая NP-сложная проблема) могут быть преобразованы в Go-подобные задачи. на достаточно большой доске; однако то же самое верно и для других абстрактных настольных игр, включая шахматы и тральщик, если их обобщить на доску произвольного размера. NP-полные задачи в общем случае имеют тенденцию быть проще для людей без посторонней помощи, чем для другого образом запрограммированных компьютеров: сомнительно, что люди без посторонней помощи могут успешно конкурировать с компьютерами в решении, например, задачи задачи о сумме подмножества .

Финал

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

Применение сюрреалистические числа до финала в Го, общий анализ игры, впервые предложенный Джоном Х. Конвеем, был развит Элвином Р. Берлекэмпом и Дэвидом Вулфом и изложены в их книге Mathematical Go (ISBN 978-1-56881-032-4 ). Несмотря на то, что в большинстве игровых обстоятельств он не является универсальным, он очень помогает при анализируемых классах позиций.

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

  • Даже если компьютер может безупречно разыграть каждую локальную зону эндшпиля, мы не можем сделать вывод, что его игра будет безупречной в отношении всей доски. Дополнительные области рассмотрения эндшпиле включают отношения сэнтэ и готе, приоритизацию различных локальных эндшпилей, подсчет и оценку территории и т. Д.
  • Эндшпиль может включать многие другие аспекты го, включая «жизнь и смерть», которые также известны как NP-трудные.
  • Каждая из локальных областей эндшпиля может влиять друг на друга. Другими словами, они динамичны по своей природе, хотя визуально изолированы. Это затрудняет рассуждение как компьютеров, так и людей. Такая природа приводит к некоторым сложным ситуациям, такой как тройное ко, четверное ко, мелассовое ко и самогонная жизнь.

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

Порядок игры

Двигатели го, основанные в Монте-Карло, имеют репутацию более склонных играть тенуки, перемещаться в другом месте на доске, чем продолжать локальный бой, чем игроки-люди. Непосредственный расчет, когда требуется конкретный локальный переезд, может быть трудным. В начале существования программы это часто воспринимается как недостаток. Тем не менее, эта тенденция сохраняет в стиле игры AlphaGo с доминирующими результатами, так что это может быть скорее «причудой», чем «слабостью».

Тактический поиск

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

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

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

Представление состояния

Проблема, которую должны решать все программы, заключается в том, как представить текущее состояние игры. Для программ, используемых расширенных методов поиска, необходимо копировать и / или использовать для каждого нового рассматриваемого гипотетического хода. Это налагает дополнительное ограничение.

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

другие программы для оценки используют не только необработанную информацию доски.. Такие данные, как то, какие камни связаны в цепочки, какие цепочки связаны друг с другом, какие группы подвержены риску захвата и какие группы фактически мертвы, необходимы для точной оценки положения. Хотя эта информация может быть извлечена только из позиций камней, часть ее можно вычислить быстрее, если она будет обновляться постепенно, за ход. Это инкрементное обновление требует, чтобы в качестве состояния платы сохранялось больше информации, что, в свою очередь, может увеличить время копирования платы. Такой компромисс свидетельствует о проблемах, связанных с созданием быстрых компьютерных программ Go.

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

Системный дизайн

Новые подходы к проблемам

Исторически, методы GOFAI (Старый добрый AI) использовались для решения проблемы Go AI.. Совсем как недавно альтернативного подхода использовались нейронные сети . Одним из примеров программы, использующей нейронные сети, является WinHonte.

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

Результаты исследований Computer Go применяются в других подобных областях, таких как когнитивная наука, распознавание образов и машинное обучение. Комбинаторный Теория игр, ветвь прикладной математики, относится к компьютерному Go.

Философия дизайна

Единственный выбор, который нужно сделать программу, - это где link следующий камень. Однако это решение затруднено из-за широкого диапазона ударов, которые один камень может оказывать по всей доске, и из-за сложных взаимодействий, которые различные группы камней могут иметь друг с другом. Для решения этой проблемы возникли различные архитектуры. Наиболее популярное использование:

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

Минимаксный поиск по дереву

Один из традиционных методов AI для создания игрового программного обеспечения - это использование minimax поиска по дереву. Это включает в себя воспроизведение всех гипотетических ходов на доске до определенной точки, а затем использование функции оценки для оценки значения этой позиции для текущего игрока. Выбирается ход, ведущий к лучшей гипотетической доске, и процесс повторяется каждый ход. Хотя поиск по дереву был очень эффективен в компьютерных шахматах, он был менее успешным в программах Computer Go. Отчасти это связано с тем, что традиционно было трудно создать эффективную функцию оценки для доски Go, а отчасти потому, что большое количество возможных ходов, которые каждая сторона может сделать, приводит к высокому коэффициенту ветвления. Это делает этот метод очень дорогим с точки зрения вычислений. Из-за этого многие программы, которые широко используют деревья поиска, могут играть только на меньшей доске 9 × 9, а не на полных 19 × 19.

Существует несколько методов, которые могут значительно улучшить производительность деревьев поиска с точки зрения как скорости, так и памяти. Такие методы сокращения, как альфа-бета-сокращение, Поиск основной вариации и MTD-f, могут уменьшить эффективный коэффициент ветвления без потери прочности. В тактических областях, таких как жизнь и смерть, Go особенно подходит для таких методов кэширования, как таблицы транспонирования. Это может уменьшить количество повторяемых усилий, особенно в сочетании с подходом итеративного углубления. Чтобы быстро сохранить полноразмерную доску Go в таблице транспонирования, обычно требуется метод хеширования для математического обобщения. Хеширование Zobrist очень популярно в программах Go, потому что оно имеет низкую частоту конфликтов и может итеративно обновляться на каждом шаге с помощью всего двух XOR, а не вычисляться с нуля. Дажепри использовании этих методов повышения производительности полный поиск по дереву на полноразмерной плате по-прежнему слишком медленный. Поиски можно ускорить, используя большое количество техник отсечения, зависящих от предметной области, например, ваш противник уже силен, и выборочных расширений, таких как постоянный учет ходов рядом с группами камней, которые собираются захватить. Однако оба варианта сопряжены со значительным риском игнорирования жизненно важного шага, который изменил бы ход игры.

Результаты компьютерных соревнований показывают, что сопоставления с образцом для выбора нескольких подходящих методов в сочетании с быстрым локализованным тактическим поиском (объяснено выше) когда-то были достаточными для создания соревновательной программы. Например, GNU Go был конкурентоспособным до 2008 года.

Системы, основанные на знаниях

Новички часто узнают много нового из игровых записей старых игр, в которые играют опытные игроки. Существует сильная гипотеза, согласно которой получение знаний о го - это ключ к созданию сильного компьютерного го. Например, Тим Кингер и Дэвид Мехнер утверждают, что «мы верим, что с лучшими инструментами для представления и поддержания знаний Go можно будет разработать более сильные программы Go». Они распознают два пути: распознавание общих сигналов камней. «Программам на Go по-прежнему не хватает как качества, так и количества знаний».

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

Предположительно, из формальных математических утверждений, утверждено, что большинство успешных результатов приходит из навыков программистов. они пытаются заставить компьютер имитировать то, как они играют в го. «Большинство соревновательных программ требовали 5–15 человеко-лет, содержащих 50–100 модулей, различных возможностей игры».

Этот метод до недавнего времени был наиболее эффективным методом создания соревновательного го программы на полноразмерной доске. Некоторые примерами программ, которые считаются известными как Goemate, The Many Faces of Go, Go Intellect и Go ++, каждая из в какой-то момент считалась лучшей программой Go в мире.

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

Методы Монте-Карло

Одной из основных альтернатив использования знаний и поиска, закодированных вручную, использование Методы Монте-Карло. Разыгрываются тысячи игр в случайном порядке на полученной доске. Ход, который приводит к лучшему набору случайных игр для текущего игрока, выбирается как лучший ход. В том, что он требует очень мало знаний в предметной области или включает в себя большое количество требований к памяти и процессору, используется большой метод. Однако, как ходы, используемый для оценки, генерируется случайным образом, возможно, что ход, который был бы превосходным, за исключением одного конкретного ответа, будет ошибочно оценен как хороший ход. Результатом этого являются программы, сильные в общем стратегическом смысле, но несовершенные тактически. Эту проблему можно смягчить, добавить некоторые знания предметной области при генерации хода и увеличить глубину поиска поверх случайной эволюции. Некоторые программы, использующие методы Монте-Карло: Fuego, The Many Faces of Go v12, Leela, MoGo, Crazy Stone, MyGoFriend и Zen.

В 2006 году разработан новый метод поиска, верхние доверительные границы, применяемые к деревьям (UCT), который был применен ко многим программам 9x9 Monte-Carlo Go с отличными результатами. UCT использует собранные до сих пор результаты разыгрывания, чтобы направлять поиск по более успешным линиям игры, позволяя исследовать альтернативные линии. Техника UCT вместе со многими другими оптимизациями для игры на большой доске 19x19 позволила MoGo стать из самых сильных исследовательских программ. Ранние успешные применения методов UCT в 19x19 Go включают MoGo, Crazy Stone и Mango. МоГорал компьютерную олимпиаду 2007 года и выиграл одну (из трех) блиц-партию против Гуо Хуана, 5-го дана профи, намного менее сложном 9x9 Вперед. Компания Many Faces of Go выиграла компьютерную олимпиаду 2008 года, добавив поиск UCT к традиционной системе, основанной на своей знаниях.

Машинное обучение

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

Обычно это делается путем нейронной сети или генетического алгоритма либо просматривать большую базу данных профессиональных игр, либо играть во множество игр против себя или других людей или программы. Затем эти алгоритмы могут использовать эти данные как средство повышения производительности. AlphaGo использовала это с большим эффектом. Другими программами, использующими нейронные сети, ранее были NeuroGo и WinHonte.

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

AlphaGo

AlphaGo, разработанной Google. DeepMind добилась значительного прогресса, используя методы, сочетающие глубокое обучение и поиск по дереву Монте-Карло. AlphaGo значительно мощнее, чем другие предыдущие программы Go, первая, кто победил профессионального человека с 9 данами в игре без препятствий на полноразмерной доске.

Список компьютерных программ для игр в го
  • AlphaGo, первая компьютерная программа, выигравшая в равных матчах с профессиональным игроком в го
  • AYA Хироши Ямасита
  • BaduGI от Jooyoung Lee
  • Crazy Stone от Rémi Coulom (продается как Saikyo no Igo в Японии)
  • Darkforest от Facebook
  • Fine Art от Tencent
  • Fuego, программа с открытым исходным кодом Монте-Карло
  • Goban, Macintosh OS X Go программа от Sen : te (требуются расширения Goban)
  • GNU Go, классическая программа Go с открытым исходным кодом
  • Go ++ от Майкла Рейсса (продается как Strongest Go или Tuyoi Igo в Японии)
  • Лила, первая программа Монте-Карло для продажи
  • Лила Зеро, повторная реализация системы, описанной в статье AlphaGo Zero
  • Многоликость Go Дэвид Фотланд (продается как AI Igo в Японии)
  • MyGoFriend от Фрэнка Каргера
  • MoGo от Sylvain Gelly; параллельная версия многих людей.
  • Программа Монте-Карло с открытым исходным кодом Pachi от Петра Баудиша, онлайн-версия Peepo от Джонатана Четвинда, с картами и комментариями во время игры
  • Smart Go от Андерса Керульфа, изобретателя Smart Game Format
  • Steenvreter от Эрика ван дер Верфа;
  • Дзэн от Ёдзи Одзима, он же Ямато (продается как Tencho no Igo в Японии); параллельная версия Хидеки Като.
Соревнования среди компьютерных программ Го

Между компьютерными программами Го проводится несколько ежегодных соревнований, наиболее заметными из которых являются Го на Компьютерной Олимпиаде. Регулярные, менее формальные соревнования между программами, которые раньше проводились на KGS Go Server (ежемесячно) и Computer Go Server (постоянно).

Известные программы по игре в го включают Crazy Stone, Zen, Aya, Mogo, The Many Faces of Go, pachi и Fuego, все перечисленные выше; а также холодное молоко тайваньского автора, Steenvreter голландского автора и DolBaram корейского автора.

История

Первые соревнования по компьютерному Go были спонсированы Acornsoft, первые регулярные соревнования - USENIX. Они проводились с 1984 по 1988 год. Эти соревнования представили Nemesis, первую соревновательную программу Го от Брюса Уилкокса и G2.5, которая позже эволюционировала в Cosmos и The Many Faces of Go.

Одним из первых стимулов для исследований компьютерного го была премия Ing Prize, относительно крупная денежная премия, спонсируемая тайваньским банкиром Инг Чан-ки, ежегодно вручаемая в период с 1985 по 2000 год в World Computer Go Congress (или Ing Cup). Победителю этого турнира разрешили бросить вызов молодым игрокам с гандикапом в коротком матче. Если компьютер выигрывал матч, присуждался приз и объявлялся новый приз: больший приз за победу над игроками с меньшим гандикапом. Срок действия призова был истек либо 1) в 2000 году, либо 2) когда программа могла побить профессионала с 1 даном без гандикапа за 40 000 000 NT долларов. Последним победителем стал Handtalk в 1997 году, который потребовал 250 000 тайваньских долларов за победу в матче с гандикапом с 11 стоунами против трех 11–13-летних любителей 2–6 данов. На момент истечения срока действия приза в 2000 году невостребованный приз составлял 400 000 новых тайваньских долларов за победу в матче с гандикапом с девятью камнями.

Многие другие крупные региональные турниры по Го («конгрессы») имели подключенные компьютерные соревнования по Го. Европейский Конгресс Го спонсирует компьютерный турнир с 1987 года, мероприятие USENIX превратилось в Чемпионат США / Северной Америки по компьютерному Го, который ежегодно проводится с 1988 по 2000 год на Конгрессе США по Го.

Япония начала спонсировать соревнования по компьютерному го в 1995 году. Кубок FOST проводился ежегодно с 1995 по 1999 год в Токио. Этот турнир был заменен Gifu Challenge, который проводился ежегодно с 2003 по 2006 год в Огаки, Гифу. Computer Go UEC Cup проводится ежегодно с 2007 года.

Проблемы формализации правил в компьютерно-компьютерных играх

Когда два компьютера играют в Го против друга, в идеале нужно относиться к игре так же, как и к игре двух людей, избегая при этом вмешательстве реальных людей. Однако это может быть сложно во время подсчета очков в конце игры. Основная проблема заключается в том, что программное обеспечение для игры в го, которое обычно обменивается данными с помощью стандартизованного текстового протокола Go (GTP), не всегда соглашается относительно состояния камней.

Хотя не существует общего способа для двух разных программ "обсудить это" и разрешить конфликт, этой проблемы можно избежать по большей части, используя китайский, Tromp- Правила Тейлора или Американской ассоциации го (AGA), в которых требуется продолжение игры (без штрафа) до тех пор, пока не исчезнут разногласия по поводу статуса камней на доске. На практике, например, на сервере KGS Go, сервер может выступать посредником в споре, отправляя специальную команду GTP двум клиентским программам, указывая, что они должны продолжать ставить камни, пока не исчезнет вопрос о статусе какой-либо конкретной группы (все мертвые камни были захвачены). Сервер CGOS Go обычно обнаруживает, что программы уходят из игры еще до того, как игра достигает стадии подсчета очков, но, тем не менее, поддерживает модифицированную версию правил Тромпа-Тейлора, требующую полного прохождения.

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

Основным недостатком вышеупомянутой системы является то, что некоторые наборы правил (например, традиционные японские правила) наказывают игроков за выполнение этих дополнительных ходов, что исключает использование дополнительного воспроизведения для двух компьютеров.. Тем не менее, большинство современных программ Го поддерживают японские правила против людей и компетентны как в игре, так и в подсчете очков (Fuego, Many Faces of Go, SmartGo и т. Д.).

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

Тестирование

Доступно множество программ, которые позволяют компьютерным движкам Go играть друг против друга, и они почти всегда общаются через текстовый протокол Go (GTP).

GoGUI и его аддон gogui-twogtp можно использовать для игры двух движков друг против друга в одной компьютерной системе. SmartGo и Many Faces of Go также предоставляют эту функцию.

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

См. Также
Ссылки
Дополнительная литература
Внешние ссылки
В Викиучебнике есть книга на тему: Computer Go
Последняя правка сделана 2021-05-15 08:32:27
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте