Компьютерное го

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
WiredGoban.jpg

Компьютерное го — направление искусственного интеллекта по созданию компьютерных программ, играющих в Го.

Препятствия на пути программ[править | править исходный текст]

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

В 2006 году появились программы, основанные на поиске Монте-Карло. Сила игры искусственного интеллекта улучшилась. Но разрыв с уровнем игры профессиональных игроков в го остается, и он довольно значительный.

Слишком большая доска[править | править исходный текст]

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

Пока самой большой доской, на которой к настоящему времени был осуществлён полный перебор позиций является доска 6x7.[1]

Большое количество допустимых ходов[править | править исходный текст]

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

Отсутствие «точной» дебютной теории[править | править исходный текст]

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

Ко-борьба[править | править исходный текст]

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

Аддитивная природа игры[править | править исходный текст]

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

Шахматная техника не может быть применена в го[править | править исходный текст]

Известно, что компьютерные го-программы значительно более слабы, чем шахматные программы. Подходы, которые были применены в шахматных программах показали себя посредственными в компьютерном Го.

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

Но простые позиционные правила, применяемые в шахматах, не будут эффективны в Го. Для определения ценности камня необходим сложный анализ, хотя бы для определения того, жива ли группа, которой он принадлежит, как велико влияние группы и какие опасности ей грозят.

Функция оценки[править | править исходный текст]

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

Комбинаторная сложность[править | править исходный текст]

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

Завершение игры[править | править исходный текст]

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

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

Таким образом очень сложно запрограммировать эффективный алгоритм для игры завершающей стадии го, не говоря обо всей партии.[2]

Почему люди лучше играют в го[править | править исходный текст]

Люди чувствуют, что играют в го лучше, чем компьютеры, потому что сравнивают их с людьми. «Возможно это не компьютеры играют в го плохо, а люди играют в него слишком хорошо».[3] Го, по сравнению с другими играми с полной информацией, имеет особенности, которые делают её особенно лёгкой для людей. Камни не перемещаются, как фигуры в шахматах, не меняют цвет, как в реверси. Эти особенности позволяют людям просчитывать длинные цепочки ходов, что очень сложно для машины.

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

Тактический поиск[править | править исходный текст]

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

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

Проблема представления[править | править исходный текст]

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

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

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

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

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

Системный дизайн[править | править исходный текст]

Новые подходы к проблемам[править | править исходный текст]

Исторически основным подходом к проблеме компьютерного Го был «старый добрый ИИ». Позже в качестве альтернативы такому подходу стали рассматривать нейронные сети. Одной из программ, использующих алгоритм нейронных сетей для игры в Го является WinHonte[4].

Результаты этих разработок в области компьютерного Го используются в других областях: когнитивистика, распознавание образов и машинное обучение[5]. Теория игр, раздел прикладной математики, тоже применяется к компьютерному Го.[5].

Дизайн системы ИИ[править | править исходный текст]

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

Минимаксное дерево поиска[править | править исходный текст]

Одна из традиционных техник в области ИИ для создания программ, играющих в игры использует минимаксное дерево поиска. Для этого рассматривают все гипотетически возможные последовательности ходов до определённой глубины, а затем используют оценочную функцию, чтобы оценить ценность хода, с которого начиналась каждая последовательность. Ход, который приводит к наилучшему результату повторяется на доске и далее такая же процедура проводится для каждого хода компьютерного игрока. В то время, как способы, основанные на использовании дерева поиска давали хорошие результаты применительно к шахматам, они были менее успешны в применении к го.

Частично причина этого кроется в том, что тяжело создать эффективную оценочную функцию и частично из-за большого количества возможных ходов, которое приводит к большому коэффициенту ветвления. Это делает технику дерева поиска слишком ресуркоёмкой. Поэтому программы, интенсивно использующие деревья поиска могут хорошо играть только на маленькой доске 9x9, но не на большой 19x19.

Существуют методы, способные улучшить работу деревьев поиска как в отношении скорости, так и памяти. Методы альфа-бета отсечения, Поиском Основных Отклонений, MDT-f могут уменьшить коэффициент ветвления практически без потери силы игры. Аналогично таблица перестановок позволяет уменьшить количество повторных вычислений, особенно когда она используется совместно с методом итеративного углубления. Для быстрого доступа к данным, расположенным в таблице перестановок необходимо использовать хеширование. Хэширование Зобриста часто встречается в программах, играющих в Го, так как обеспечивает малое количество коллизий и позволяет оперативно обновлять информацию о каждом ходе с использованием лишь двух операций XOR, вместо полного вычисления.

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

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

Экспертные системы[править | править исходный текст]

Новички часто учатся, просматривая записи старых партий мастеров игры. Есть сильная гипотеза, что накопление знаний — ключ к созданию сильного ИИ. Например, Тим Киндер (Tim Kinger) и Дэвид Мичнер (David Mechner) говорят: «Мы верим, что только используя инструменты накопления и поддержания знаний в области Го можно создать намного более сильные программы, чем есть сейчас.» Они предлагают два пути: рассмотрение общих форм и их использования, или рассмотрение местных противостояний. «…Программам для игры в Го всё ещё недостаёт как качества, так и количества знаний.»[6]

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

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

