Компьютерное го — это область искусственного интеллекта (ИИ), посвященная созданию компьютерной программы , которая играет в традиционную настольную игру го . Область резко разделена на две эпохи. До 2015 года программы той эпохи были слабыми. Лучшие усилия 1980-х и 1990-х годов создавали только ИИ, которые могли быть побеждены новичками, а ИИ начала 2000-х годов были в лучшем случае среднего уровня. Профессионалы могли побеждать эти программы даже при гандикапе в 10+ камней в пользу ИИ. Многие из алгоритмов, таких как альфа-бета-минимакс , которые хорошо работали как ИИ для шашек и шахмат, развалились на доске го 19x19, так как было слишком много возможностей ветвления, которые нужно было учитывать. Создание программы профессионального качества с использованием методов и оборудования того времени было недостижимо. Некоторые исследователи ИИ предполагали, что эта проблема неразрешима без создания ИИ, подобного человеку .
Применение поиска по дереву Монте-Карло к алгоритмам го обеспечило заметное улучшение в конце 2000-х годов , когда программы наконец смогли достичь уровня низкого дана : продвинутого любителя. Любители и профессионалы с высоким даном все еще могли использовать слабости этих программ и последовательно побеждать, но производительность компьютеров превзошла средний уровень (однозначный кю ). Заманчивая невыполненная цель победить лучших игроков-людей без гандикапа, долгое время считавшаяся недостижимой, вызвала всплеск нового интереса. Ключевым открытием оказалось применение машинного обучения и глубокого обучения . DeepMind , приобретение Google , посвященное исследованиям ИИ, создало AlphaGo в 2015 году и анонсировало его миру в 2016 году. AlphaGo победил Ли Седоля , профессионала с 9 даном, в матче без гандикапа в 2016 году, затем победил Кэ Цзе в 2017 году , который в то время непрерывно удерживал первое место в мировом рейтинге в течение двух лет. Так же, как шашки пали под натиском машин в 1995 году , а шахматы — в 1997 году , компьютерные программы наконец-то победили величайших чемпионов человечества по го в 2016–2017 годах. DeepMind не выпускала AlphaGo для публичного использования, но с тех пор были созданы различные программы на основе журнальных статей, опубликованных DeepMind и описывающих AlphaGo и его варианты.
Профессиональные игроки в го считают, что игра требует интуиции, творческого и стратегического мышления. [1] [2] Она долгое время считалась сложной задачей в области искусственного интеллекта (ИИ) и ее значительно сложнее решить, чем шахматы . [3] Многие в этой области считали, что го требует больше элементов, имитирующих человеческое мышление, чем шахматы. [4] Математик И. Дж. Гуд писал в 1965 году: [5]
Go на компьютере? – Чтобы запрограммировать компьютер на разумную игру в Го, а не просто на легальную игру, необходимо формализовать принципы хорошей стратегии или разработать обучающую программу. Принципы более качественные и загадочные, чем в шахматах, и больше зависят от суждения. Поэтому я думаю, что будет еще сложнее запрограммировать компьютер на разумную игру в Го, чем в шахматы.
До 2015 года лучшим программам Го удавалось достичь только любительского уровня дана. [6] [7] На небольшой доске 9×9 компьютер справлялся лучше, и некоторым программам удавалось выиграть часть своих игр 9×9 против профессиональных игроков. До AlphaGo некоторые исследователи утверждали, что компьютеры никогда не победят лучших людей в Го. [8]
Первая программа Go была написана Альбертом Линдси Зобристом в 1968 году как часть его диссертации по распознаванию образов . [9] Она ввела функцию влияния для оценки территории и хеширование Зобриста для обнаружения ko .
В апреле 1981 года Джонатан К. Миллен опубликовал статью в Byte, в которой обсуждалась Wally, программа Go с доской 15x15, которая помещалась в ОЗУ микрокомпьютера KIM-1 объёмом 1 Кб. [10] Брюс Ф. Вебстер опубликовал статью в журнале в ноябре 1984 года, в которой обсуждалась программа Go, написанная им для Apple Macintosh , включая исходный код MacFORTH . [11] Программы для Go были слабыми; в статье 1983 года было подсчитано, что они в лучшем случае эквивалентны 20 кю , рейтингу наивного новичка, и часто ограничивались досками меньшего размера. [12] ИИ, которые играли на Internet Go Server (IGS) на досках размером 19x19, имели силу около 20–15 кю в 2003 году после существенных улучшений в оборудовании. [13]
В 1998 году очень сильные игроки смогли победить компьютерные программы, давая гандикап в 25–30 камней, огромный гандикап, который мало кто из игроков-людей когда-либо брал. Был случай на чемпионате мира по компьютерному го 1994 года, когда победившая программа Go Intellect проиграла все три игры молодым игрокам, получив гандикап в 15 камней. [14] В целом, игроки, которые понимали и использовали слабости программы, могли победить даже при больших гандикапах. [15]
В 2006 году (статья была опубликована в 2007 году) Реми Кулом создал новый алгоритм, который он назвал поиском по дереву Монте-Карло . [16] В нем игровое дерево создается как обычно из потенциальных будущих вариантов, которые разветвляются с каждым ходом. Однако компьютеры «оценивают» конечный лист дерева с помощью повторяющихся случайных розыгрышей (аналогично стратегиям Монте-Карло для других задач). Преимущество состоит в том, что такие случайные розыгрыши могут быть выполнены очень быстро. Интуитивное возражение — что случайные розыгрыши не соответствуют фактической ценности позиции — оказалось не таким фатальным для процедуры, как ожидалось; сторона алгоритма «поиск по дереву» была исправлена достаточно хорошо для нахождения разумных будущих игровых деревьев для исследования. Программы, основанные на этом методе, такие как MoGo и Fuego, показали лучшую производительность, чем классические ИИ более ранних версий. Лучшие программы могли работать особенно хорошо на маленькой доске 9x9, на которой было меньше возможностей для исследования. В 2009 году появились первые подобные программы, которые могли достигать и удерживать низкие дан-ранги на сервере KGS Go на доске 19x19.
В 2010 году на Европейском конгрессе по го 2010 года в Финляндии MogoTW играл в го 19x19 против Каталина Тарану (5 очков). MogoTW получил фору в семь стоунов и выиграл. [17]
В 2011 году Zen достиг 5 дана на сервере KGS, играя партии по 15 секунд на ход. Аккаунт, который достиг этого ранга, использует кластерную версию Zen, работающую на 26-ядерной машине. [18]
В 2012 году Зен победил Такемию Масаки (9 очков) с разницей в 11 очков при гандикапе в пять камней, а затем одержал победу с разницей в 20 очков при гандикапе в четыре камня. [19]
В 2013 году Crazy Stone победил Ёсио Исиду (9 очков) в игре 19×19 с гандикапом в четыре камня. [20]
Codecentric Go Challenge 2014 года, матч из пяти лучших в игре 19x19, был сыгран между Crazy Stone и Franz-Jozef Dickhut (6d). Ни один более сильный игрок не соглашался играть в серьезном соревновании против программы го на равных условиях. Franz-Jozef Dickhut победил, хотя Crazy Stone выиграл первый матч с разницей в 1,5 очка. [21]
AlphaGo , разработанная Google DeepMind , стала значительным шагом вперед в вычислительной мощи по сравнению с предыдущими программами для игры в го. Она использовала методы, которые объединяли глубокое обучение и поиск по дереву Монте-Карло . [22] В октябре 2015 года она победила Фань Хуэя , чемпиона Европы по го, пять раз из пяти в условиях турнира. [23] В марте 2016 года AlphaGo победила Ли Седоля в первых трех из пяти матчей. [24] Это был первый случай, когда мастер 9-го дана сыграл профессиональную игру против компьютера без гандикапа. [25] Ли выиграл четвертый матч, назвав свою победу «бесценной». [26] AlphaGo выиграла финальный матч два дня спустя. [27] [28] С этой победой AlphaGo стала первой программой, которая победила профессионала 9-го дана в игре без гандикапов на полноразмерной доске.
В мае 2017 года AlphaGo победил Кэ Цзе , который в то время был лучшим игроком в мире, [29] [30] в матче из трех игр во время саммита Future of Go . [31]
В октябре 2017 года DeepMind представила новую версию AlphaGo, обученную только посредством самостоятельной игры, которая превзошла все предыдущие версии, победив версию Кэ Цзе в 89 из 100 игр. [32]
После того, как основные принципы AlphaGo были опубликованы в журнале Nature , другие команды смогли создать высокоуровневые программы. Работа над Go AI с тех пор в основном состояла из эмуляции методов, используемых для создания AlphaGo, который оказался намного сильнее всего остального. К 2017 году и Zen , и проект Tencent Fine Art были способны иногда побеждать профессионалов очень высокого уровня. Также был создан движок Leela Zero с открытым исходным кодом.
Долгое время было широко распространено мнение, что компьютерная игра в го представляет собой проблему, принципиально отличную от компьютерных шахмат . Многие считали, что сильная программа для игры в го может быть создана только в далеком будущем в результате фундаментальных достижений в области общей технологии искусственного интеллекта. Те, кто считал эту задачу осуществимой, считали, что для эффективной борьбы с экспертами-людьми потребуются знания предметной области. Поэтому большая часть усилий по разработке компьютерной игры в го в то время была сосредоточена на способах представления экспертных знаний, подобных человеческим, и объединения их с локальным поиском для ответа на вопросы тактического характера. Результатом этого стали программы, которые хорошо справлялись со многими конкретными ситуациями, но имели очень выраженные недостатки в общем управлении игрой. Кроме того, эти классические программы почти ничего не выиграли от увеличения доступной вычислительной мощности. Прогресс в этой области был в целом медленным.
Большая доска (19×19, 361 пересечение) часто упоминается как одна из основных причин, по которой трудно создать сильную программу. Большой размер доски не позволяет альфа-бета-поисковику достичь глубокого предварительного просмотра без значительных расширений поиска или эвристик обрезки .
В 2002 году компьютерная программа под названием MIGOS (MIni GO Solver) полностью решила игру Го для доски 5×5. Черные побеждают, забирая всю доску. [33]
Продолжая сравнение с шахматами, ходы в Го не так ограничены правилами игры. Для первого хода в шахматах у игрока есть двадцать вариантов. Игроки в Го начинают с выбора из 55 различных разрешенных ходов, учитывая симметрию. Это число быстро растет по мере нарушения симметрии, и вскоре почти все 361 пункт доски должны быть оценены.
Одной из самых основных задач в игре является оценка позиции на доске: какая сторона имеет преимущество и насколько? В шахматах многие будущие позиции в дереве являются прямыми победами для одной стороны, и доски имеют разумную эвристику для оценки в простом подсчете материала, а также определенные позиционные факторы, такие как структура пешек. Будущее, в котором одна сторона потеряла своего ферзя без какой-либо выгоды, явно благоприятствует другой стороне. Эти типы правил позиционной оценки не могут быть эффективно применены к го. Ценность позиции го зависит от сложного анализа для определения того, жива ли группа, какие камни могут быть связаны друг с другом, и эвристики вокруг степени, в которой сильная позиция имеет влияние, или степени, в которой слабая позиция может быть атакована. Камень, размещенный, может не иметь немедленного влияния, но после многих ходов может стать очень важным в ретроспективе, поскольку другие области доски обретают форму.
Плохая оценка состояний доски заставит ИИ двигаться в направлении позиций, которые, по его ошибочному мнению, ему выгодны, но на самом деле это не так.
Одной из главных проблем для игрока в го является то, какие группы камней можно сохранить живыми, а какие можно захватить. Этот общий класс проблем известен как жизнь и смерть . Системы искусственного интеллекта на основе знаний иногда пытались понять статус жизни и смерти групп на доске. Самый прямой подход — выполнить поиск по дереву ходов, которые потенциально влияют на рассматриваемые камни, а затем записать статус камней в конце основной линии игры. Однако в рамках ограничений по времени и памяти, как правило, невозможно с полной точностью определить, какие ходы могут повлиять на «жизнь» группы камней. Это подразумевает, что необходимо применять некоторую эвристику для выбора ходов, которые следует учитывать. Чистый эффект заключается в том, что для любой данной программы существует компромисс между скоростью игры и способностями чтения жизни и смерти.
Проблема, которую должны решать все программы Go, заключается в том, как представить текущее состояние игры. Самый прямой способ представления доски — это одномерный или двумерный массив, где элементы в массиве представляют точки на доске и могут принимать значение, соответствующее белому камню, черному камню или пустому пересечению. Дополнительные данные необходимы для хранения того, сколько камней было захвачено, чей сейчас ход и какие пересечения являются незаконными из-за правила Ко . В целом, программы машинного обучения останавливаются на этой простейшей форме и позволяют органическому ИИ прийти к собственному пониманию значения доски, вероятно, просто используя розыгрыши Монте-Карло, чтобы «оценить» доску как хорошую или плохую для игрока. Однако «классические» программы ИИ, которые пытались напрямую моделировать стратегию человека, могли бы пойти дальше, например, наложить такие данные, как камни, которые считаются мертвыми, камни, которые безусловно живы, камни в состоянии секи взаимной жизни и т. д. в своем представлении состояния игры.
Исторически, символические методы искусственного интеллекта использовались для подхода к проблеме ИИ в Го. Нейронные сети начали пробовать в качестве альтернативного подхода в десятилетии 2000-х годов, поскольку они требовали огромной вычислительной мощности, которую было дорого или невозможно достичь в предыдущие десятилетия. Эти подходы пытаются смягчить проблемы игры в Го, имеющие высокий фактор ветвления и многочисленные другие трудности.
Единственный выбор, который должна сделать программа, — это куда поместить следующий камень. Однако это решение осложняется широким спектром воздействий, которые может оказать один камень на всю доску, и сложными взаимодействиями, которые могут иметь различные группы камней друг с другом. Для решения этой проблемы возникли различные архитектуры. Популярные методы и философии дизайна включают:
Одним из традиционных методов ИИ для создания игрового программного обеспечения является использование поиска по дереву минимакса . Это включает в себя воспроизведение всех гипотетических ходов на доске до определенной точки, а затем использование функции оценки для оценки значения этой позиции для текущего игрока. Выбирается ход, который приводит к лучшей гипотетической доске, и процесс повторяется каждый ход. Хотя поиск по дереву был очень эффективен в компьютерных шахматах , он имел меньший успех в программах компьютерной игры в го. Это отчасти потому, что традиционно было сложно создать эффективную функцию оценки для доски го, а отчасти потому, что большое количество возможных ходов, которые каждая сторона может сделать, приводит к высокому коэффициенту ветвления . Это делает этот метод очень вычислительно затратным. Из-за этого многие программы, которые широко используют деревья поиска, могут играть только на меньшей доске 9×9, а не на полной доске 19×19.
Существует несколько методов, которые могут значительно улучшить производительность деревьев поиска с точки зрения как скорости, так и памяти. Методы обрезки, такие как альфа-бета-обрезка , поиск основных вариаций и MTD(f), могут уменьшить эффективный фактор ветвления без потери прочности. В таких тактических областях, как жизнь и смерть, Go особенно поддается методам кэширования, таким как таблицы транспозиции . Они могут сократить количество повторяющихся усилий, особенно в сочетании с итеративным подходом к углублению . Чтобы быстро сохранить полноразмерную доску Go в таблице транспозиции, обычно необходим метод хеширования для математического суммирования. Хеширование Зобриста очень популярно в программах Go, поскольку оно имеет низкую частоту столкновений и может итеративно обновляться на каждом ходу всего двумя XOR , а не вычисляться с нуля. Даже при использовании этих методов повышения производительности полный поиск по дереву на полноразмерной доске все еще непомерно медленный. Поиск можно ускорить, используя большое количество методов обрезки, специфичных для домена, например, не рассматривать ходы, где ваш противник уже силен, и выборочные расширения, например, всегда рассматривать ходы рядом с группами камней, которые вот-вот будут захвачены . Однако оба эти варианта представляют значительный риск не рассмотреть жизненно важный ход, который мог бы изменить ход игры.
Результаты компьютерных соревнований показывают, что методы сопоставления шаблонов для выбора нескольких подходящих ходов в сочетании с быстрыми локализованными тактическими поисками (объясненными выше) когда-то были достаточны для создания конкурентоспособной программы. Например, GNU Go был конкурентоспособным до 2008 года.
Новички часто учатся на записях старых игр, сыгранных мастерами. Работа над ИИ в 1990-х годах часто включала попытки «обучить» ИИ эвристике человеческого стиля знаний Го. В 1996 году Тим Клингер и Дэвид Мехнер признали силу лучших ИИ на начальном уровне и утверждали, что «мы считаем, что с лучшими инструментами для представления и поддержания знаний Го можно будет разрабатывать более сильные программы Го». [34] Они предложили два способа: распознавать общие конфигурации камней и их позиции и концентрироваться на локальных сражениях. В 2001 году в одной из статей был сделан вывод, что «программам Го по-прежнему не хватает как качества, так и количества знаний», и что исправление этого улучшит производительность ИИ Го. [35]
Теоретически использование экспертных знаний улучшит программное обеспечение для игры в Го. Сотни руководств и правил для сильной игры были сформулированы как любителями высокого уровня, так и профессионалами. Задача программиста — взять эти эвристики , формализовать их в компьютерный код и использовать алгоритмы сопоставления и распознавания образов, чтобы распознавать, когда применяются эти правила. Также важно уметь «оценивать» эти эвристики, чтобы, когда они предлагают противоречивые советы, система имела способы определить, какая эвристика важнее и применимее к ситуации. Большинство относительно успешных результатов исходят из индивидуальных навыков программистов в Го и их личных догадок о Го, но не из формальных математических утверждений; они пытаются заставить компьютер имитировать их способ игры в Го. Соревновательные программы около 2001 года могли содержать 50–100 модулей, которые имели дело с различными аспектами и стратегиями игры, такими как дзёсэки. [35]
Некоторые примеры программ, которые в значительной степени полагались на экспертные знания, — Handtalk (позже известная как Goemate), The Many Faces of Go, Go Intellect и Go++, каждая из которых в какой-то момент считалась лучшей в мире программой для игры в Го. Однако эти методы в конечном итоге имели убывающую отдачу и никогда не продвигались дальше среднего уровня в лучшем случае на полноразмерной доске. Одной из конкретных проблем была общая стратегия игры. Даже если экспертная система распознает шаблон и знает, как играть в локальной стычке, она может пропустить надвигающуюся более глубокую стратегическую проблему в будущем. Результатом является программа, сила которой меньше суммы ее частей; в то время как ходы могут быть хороши на индивидуальной тактической основе, программу можно обмануть и заставить уступить слишком много взамен и оказаться в общей проигрышной позиции. Как было сказано в обзоре 2001 года, «всего один плохой ход может испортить хорошую игру. Производительность программы в полной игре может быть намного ниже, чем на уровне мастера». [35]
Одной из основных альтернатив использованию закодированных вручную знаний и поисков является использование методов Монте-Карло . Это делается путем создания списка потенциальных ходов и для каждого хода разыгрывания тысяч игр случайным образом на результирующей доске. Ход, который приводит к лучшему набору случайных игр для текущего игрока, выбирается как лучший ход. Не требуется потенциально ошибочной системы, основанной на знаниях. Однако, поскольку ходы, используемые для оценки, генерируются случайным образом, возможно, что ход, который был бы превосходным, если бы не один конкретный ответ противника, будет ошибочно оценен как хороший ход. Результатом этого являются программы, которые сильны в общем стратегическом смысле, но несовершенны тактически. [ необходима цитата ] Эту проблему можно смягчить, добавив некоторые знания предметной области в генерацию ходов и больший уровень глубины поиска поверх случайной эволюции. Некоторые программы, которые используют методы Монте-Карло, — это Fuego, [36] The Many Faces of Go v12, [37] Leela, [38] MoGo, [39] Crazy Stone , MyGoFriend, [40] и Zen.
В 2006 году была разработана новая методика поиска, верхние доверительные границы, применяемые к деревьям (UCT), [41] , которая была применена ко многим программам 9x9 Monte-Carlo Go с превосходными результатами. UCT использует результаты игровых выходов, собранные до сих пор, чтобы направлять поиск по более успешным линиям игры, при этом позволяя исследовать альтернативные линии. Метод UCT вместе со многими другими оптимизациями для игры на большой доске 19x19 привел к тому, что MoGo стала одной из самых сильных исследовательских программ. Успешные ранние применения методов UCT к 19x19 Go включают MoGo, Crazy Stone и Mango. [42] MoGo выиграла Компьютерную олимпиаду 2007 года и выиграла одну (из трех) блиц-игру против Го Цзюаня, 5-го дана Pro, в гораздо менее сложной 9x9 Go. Many Faces of Go [43] выиграла Компьютерную олимпиаду 2008 года после добавления поиска UCT к своему традиционному движку, основанному на знаниях.
Движки Го на основе Монте-Карло имеют репутацию гораздо более склонных играть тэнуки , ходы в другом месте на доске, чем игроки-люди, а не продолжать локальный бой. Это часто воспринималось как слабость на раннем этапе существования этих программ. [44] Тем не менее, эта тенденция сохранилась в игровом стиле AlphaGo с доминирующими результатами, так что это может быть скорее «причудой», чем «слабостью». [45]
Уровень навыков систем, основанных на знаниях, тесно связан со знаниями их программистов и связанных с ними экспертов в предметной области. Это ограничение затрудняет программирование действительно сильных ИИ. Другой путь — использовать методы машинного обучения . В них единственное, что нужно программистам запрограммировать, — это правила и простые алгоритмы подсчета баллов для анализа ценности позиции. Затем программное обеспечение автоматически генерирует собственное чувство шаблонов, эвристик и стратегий, в теории.
Обычно это делается путем предоставления нейронной сети или генетическому алгоритму возможности либо просматривать большую базу данных профессиональных игр, либо играть во множество игр против себя или других людей или программ. Затем эти алгоритмы могут использовать эти данные как средство улучшения своей производительности. Методы машинного обучения также могут использоваться в менее амбициозном контексте для настройки определенных параметров программ, которые в основном полагаются на другие методы. Например, Crazy Stone изучает шаблоны генерации ходов из нескольких сотен игр-образцов, используя обобщение системы рейтинга Эло . [46]
Самым известным примером такого подхода является AlphaGo, который оказался намного эффективнее предыдущих ИИ. В своей первой версии он имел один слой, который анализировал миллионы существующих позиций для определения вероятных ходов, чтобы расставить приоритеты как заслуживающие дальнейшего анализа, и другой слой, который пытался оптимизировать свои собственные шансы на победу, используя предложенные вероятные ходы из первого слоя. AlphaGo использовал поиск по дереву Монте-Карло для оценки полученных позиций. Более поздняя версия AlphaGo, AlphaGoZero, избегала обучения на существующих играх в го и вместо этого обучалась только многократно играя сама с собой. Другие более ранние программы, использующие нейронные сети, включают NeuroGo и WinHonte.
Результаты исследований компьютерного Го применяются в других схожих областях, таких как когнитивная наука , распознавание образов и машинное обучение . [47] Комбинаторная теория игр , раздел прикладной математики , является темой, относящейся к компьютерному Го. [35]
Джон Х. Конвей предложил применять сюрреалистические числа к анализу эндшпиля в Го. Эта идея была далее развита Элвином Р. Берлекампом и Дэвидом Вулфом в их книге «Математическое Го» . [48] Было доказано, что эндшпили Го являются PSPACE-трудными , если абсолютный лучший ход должен быть вычислен на произвольной, в основном заполненной доске. Некоторые сложные ситуации, такие как Triple Ko, Quadruple Ko, Molasses Ko и Moonshine Life, делают эту проблему сложной. [49] (На практике сильные алгоритмы Монте-Карло все еще могут достаточно хорошо обрабатывать обычные ситуации эндшпиля Го, и самые сложные классы проблем эндшпиля «жизнь или смерть» вряд ли возникнут в игре высокого уровня.) [50]
Различные сложные комбинаторные задачи (любая NP-трудная задача) могут быть преобразованы в задачи типа Го на достаточно большой доске; однако то же самое справедливо и для других абстрактных настольных игр, включая шахматы и сапера , при соответствующем обобщении на доску произвольного размера. NP-полные задачи в общем случае не имеют тенденции быть более простыми для людей без посторонней помощи, чем для соответствующим образом запрограммированных компьютеров: люди без посторонней помощи гораздо хуже компьютеров решают, например, примеры задачи суммы подмножества . [51] [52]
Проводится несколько ежегодных соревнований между компьютерными программами Го, включая соревнования по Го на Компьютерной олимпиаде . Регулярные, менее формальные соревнования между программами проводились на KGS Go Server [60] (ежемесячно) и Computer Go Server [61] (непрерывно).
Существует множество программ, позволяющих компьютерным движкам Го играть друг против друга; они почти всегда взаимодействуют через протокол Go Text Protocol (GTP).
Первое компьютерное соревнование по го спонсировалось Acornsoft , [62] а первые регулярные — USENIX . Они проходили с 1984 по 1988 год. На этих соревнованиях были представлены Nemesis, первая конкурентоспособная программа го от Брюса Уилкокса , и G2.5 Дэвида Фотланда, которая позже разовьется в Cosmos и The Many Faces of Go.
Одним из первых двигателей компьютерных исследований Го был приз Инга, относительно крупная денежная награда, спонсируемая тайваньским банкиром Ингом Чанг-ки , которая ежегодно вручалась в период с 1985 по 2000 год на Всемирном компьютерном конгрессе Го (или Кубке Инга). Победителю этого турнира разрешалось бросить вызов молодым игрокам с гандикапом в коротком матче. Если компьютер выигрывал матч, приз вручался и объявлялся новый приз: более крупный приз за победу над игроками с меньшим гандикапом. Серия призов Инга должна была закончиться либо 1) в 2000 году, либо 2) когда программа могла победить профессионала 1-го дана без гандикапа за 40 000 000 новых тайваньских долларов . Последним победителем стал Handtalk в 1997 году, получивший 250 000 новых тайваньских долларов за победу в матче с гандикапом в 11 камней против трех любителей 11–13 лет 2–6 данов. На момент истечения срока действия приза в 2000 году невостребованный приз составил 400 000 новых тайваньских долларов за победу в матче с гандикапом в девять стоунов. [63]
Многие другие крупные региональные турниры по го («конгрессы») имели присоединенное компьютерное мероприятие по го. Европейский конгресс по го спонсирует компьютерный турнир с 1987 года, а мероприятие USENIX превратилось в чемпионат США/Северной Америки по компьютерному го, который проводился ежегодно с 1988 по 2000 год на Конгрессе США по го.
Япония начала спонсировать соревнования по компьютерному го в 1995 году. Кубок FOST проводился ежегодно с 1995 по 1999 год в Токио. Этот турнир был вытеснен турниром Gifu Challenge, который проводился ежегодно с 2003 по 2006 год в Огаки, Гифу. Кубок Computer Go UEC проводится ежегодно с 2007 года.
Когда два компьютера играют в го друг против друга, в идеале нужно относиться к игре так же, как если бы играли два человека, избегая при этом вмешательства реальных людей. Однако это может быть сложно во время подсчета очков в конце игры. Основная проблема заключается в том, что программное обеспечение для игры в го, которое обычно взаимодействует с помощью стандартизированного протокола Go Text Protocol (GTP), не всегда будет соглашаться относительно живого или мертвого статуса камней.
Хотя не существует общего способа для двух разных программ «разговориться» и разрешить конфликт, эта проблема по большей части избегается с помощью правил китайской , Тромпа-Тейлора или Американской ассоциации го (AGA), в которых требуется продолжение игры (без штрафа) до тех пор, пока не исчезнут разногласия по поводу статуса любых камней на доске. На практике, например, на сервере KGS Go, сервер может выступить посредником в споре, отправив специальную команду GTP двум клиентским программам, указывающую, что они должны продолжать размещать камни до тех пор, пока не исчезнут вопросы о статусе любой конкретной группы (все мертвые камни будут захвачены). Сервер CGOS Go обычно видит, как программы сдаются еще до того, как игра достигла фазы подсчета очков, но тем не менее поддерживает модифицированную версию правил Тромпа-Тейлора, требующую полной игры.
Эти наборы правил означают, что программа, которая была в выигрышной позиции в конце игры по японским правилам (когда оба игрока спасовали), теоретически может проиграть из-за плохой игры на этапе разрешения, но это очень маловероятно и считается нормальной частью игры по всем наборам правил области.
Главным недостатком вышеописанной системы является то, что некоторые наборы правил (например, традиционные японские правила) штрафуют игроков за выполнение этих дополнительных ходов, исключая использование дополнительной игры для двух компьютеров. Тем не менее, большинство современных программ для игры в Го поддерживают японские правила против людей.
Исторически другим методом решения этой проблемы было привлечение эксперта-человека для оценки финальной доски. Однако это вносит субъективность в результаты и риск того, что эксперт упустит что-то из того, что увидела программа.
{{cite web}}
: CS1 maint: archived copy as title (link)