Компјутерски Го

С Википедије, слободне енциклопедије

Рачунарски Го је област вештачке интелигенције (ВИ) задужена за писање рачунарског програма који игра традиционалну игру на табли Го. Игра Го била је плодоносна тема истраживања у области вештачке интелигенције протеклих деценија, која је кулминирала 2016. године, када је тада најбољи програм AlphaGo успео да победи једног од најбољих људи који се професионално баве играњем Го-а.

Перформансе[уреди | уреди извор]

Го је комплексна игра на табли која захтева интуицију, креативност и стратешко размишљање.[1][2] Дуго се сматрала за тежак изазов у оквиру вештачке интелигенције и знатно је тежа за решавање од шаха. Многи стручњаци у области вештачке интелигенције сматрају да Го захтева више елемената који имитирају људско понашање него шах.[3]

Пре 2015, најбољи Го програми су успели да достигну само аматерски дан ниво.[4] На малој 9х9 табли су се боље показивали, чак су и понекада успевали да победе професионалне играче. Пре успеха AlphaGo-а, неки истраживачи су тврдили да рачунарски програми никада неће успети да победе најбоље Го играче.[5]

Ране деценије[уреди | уреди извор]

Први Го програм написао је Албер Линдзи Зобрист 1968. године као део своје тезе о препознавању образаца. Ту је уведена функција утицаја за процену територије и зобристово хеширање да детектује ко.

У априлу 1981. Године Џонатан К. Милен је објавио чланак у магазину Byte где је дискусовао о Го програму Wally, са 15х15 таблом који може да стане на КИМ-1 микропроцесорових 1КВ РАМ-а. Брус Ф. Вебстер је објавио чланак у истом магазину у новембру 1984. у којем је причао о Го програму који је написао.

Године 1998. неки веома јаки играчи су успели да победе Го програме уз хендикеп од 25-30 каменова, што је огроман хендикеп. Било је случајева на Светском првенству у Го-у 1994. године где је програм који је победио, Go Intellect, изгубио све три партије од младих играча Го-а који су играли уз хендикеп од 15 каменова.[6] У суштини, играчи који су разумели и искоришћавали слабости програма су могли да победе уз много већи хендикеп него типични играчи.

21. век[уреди | уреди извор]

Скорија напредовања у монте карло стаблу претраживања и машинском учењу су довели најбоље програме до виског дан нивоа на малој 9х9 табли. 2009. Године се појавио први програм који је могао да достигне и задржи низак дан ниво на КГС Го серверу на 19х19 табли.

Године 2010. на европском Го конгресу у Финској, МогоТВ је играо на 19х19 табли против Кејтлин Тарану(5п). МогоТБ успео да победи уз хендикеп од 7 каменова.[7]

Године 2011. Zen је достигао 5 дан на КГС серверу, играјући партије у којима је дозвољено 15 секунде по потезу. Налог на којем је достигнут тај ниво користи кластер верзију Зен-а која је била покренута на рачунару са 26 језгара.[8]

У 2012. години Zen је победио Такемију Масакија (9п) са 11 поена уз хендикеп од 5 каменова, а касније га је победио са 20 поена уз хендикеп од 4 каменова.[9]

Године 2013. Crazy Stone је победио Јошио Ишиду (9п) на 19х19 табли са 4 каменова хендикепа.[10]

Године 2014. на кодцентричном Го изазову, Crazy stone и Франц Јозеф Дикхат (6д) су одиграли меч који се састојао од 5 партија без хендикепа на 19х19 табли. Ово је најбољи играч Го-а који је до тада прихватио да игра озбиљан меч против Го програма на 19х19 табли са једнаким условима. Дикхат је победио, али је Луди камен успео да освоји прву партију са 1.5 поена више.[11]

У октобру 2015. године AlphaGo програм компаније Google DeepMind победио је Фан Хуија, европског Го шампиона, 5 од 5 мечева у турнирским условима.[12]

Марта 2016. године, AlphaGo је успео да победи Ли Седола у прве три од укупно 5 партија.[13] Ово је био први пут да 9-дан мајстор игра професионалан меч против програма без хендикепа.[14] Ли је победио у 4. мечу, док је AlphaGo успео да победи у финалном мечу.

Препреке ка високом нивоу играња[уреди | уреди извор]