Этот метод до недавнего времени был самой успешной техникой в производстве конкурентоспособных программ игры в Го на полноразмерном поле. Примерами программ, которые положились в большой степени на опытное знание, является Handtalk (позже известный как Goemate), The Many Faces of Go, Go Intellect и Go++, каждую из которых в некоторый момент считали лучшей программой Го в мире.

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

Методы Монте-Карло[править | править исходный текст]

Одной из главных альтернатив использованию закодированных знаний и поиску ходов является метод Монте-Карло. Суть этого метода состоит в том, что сначала на текущей доске выбираются позиции, на которые можно пойти, а затем начиная последовательно с каждой из них разыгрывается большое количество случайных партий. Позиция, которая даёт наибольшее соотношение побед к поражениям, выбирается для следующего хода. Преимущества этого метода в том, что он требует очень небольших знаний проблемной области и не требует много памяти. Однако у этого метода есть и очевидные недостатки. Из-за того, что ходы генерируются наугад и рассматриваются не все возможные продолжения, какие-то ходы будут по ошибке оценены как хорошие. Даже несмотря на то, что случайная выборка продолжений будет благоприятной, у противника могут оказаться немногочисленные, но довольно очевидные ходы, которые позволят ему получить преимущество. Эти ходы либо не попадут в случайную выборку, либо количество хороших продолжений окажется больше. В результате получится программа, которая сильна в стратегическом, но слаба в тактическом плане. Эта проблема может быть смягчена путём добавления некоторых экспертных знаний и более глубокого поиска. В число программ, использующих метод Монте-Карло входят такие как Zen, The Many Faces of Go v12, Leela, MoGo, Crazy Stone, Olga и Gobble.

В 2006 году разработана новая методика upper confidence bounds applied to trees (UCT), использующаяся во многих программах для игры в Го на доске 9х9 с превосходными результатами. Техника UCT совместно со многими другими техниками оптимизации для игры на доске 19х19 позволила MoGo стать одной из сильнейших программ. Технику UCT для игры на доске 19х19 используют следующие программы: MoGo, Crazy Stone, Mango. MoGo выиграла компьютерную олимпиаду в 2007 году и выиграла одну из трёх блиц-игр против Го-Цзюаня (Guo Juan), 5-й профессиональный дан. В 2008 году The Many Faces of Go выиграла компьютерную олимпиаду после добавления UCT к её, основанному на экспертных знаниях, механизму.

В 2008 году MoGo выиграла одну из трёх игр против Каталина Цэрану, 5 про-Дан, на доске 9х9 со стандартным временем (30 минут на игру каждому игроку). MoGo была запущена на кластерном компьютере (32 узла по 8 ядер частотой 3 ГГц). Эти результаты были одобрены Французской федерацией го. MoGo также играла на доске 19х19 против того же Каталина Цэрану и проиграла имея фору в 9 камней. Стоит, однако, отметить, что программа играла сильно и проиграла всего-лишь из-за плохого выбора в ко-борьбе в конце игры, в которой компьютеры традиционно слабы.

7 августа 2008 года MoGo выиграла игру на доске 19х19 против Ким Мёнхвана (Kim MyungWan), 8p имея фору в 9 камней с преимуществом в 1,5 очка. Ким использовал 13 минут на обдумывание, в то время как MoGo — около 55-ти, однако он чувствовал, что использование большего количества времени не поможет ему выиграть. MoGo был запущен из Нидерландов на суперкомпьютере из 800 узлов, содержащем по 4 ядра на узел, частотой 4,7 ГГц и производительностью 15 Терафлопс..[8] Мёнхван и MoGo играли четыре игры с различным гандикапом и временными ограничениями и выиграли по две игры. Отчёты об играх доступны на КГС, где MoGo играла под ником MogoTitan.

В феврале 2009 года MoGo одержала ещё большую победу — с гандикапом в 7 камней она победила игрока 9 дана Чжоу Цзюньсюня (Jun-Xun Zhou), а с форой в 6 камней сломила сопротивление игрока первого дана Цзянь Личжэня (Li-Chen Chien).[9]

К началу 2012 года СrazyStone, основанная на том же методе Монте-Карло, что и MoGo, имеет стабильный 5 дан на сервере КГС.

В декабре 2010 года, компьютерная программа Zen достигла уровня 4 дан на сервере КГС. Создал программу Zen Японский программист Ёджи Оджима(Yoji Ojima). В июне 2011 года, компьютерная программа Zen19d достигла уровня 5 дан на сервере КГС, играя со скоростью 15 секунд на ход. Эта версия программы работала на 26-ядерном компьюторе. В марте 2012 года, компьютерная программа Zen19D достигла уровня 6 дан на сервере КГС, играя со скоростью 15 секунд на ход. Эта версия программы работала на 28-ядерном компьюторе.[10]