Дуго времена је било општеприхваћено мишљење да Го програм има представља проблем који се у основи разликује од шаховског програма. Веровало се да се методе које се ослањају на брзе глобалне претраге са релативно мало знања у домену нису могле да буду ефективне против мајстора Го-а. Због тога, велики део развијања Го програма током овог времена био је усмерен на начине уз које се могло представити човеколико знање и његово комбиновање са локалним претраживањима да би се одговорила питања тактичке природе. Резултат овога били су програми који су се добро носили са много ситуација, али су имали изражену слабост у општем руковању партије. Такође ови програми нису много побољшани уз повећање процесорске моћи, и напредак у области је био спор.

Неки истраживачи су увидели потенцијал пробабилистичке методе и предвидели да ће оне доминирати у рачунарским програмима[15], али су многи други сматрали да је јак Го програм нешто што ће бити могуће у далекој будућности као резултат великих напретка у области вештачке интелигенције. Чак је и писање програма за утврђивање победника завршене партије било гледано као нетривијална ствар.

Долазак програма заснованих на монте карло претрази 2006. године је променио поглед на ову ситуацију у многим погледима, уз првог 9-дан мајстора који је 2013. године доживео пораз уз хендикеп од 4 камена.

Величина табле[уреди | уреди извор]

Велика табла (19х19, 361 пресека) је често била постављана као један од главних разлога зашто је тешко направити јак Го програм. Велика табла је спречавала алфа-бета претраживач да постигне дубок поглед без значајне екстензије претраге или хеуристике одстрањивања.

Године 2002, рачунарски програм МИГОС (MIni GO Solver) комплетно је решио игру Го на 5х5 табли. Играч са црним каменовима побеђује, притом заузимајући целу таблу.[16]

Број могућих потеза[уреди | уреди извор]

Настављајући упоређивање са шахом, потези у Го-у нису толико ограничени правилима игре. На првом потезу у шаху играч има 20 легалних потеза. Играчи го-а имају 55 различитих легалних потеза узимајући у обзир симетрију. Овај број се брзо увећава уз разбијање симетрије, и ускоро скоро сваки од 361 различитих потеза се морају проценити. Неки потези су много популарнији током отварања, али их је све могуће одиграти.

Технике из шаха које се не могу применити на Го[уреди | уреди извор]

Основне слабости Го програма у поређењу са шаховским програмима су служиле да покрену истраживања у много нових рачунарских техника. Технике које су се показале као изузетно ефективне у шаховским програмима су се показале као поприлично слабе у игрању Го-а.

Функција процене[уреди | уреди извор]

Иако једноставна процена на основу материјала није довољна за шаховске програме, функције процене се често заснивају на томе, уз комбинацију са суптилнијим разматрањима као што су изоловани и двоструки пијуни, топови на отвореним редовима, пијуни на центру табле итд. Ова правила могу бити лако формализована, и таква пружају поприлично добро функцију процене која се може извршавати брзо.

Овакви типови правила процене на основу позиције се не могу ефикасно применити на Го. Вредност Го позиције зависи од комплексног анализирања да ли је група жива, који каменови се могу повезати, и хеуристика на то у којој мери добра позиција има утицаја, или у којој мери се лоша позиција може напасти.

Више од једног потеза се могу сматрати као најбољи у зависности од тога која се стратегија користи при процени. Да би изабрао потез, програм мора да процени различите исходе и да одреди који је најбољи. Ово је тешко због деликатних компромиса који се налазе у Го-у. На пример, могуће је заробити неколико противникових каменова а притом ојачати противникову позицију на неком другом месту. Питање да ли је ово добар потез представља тешку одлуку, чак и за мајсторе Го-а.

Комплексност израчунавања се може видети и овде, пошто неки потез можда неће бити одмах важан, али после много потеза када се друге области табле попуне, може се испоставити да је овај потез био кључан.

Завршна игра[уреди | уреди извор]

Пошто у завршној игри има мање могућих потеза него на почетку или у средњем периоду игре, неко ће можда претоставити да ју је лакше играти, и да ће је стога рачунарски програм лакше играти. У шаху, програми имају лошије перформансе у завршетку игре пошто се идеје прожимају кроз много потеза унапред. Изузетак су ситуације када се могу користити базе података завршних игара у појединим случајевима.

Примена надреалних бројева на завршнице у Го-у, опште анализе игре чији је пионир Џон Х. Конвеј, додатно је развијена од стране Елвин Р. Берлекампа и Давид Волфеа што је наведено у њиховој књизи, Математички Го. Иако није опште корисно у већини позиција, у великој мери помаже при анализи одређених класа позиција.

Ипак, иако су извршене детаљне студије, доказано је да су завршне игре у Го-у PSPACE-тешке. Постоје многи разлози зашто су толико тешке:

  • Чак и ако компјутер може да игра на свим локалним областима у завржници перфектно, не можемо закључити да ће његова игра бити савршена у односу на целу таблу. Додатне области разматрања у завршницама укључују Сенте и Готе односе, додељивање приоритета различитим локалним завршницама, пребројавање територија и процена, и тако даље.
  • У завршници се може садржати много других аспекта Го-а, укључујући "живот и смрт", за које се зна да су НП-тешки.[17][18]
  • Свака од локалних области завршнице може утицати на остале. Другим речима, оне су динамичне у природи, иако су визуелно изоловане. Због тога је много теже рачунарима да се баве са тим. Ова природа доводи до неких веома сложених ситуација.

Стога, мало је вероватно да ће бити могуће да се напише разумно брз алгоритам који би играо завршницу беспрекорно.

Редослед игре[уреди | уреди извор]

Тренутни го програми базирани на Монте-Карло претрази могу имати потешкоћа при решавању проблема када је редослед потеза важан.[19]

Тактичка претрага[уреди | уреди извор]

Један од главних проблема за ГО играча је које групе каменова може држати у животу а које могу бити заробљене. Ова општа класа проблема је позната као живот и смрт. Најдиректнија стратегија за израчунавање живота и смрти је да се изврши обилазак стабла о потезима које потенцијално утичу на каменове у питању, а затим да се сачува статус камења на крају главне линије игре.

Међутим, унутар временских и меморијских ограничења, у општем случају није могуће утврдити са потпуном прецизношћу који потези би могли да утичу на "живот" једне групе камења. Ово значи да мора да се примени нека хеуристика за одабир потеза које треба узети у обзир. Крајњи ефекат је да за било који програм, постоји компромис између брзине игре и процене живот и смрт позиција.

Са Бенсоновим алгоритмом, могуће је одредити ланце који су безусловно живи и стога их не би требало у будућности проверавати за сигурност.

Представљање стања[уреди | уреди извор]

Проблем који сви Го програми морају решити је како да представе тренутно стање игре. За програме који користе опсежне претраживачке технике, стање треба да се копира и / или мења за сваки нов хипотетички потез који се посматра. Ова потреба поставља додатно ограничење да би тренутно стање требало да буде или довољно мало да би могло да се копира брзо или довољно флексибилно да би се потез могао одиграти и поништити лако.

Најлакши начин је да се табла представи као једно- или дводимензионалан низ, где елементи у низу представљају тачке на табли, и могу да се имају вредност која одговара белом камену, црном камену, или празаној раскрсници. Додатан простор је потребан за чување информације колико каменова је заробљено, чији је ред, и које раскрснице су илегални због Ко правила.

Већина програма, међутим, користи више од информација где се који камен налази за процену позиције. Подаци као што су који су каменови повезани у жицу, које жице су повезане једне са другима, које групе каменова су у опасности од заробљавања и које групе каменова су ефективно мртве, су неопходне да би се направила тачна процена одређене позиције. Иако се ове информације могу издвојити само од положаја каменова, много тога се може много брже израчунати ако се ажурирају при сваком одиграном потезу. Овај ажурирање захтева да се чува више информација као представљање позиције табле, што заузврат може учинити да копирања табле трају дуже. Ова врста компромиса указује на проблеме који су укључени у израду брзих компјутерских Го програма.

Алтернативни метод је да постоји само једна табла на којој се потези играју и враћају како би се смањило коришћење меморије а притом да се резултати евалуације табле сачувају. Овим се избегава да се информације копирају изнова и изнова.

Дизајн система[уреди | уреди извор]

Нови приступи проблемима[уреди | уреди извор]

Историјски гледано, ДСБИ (Добра Старомодна Вештачка Интелигенција) технике се користе за приступе проблему Го ВИ. Однедавно, неуронске мреже се користе као алтернативни приступ. Један пример програма који користи неуронске мреже је WinHonte.[тражи се извор]

Ови приступи покушавају да ублаже проблеме игре Го, као што су велики фактор гранања.