В марте 2012 года Zen19D выиграла у Такэмия, Масаки (Takemiya Masaki) 9 дан с 4 камнями форы. Для этого матча использовался кластер из 4 компьютеров (dual 6-core Xeon X5680/4.2 GHz, 6-core Xeon W3680/4 GHz и два 4-core i7 920/3.5 GHz) соединенных через GbE LAN. Такое же оборудование используется для Zen19S и Zen19D на КГС сервере.[11]

Машинное обучение[править | править исходный текст]

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

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

Соревнования среди компьютерных программ игры в го[править | править исходный текст]

Существуют несколько известных ежегодных соревнований среди компьютерных программ, играющих в го, самое известное из которых — Компьютерная олимпиада. Регулярные и менее формальные соревнования проводятся на КГС (ежемесячно) и CKS (непрерывно).

Наиболее известные играющие в го программы включают северокорейскую Silver Star KCC Igo, Handtalk (автор Чэнь Чжисин), GoPlusPlus (Michael Reiss) и Many Faces of Go Дэвида Фотланда (David Fotland). GNU Go — свободная программа, которая также выигрывала компьютерные соревнования.

История[править | править исходный текст]

Первые соревнования по компьютерному Го спонсировались USENIX. Они проводились в 1984—1988 годах. Эти соревнования открыли Nemesis, первую конкурентоспособную программу, способную играть в Го от Брюсо Вилькокса (Bruce Wilcox) и G2.5 Дэвида Фотланда, которая впоследствии разовьётся в Cosmos и The Many Faces of Go.

Одним из ранних поощрений разработок в области компьютерного Го стал кубок Инга, соревнование с относительно большим денежным призом, спонсировавшееся тайваньским банкиром и основателем Кубка Инга Ин Чанци (Ing Chang-ki), которое проводилось с 1988 по 2000 раз в четыре года. Победителю этого турнира разрешалось бросить вызов молодым профессионалам в форовой игре с коротким временем. Если программа выигрывала, то её автору присуждался денежный приз и устанавливался новый приз за победу профессионала с меньшим гандикапом. Призы инга должны были закончиться 1) в 2000 году 2) когда программа обыграет игрока 1-го профессионального дана в равной игре (40.000.000 новых тайваньских долларов). Последним победителем был Handtalk в 1993 году, получил 250.000 NT$ за победу над 8-9 летними профессионалами с форой в 11 камней. К 2000 году остался невостребованным приз в 400.000 NT$ за победу над профессионалом с форой в 9 камней.[12]

Удивительно, но Япония лишь недавно начала спонсировать свои собственные чемпионаты по компьютерному Го. Соревнования кубка FOST проводились ежегодно с 1995 по 1999 год в Токио. Его вытеснил Вызов Гифу, проводившийся ежегодно с 2003 по 2006 годы в Огаки, префектура Гифу.

Проблемы игры компьютера с компьютером[править | править исходный текст]

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

См. также[править | править исходный текст]

Примечания[править | править исходный текст]

  1. Сравнение форматов доски Го
  2. См. Computer Go Programming pages at Sensei’s Library
  3. Raiko, Tapani: «The Go-Playing Program Called Go81» section 1.2
  4. WinHonte 2.01
  5. 1 2 Müller, Martin. Computer Go, Artificial Intelligence 134 (2002): p150
  6. Müller, Martin. Computer Go, Artificial Intelligence 134 (2002): p151
  7. 1 2 Müller, Martin. Computer Go, Artificial Intelligence 134 (2002): p148
  8. Sensei’s Library: MoGo
  9. Машинный разум нанёс человеку удар в го
  10. Sensei's Library KGS Bot Ratings
  11. Zen computer Go program beats Takemiya Masaki with just 4 stones!
  12. World Computer Go Championships

Научные статьи (англ.)[править | править исходный текст]

Сайты, посвящённые компьютерному Го[править | править исходный текст]

Компьютерные программы[править | править исходный текст]

  • AYA by Hiroshi Yamashita
  • Crazy Stone by Rémi Coulom
  • GNU Go, the strongest open source Go program
  • Go++ by Michael Reiss (sold as Strongest Go or Tuyoi Igo in Japan)
  • Go Intellect by Ken Chen
  • Handtalk/Goemate, developed in China by Zhixing Chen (sold as Shudan Taikyoku in Japan)
  • Haruka by Ryuichi Kawa (sold as Saikouhou in Japan)
  • Indigo by Bruno Bouzy
  • Katsunari by Shin-ichi Sei
  • KCC Igo, from North Korea (sold as Silver Star or Ginsei Igo in Japan)
  • Leela, the first Monte Carlo program for sale to the public
  • The Many Faces of Go by David Fotland (sold as AI Igo in Japan)
  • MoGo by Sylvain Gelly; parallel version [1] by many people.
  • Smart Go by Anders Kierulf, inventor of the Smart Game Format