Резултати истраживања компјутерског Го-а се примењују у другим сличним областима као што су когнитивне науке, препознавање облика и машинско учење.[20] Комбинаторна теорија игара, грана примењене математике, је тема од значаја за компјутерски Го.[20]

Филозофије дизајна[уреди | уреди извор]

Једини избор који програм треба да направи је место где да стави свој следећи камен. Међутим, ова одлука је отежана широким спектром утицаја који један камен може имати на целу таблу и комплексним интеракцијама које групе камења могу имати између себе. Настале су разне архитектуре за руковање овим проблемом. Најпопуларније користе:

Неколико програмо користе искључиво једну од ових техника, док већина комбинује дате технике.

Минимакс претрага стабла[уреди | уреди извор]

Техника традиционалне ВИ за креирање софтвера за играње игара која је коришћена је претрага минимакс стабла. Ово укључује играње свих хипотетичких потеза до одређене тачке, а затим коришћење функцију евалуације за процену вредности те позиције за тог играча. Одређује се потез који има најбољу "вредност табле" и затим се процес понавља за сваки потез. Док су претраге стабла биле веома ефикасне у компјутерском шаху, оне су имале мање успеха у компјутерским програмима за играње Го-а. То је делимично зато што је било тешко да се направи ефикасну функцију евалуације вредности позиције, а и делимично зато што је велики број могућих потеза који свака страна може да направи доводи до високог фактора гранања. Због тога је ова техника веома ресурсно захтевна. Због тога, многи програми који користе претраге стабала могу интензивно играти само на мањим 9 × 9 таблама.

Постоји неколико техника које у великој мери могу да побољшају перформансе претраживача стабала у смислу брзине и меморије. Технике одсецања као што су алфа-бета претрага, претрага главне варијације, и МТД-ф могу да смање фактор гранања без губитка снаге. У тактичким областима као што су "живот и смрт", Го је нарочито погодан за технике кеширања као што су транспозиционе табеле. Оне могу смањити количину поновљеног напора, нарочито у комбинацији са приступом претраге у дубину итеративним продубљавањем. Да би се брзо складиштиле Го табле пуне величине у транспозиционе табеле, потребне су технике хеширања за математичко сумирање. Зобристово хеширање је веома популарно у Го програмима јер има ниску стопу судара и може се итеративно ажурирати у сваком потезу помоћу само две ексклузивне дисјункције, уместо да се рачуна сваки пут испочетка. Чак и коришћењем ових техника оптимизација перформанси, претраге стабала таблепуне величине су и даље веома споре. Претраге могу бити убрзане помоћу великог броја техника одсецања за специфичан домен, као што је не узимање у обзир потеза где је противник већ јак и селективних проширења да увек разматра потезе близу група камења које ће бити ухваћене. Међутим, обе ове опције доносе ризик да се не разматра кључни потез који би променио ток целе игре.

Резултати рачунарских такмичења показују да препознавање облика за бирање потеза у комбинацији са претходно објашњеним техникама је довоњно да се направи програм компетентан за такмичење. На пример, ГНУ Го је био конкурентан до 2008. године.

Системи засновани на претходном знању[уреди | уреди извор]

Почетници често науче много из игара играних од стране професиналаца. Постоји снажна претпоставка која сугерише да је стицање знања о Го-у кључ за стварање снажног компјутерског Го-а. На пример, Тим Кингер и Давид Мехнер тврде да "са ће бољим алатима за представљање и одржавање знања бити могуће направити боље програме за играње Го-а." Они предлажу два начина: препознавање честих конфигурације камења и њихових позиција и концентрисање на борбе у појединим деловима табле. "... Го програмима још увек недостаје квалитету и квантитет знања." [21]

Након реализације, коришћење стручног знања се показало веома ефикасно у програмирању Го софтвера. Професионалци су представили стотине начина и савета за јаке игре. Задатак програмера је да ове хеуристике формализује, у имплементира их помоћу програмског кода, користећи препознавање облика како би знао када да примени одређена правила. Такође је важно имати систем за одређивање шта треба урадити када се појави конфликт у игрању следећег потеза.

Већина релативно успешних резултата долазе из индивидуалних способности програмере у игрању Го-а; они покушавају да направе програм тако да рачунар опонаша начин на који они играју Го. "Већини програма је потребно 5-15 људских година труда и садрже 50-100 модула који се баве различитим аспектима игре." [22]

Ова метода је донедавно била најуспешнија техника у стварању такмичарских Го програма који играју на таблама пуне величине. Неки пример програма који су се ослањали на експертско знање су Handtalk (касније познат као Goemate), The Many Faces of Go, Go Intellect, and Go++, од којих је сваки у неком тренутку сматран за најбољи Го програм.

Ипак, додавање знања је некад ослабљибало Го програме јер је површно знање доводило до грешака: "Најбољи програми обично играју потезе мајсторког нивоа. Међутим, као што сваки играч зна, један лош потез може да уништи добру игру. Узимајући у обзир целу игру, преформансе програма обично могу бити много лошије од мајсторског нивоа.""[22]

Монте Карло методе[уреди | уреди извор]

Једна од главних алтернатива коришћењу ручно кодираног знања и претрага је употреба Монте Карло методе. То се ради генерисањем листе потенцијалних потеза, а за сваки потез играње на хиљаде игара насумице. Потез који води до најбољег скупа случајних игара за тренутног играча се бира као најбољи потез. Предност ове технике је да је потребан врло мали домен знања, а компромис је повећање меморије и захтевности процесора. Међутим, пошто су потези који се користе за процену настају насумице могуће је да ће потез који би био одличан, осим за један специфичан одговор противника, бити погрешно оцењен као добар потез. Резултат тога су програми који су јаки у целокупном стратешком смислу, али нису савршени тактички. Овај проблем се може ублажити додавањем домена знања у генерисање потеза и већи степен дубине претраживања. Неки програми који користе Монте Карло методе су Fuego,[23] The Many Faces of Go v12,[24] Leela,[25] MoGo,[26] Crazy Stone, MyGoFriend [27] и Zen.

У 2006. години је развијена нова техника претраге, горње границе поверења примењена на стабла [28] и примењена је на многе 9x9 Монте-Карло Го програме са одличним резултатима. Ова техника користи резултате прикупљене до сада како би наводила претрагу дуж линије успешнијег играња, док и даље омогућава алтернативне токове да буду истражени. Поред многих оптимизација ова техника је омогућила да за играње на великим таблама 19x19 MoGo постане један од најјачих програма истраживања. Успешне првобитне примене ове технике на табле димензија 19x19 су MoGo, Crazy Stone и Mango.[29] MoGo је освојио копјутерску олипијаду 2007. и победио је једну (од три) блиц игара против Guo Juan-а, професионалног играча 5. дан, у много мање комплексном 9x9 Го-у. The Many Faces of Go[30] је освојио копјутерску олипијаду 2008.

Машинско учење[уреди | уреди извор]

Док су системи засновани на претходном знању су били веома ефикасни у Го-y, њихов ниво вештина је уско повезан са знањем програмера који их је имплементирао. Један од начина да се укине ово ограничење је да користе технике машинског учења како би се омогућило да софтвер аутоматски генерише правила и обрасце и влада стратегијама решавања колизија.

Ово се обично ради тако што се неуронским мрежама или генетском алгоритму да велика база података професионалних игара или се пусти да игра против самог себе или других програма или људи. Ови алгоритми су тада у стању да искористе ове податке као средство за побољшање својих преформанси. AlphaGo интензивно користи ову технику. Остали програми који су раније користили неуронске мреже су NeuroGo и WinHonte.

Технике машинског учења се такође могу користити у мање амбициозном контексту, на пример за намештање специфичних параметара програма који се ослањају на друге техникама. На пример, Crazy Stone учи генерисање потеза из неколико стотина примера игара, користећи генерализацију Ело система рангирања.[31]

АлфаГо[уреди | уреди извор]

АлфаГо, развијен од стране Google DeepMind, направио је значајан напредак победивши људског професионалца у октобру 2015. коришћењем технике учења са разумевањем и Монте Карло претраге стабла.[32] АлфаГо је значајно моћнији од претходних Го програма и први који је победио човека 9. дан у игри без хендикепа на табли димензије 19x19.

Листа најпознатијих Го програма[уреди | уреди извор]

Такмичења између Го програма[уреди | уреди извор]

У току године се одржава неколико такмичења између Го програма од којих је најистакнутије такмичење у Го-у на компјутерској олимпијади. Мање формална су КГС Го Сервер[42] које се одржава месечно, Компјутер Го Сервер[43] итд.

Истакнути програми који се такмиче су Crazy Stone, Zen, Aya, Mogo, The Many Faces of Go, pachi and Fuego, Steenvreter, DolBaram, coldmilk и сви горенаведени.

Историја[уреди | уреди извор]

Прво такмичење програма у Го-а је било под покровитељством Acornsoft-а,[44] а прва редовна су била спонзорисана од стране USENIX. На овим такмичењима се појавио Nemesis, први такмичарски Го програм који је написао Брус Вилкокс, и G2.5 написан од стране Давида Фотланда, који ће касније постати Cosmos и The Many Faces of Go.

Један од раних покретача истраживања компјутерског Го-а била је Инг награда, релативно велика новчана награда под покровитељством тајванског банкара Ing Chang-ki, која се додељивала годишње између 1985. и 2000. на Светском Компјутерском Го конгресу (или Инг Куп). Победник овог турнира је могао да изазове младе играче у хендикеп кратком мечу. Ако би рачунар је победио, награда би била додељена и нова награда која је била већа али захтевала мањи хендикеп, би била најављена. Рок за истек Инг награде је постављен или до 2000. године или док програм не победи професионалног играча без хендикепа а фонд је био 40.000.000 нових тајванских долара. Последњи добитник је Handtalk 1997. године, у износу од 250.000 нових тајванских долара, победивши у мечу са хендикепом од 11 каменчића против три 11-13 година стара аматерска икрача који су били од 2. до 6. дана. Рок за додељивање награде је истекао 2000. године, оставивши 400,000 нових тајванских долара награде недодељено.[45]

Јапан је започео спонзорисање такмичења програма у Го-у 1995. године ФОСТ Куп се одржавао сваке године од 1995. до 1999. у Токију. Овај турнир је потиснут од стране Гифу Челинџа, који се одржавао сваке године од 2003. до 2006. у Огаки, Гифу. Компјутер Го УЕЦ Куп се одржава годишње од 2007. године.

Тестирање[уреди | уреди извор]

Многи програми који омогућавају компјутер Го машинама да играју једни против других и они скоро увек комуницирају преко Го Текст Протокола (ГТП).

GoGUI и његов додатак gogui-twogtp се може користити за играње меча између два програма на једном систему.[46] SmartGo and Many Faces of Go такође пружају ову могућност.

Да би одиграо мечеве са што ширим спектром противника, КГС Го Сервер дозвољава програм против програма као и програм против човека режим игре у мечевима који се могу рангирати или не.

Референце[уреди | уреди извор]

  1. ^ „Google’s AI Wins First Game in Historic Match With Go Champion”. WIRED. 9. 3. 2016. 
  2. ^ AlphaGo victorious once again
  3. ^ Bouzy, Bruno; Cazenave, Tristan (9. 8. 2001). „Computer Go: An AI oriented survey”. Artificial Intelligence. 132 (1): 39—103. doi:10.1016/S0004-3702(01)00127-8. Приступљено 14. 3. 2016. 
  4. ^ Wedd, Nick. „Human-Computer Go Challenges”. computer-go.info. Приступљено 28. 10. 2011. 
  5. ^ „‘Huge leap forward’: Computer that mimics human brain beats professional at game of Go”. 
  6. ^ „CS-TR-339 Computer Go Tech Report”. Архивирано из оригинала 04. 02. 2014. г. Приступљено 28. 1. 2016. 
  7. ^ „EGC 2010 Tampere News”. Архивирано из оригинала 14. 8. 2009. г. Приступљено 28. 1. 2016. 
  8. ^ „KGS Game Archives”. Приступљено 28. 1. 2016. 
  9. ^ „Zen computer Go program beats Takemiya Masaki with just 4 stones!”. Go Game Guru. Архивирано из оригинала 1. 2. 2016. г. Приступљено 28. 1. 2016. 
  10. ^ „「アマ六段の力。天才かも」囲碁棋士、コンピューターに敗れる 初の公式戦”. MSN Sankei News. Архивирано из оригинала 24. 3. 2013. г. Приступљено 27. 3. 2013. 
  11. ^ „codecentric go challenge – Just another WordPress site”. Приступљено 28. 1. 2016. 
  12. ^ „Google AI algorithm masters ancient game of Go”. Nature News & Comment. Приступљено 28. 1. 2016. 
  13. ^ „Artificial intelligence: Google's AlphaGo beats Go master Lee Se-dol”. BBC News Online. 12. 3. 2016. Приступљено 12. 3. 2016. 
  14. ^ „Google's DeepMind defeats legendary Go player Lee Se-dol in historic victory”. www.theverge.com. Приступљено 9. 3. 2016. 
  15. ^ Game Tree Searching with Dynamic Stochastic Control pp. 194–195
  16. ^ „5x5 Go is solved”. Приступљено 28. 1. 2016. 
  17. ^ On pp. 11: "Crasmaru shows that it is NP-complete to determine the status of certain restricted forms of life-and-death problems in Go." (See the following reference.) Demaine, Erik D., Robert A. Hearn (22. 4. 2008). „Playing Games with Algorithms: Algorithmic Combinatorial Game Theory”. arXiv:cs/0106019Слободан приступ. 
  18. ^ Crasmaru, Marcel (1999). „On the complexity of Tsume-Go”. Lecture Notes in Computer Science. Lecture Notes in Computer Science. London, UK: Springer-Verlag. 1558: 222—231. ISBN 978-3-540-65766-8. doi:10.1007/3-540-48957-6_15. 
  19. ^ „example of weak play of a computer program”. Архивирано из оригинала 10. 07. 2012. г. Приступљено 19. 05. 2016. 
  20. ^ а б Müller, Martin. Computer Go[мртва веза], Artificial Intelligence 134 (2002): p150
  21. ^ Müller, Martin. Computer Go[мртва веза], Artificial Intelligence 134 (2002): p151
  22. ^ а б Müller, Martin. Computer Go[мртва веза], Artificial Intelligence 134 (2002): p148
  23. ^ а б „Fuego”. 
  24. ^ а б Fotland, David. „Dan Level Go Software – Many Faces of Go”. 
  25. ^ а б „Sjeng – chess, audio and misc. software”. 
  26. ^ „Архивирана копија”. Архивирано из оригинала 10. 8. 2008. г. Приступљено 20. 5. 2016. 
  27. ^ а б „MyGoFriend – Gold Medal Winner 15th Computer Olympiad, Go (9x9)”. Архивирано из оригинала 8. 12. 2010. г. Приступљено 20. 5. 2016. 
  28. ^ „UCT”. 
  29. ^ „Page not found (404)”. Архивирано из оригинала 3. 11. 2007. г. Приступљено 20. 5. 2016. 
  30. ^ Fotland, David. „Smart Games”. 
  31. ^ „Computing Elo Ratings of Move Patterns in the Game of Go”. Приступљено 28. 1. 2016. 
  32. ^ „Research Blog: AlphaGo: Mastering the ancient game of Go with Machine Learning”. Google Research Blog. 27. 1. 2016. 
  33. ^ „Page ON/サービス終了のお知らせ”. Архивирано из оригинала 11. 12. 2006. г. Приступљено 20. 5. 2016. 
  34. ^ „Goban. Play Go on Mac – Sen:te”. Архивирано из оригинала 19. 05. 2013. г. Приступљено 20. 05. 2016. 
  35. ^ „Goban Extensions – Sen:te”. Архивирано из оригинала 18. 05. 2016. г. Приступљено 20. 05. 2016. 
  36. ^ „Go++, Go playing program”. Архивирано из оригинала 25. 05. 2003. г. Приступљено 09. 06. 2020. 
  37. ^ „Архивирана копија”. Архивирано из оригинала 28. 11. 2006. г. Приступљено 20. 5. 2016. 
  38. ^ „Pachi – Board Game of Go / Weiqi / Baduk”. 
  39. ^ Kierulf, Anders. „SmartGo”. 
  40. ^ „STEENVRETER”. 
  41. ^ „Zen (go program)”. 
  42. ^ „Computer Go Tournaments on KGS”. 
  43. ^ „9x9 Go Server”. Архивирано из оригинала 19. 1. 2007. г. Приступљено 20. 5. 2016. 
  44. ^ „Acorn 1984 The First Computer Go Tournament”. computer-go.info. 
  45. ^ Fotland, David. „World Computer Go Championships”. Приступљено 28. 1. 2016. 
  46. ^ „Using GoGUI to play go computers against each other”. Архивирано из оригинала 9. 3. 2011. г. Приступљено 20. 5. 2016.