Computer Go on tekoälyn haara, jolla luodaan Go :ta pelaavia tietokoneohjelmia .
Ihmiset tuntevat olevansa parempia Go:ssa kuin tietokoneet, koska he vertaavat niitä ihmisiin. "Ehkä kyse ei ole siitä, että tietokoneet pelaavat huonosti, vaan ihmiset pelaavat sitä liian hyvin." Muihin täystietopeleihin verrattuna Go:ssa on ominaisuuksia, jotka tekevät pelaamisesta erityisen helppoa. Kivet eivät liiku kuin shakkinappulat, ne eivät vaihda väriä kuten käänteessä. Näiden ominaisuuksien avulla ihmiset voivat laskea pitkiä liikeketjuja, mikä on koneelle erittäin vaikeaa.
Kuitenkin niissä harvoissa tapauksissa, joissa kiviä vangitaan toistuvasti ja toistetaan samoissa pisteissä, ihmisillä on ongelmia, vaikka he ovat helppoja tietokoneille.
Pitkään tietokone Go:n katsottiin eroavan merkittävästi tietokoneshakista , koska nopeaan hakuun perustuvat menetelmät verrattuna ihmisen kokemukseen yhdistettynä suhteellisen alhaiseen verkkotunnuksen tuntemukseen eivät olisi tehokkaita Golle. Siksi tietokone Go:n alalla on käytetty paljon ponnisteluja asiantuntijatiedon ja paikallishaun yhdistämiseen, jotta voidaan vastata kysymyksiin pelin taktisesta luonteesta. Näiden ponnistelujen tuloksena syntyi ohjelmia, jotka pystyivät löytämään hyviä ratkaisuja joihinkin paikallisiin tilanteisiin, mutta joilla oli ilmeisiä heikkouksia pelin kokonaiskäsittelyssä. Lisäksi nämä klassiset ohjelmat saivat vähän pelitehoa laitteiston tehostuessa, ja siksi kehitys tällä alueella oli yleensä hidasta. Siksi uskottiin, että Go:ssa hyvin toimiva ohjelma voidaan luoda vasta kaukaisessa tulevaisuudessa ja vain siihen aikaan kertyneen yleisen tekoälyn tietämyksen avulla. Jopa sellaisen ohjelman kirjoittaminen, joka voisi määrittää valmiin pelin voittajan, pidettiin ei-triviaalina tehtävänä.
Vuonna 2006 syntyi Monte Carlo -hakuun perustuvia ohjelmia . Tekoälypelin vahvuus on parantunut. Mutta ero Go-ammattipelaajien pelitasoon säilyi, ja se on merkittävä.
Kuitenkin vuonna 2015 tietokoneohjelma ( AlphaGo , DeepMind ) voitti ensimmäistä kertaa tasavertaisen ottelun ammattilaista vastaan ( Fan Hui , 2. ammattidan) (pisteillä 5-0) [1] .
Maaliskuussa 2016 AlphaGo voitti ammattilais Lee Sedolin viiden pelin kolmessa ensimmäisessä erässä. [2] Tämä oli ensimmäinen kerta, kun 9 danin ammattilainen, yksi maailman vahvimmista pelaajista, pelasi tietokoneella ilman tasoitusta. [3] Neljännessä pelissä Li pystyi voittamaan, mutta tietokone voitti viidennen pelin, joten ottelu päättyi 4:1. [4] [5] (katso yksityiskohdat: AlphaGo vs. Lee Sedol -ottelu )
Toukokuussa 2017 Future of Go Summitissa pelattiin 3 pelin miniottelu AlphaGon ja yhden maailman vahvimmista pelaajista, maailman rankingin johtajan Elo Ke Jien välillä, jossa kaikki pelit voitti ohjelma [6] [7] [8 ] . Samalla foorumilla AlphaGo voitti 5 yhdeksännen danin ammattilaisen joukkueen ( Mi Yuting (nro 3 vahvimpien pelaajien rankingissa, arvosana ennen ottelua 3571 pistettä), Chen Yaoye (nro 8, 3513)) , Zhou Ruiyang (nro 10, 3509), Xi Yue (nro 11, 3508), Tang Weixing (nro 18, 3474)) [9] .
Suuri taulu (19x19, 361 risteystä) mainitaan usein suurena esteenä vahvojen Go-ohjelmien rakentamiselle. Suuren taulun ongelmana on, että se estää syvät alfa-beta-leikkaushaut .
Toistaiseksi suurin lauta, jolla on toistaiseksi suoritettu täydellinen paikkojen luettelointi, on 6x7-lauta [10] .
Jatkamalla vertailua shakkiin, on syytä huomata, että säännöt eivät rajoita go-liikkeitä. Vaikka ensimmäinen siirto shakissa voidaan tehdä kahdellakymmenellä tavalla, Go-pelin ensimmäisellä siirrolla on 55 vaihtoehtoa laudan symmetrian vuoksi. Muutaman ensimmäisen siirron jälkeen laudan eri kulmissa pelitilanteen symmetria katoaa ja mahdollisten liikkeiden määrä kasvaa saavuttaen laudalla olevien vapaita pisteitä.
Pelin alkuvaihe go - fuseki -pelissä noudattaa tiettyjä yleisiä kivikokoonpanojen kehittämisen periaatteita, mutta sille on ominaista paljon suurempi siirtovalikoima kuin shakissa. Uutuuksia voi syntyä ei 20. siirrolla, vaan jo kolmannella tai neljännellä, ja pätevä avauspeli on mahdotonta ymmärtämättä laudalle ilmestyvien rakenteiden strategisia näkökulmia. Joseki (tyypillisiä kaavioita aseman pelaamiseen laudan rajoitetulla osalla, erityisesti kulmissa), joita voidaan tietyssä mielessä pitää kehitettyjen shakkiaukkojen analogina, eivät salli mekaanista käyttöä eivätkä anna taattu tulos, koska niiden käytön vaikutus riippuu kokonaispaikasta koko laudalla, joten jopa oikean josekin valitseminen tiettyyn paikkaan tietyssä kulmassa on vaikea älyllinen tehtävä.
Ko-sääntö johtaa usein dramaattiseen muutokseen kamppailun luonteessa, jonka seurauksia on vaikea arvioida edes kokeneelle pelaajalle. Itse asiassa joka kerta on tarpeen mitata "vastaamattomuuden" seurauksia ko-uhkaan (sekä omaan että vastustajan) ko-taistelun menettämisen kustannuksilla. Ihmisen on turvauduttava kokemukseensa ja intuitioonsa, kun taas tietokoneelle näitä käsitteitä on vaikea muotoilla.
Shakissa, kuten monissa muissa peleissä, pelin aikana laudalla on vähemmän nappuloita, mikä yksinkertaistaa liikkeiden laskemista. Go-pelissä päinvastoin jokainen seuraava siirto lisää yhden kiven pöytään (vaikka nostot ovat mahdollisia), mikä luo lisää pelihetkiä.
Computer Go -ohjelmat ovat pitkään olleet paljon heikompia kuin shakkiohjelmat. Shakkiohjelmissa sovelletut lähestymistavat osoittautuivat keskinkertaisiksi tietokone Go:ssa.
Shakin säännöt on helppo muotoilla ja ne voidaan esittää koneelle sopivassa muodossa, jotta se voi pelata korkealla tasolla.
Mutta shakissa käytetyt yksinkertaiset sijaintisäännöt eivät ole tehokkaita Gossa. Kiven arvon määrittäminen vaatii monimutkaista analyysiä, jos vain sen selvittämiseksi, onko se ryhmä, johon se kuuluu, elossa, kuinka suuri ryhmän vaikutusvalta on ja mitkä vaarat sitä uhkaavat.
Toinen haaste on luoda Go: lle hyvä arviointitoiminto . Jokaisessa liikkeessä voi olla useita hyviä liikkeitä, ja parhaan liikkeen valitsemiseksi tietokoneen on arvioitava erilaisia mahdollisia tuloksia. Tästä tulee vaikea tehtävä Gossa. Voi esimerkiksi olla mahdollista vangita vastustajan kivet vahvistamalla hänen ryhmäänsä muualla. Päätös, onko tällaisesta vaihdosta hyötyä, voi tuntua ylivoimaiselta jopa ihmispelaajalle. Voi myös käydä ilmi, että siirtyminen toiseen osaan laudoista ja rakennusmuodosta siellä voi olla tärkeämpää.
Joskus mainitaan, että joitain vaikeita kombinatorisia ongelmia (itse asiassa mikä tahansa NP-täydellinen ongelma ) voidaan muuntaa Go; Sama pätee kuitenkin muihin lautapeleihin, kuten shakkiin, jotka on yleistetty mielivaltaisen kokoiselle laudalle. Ihminen ei pysty ratkaisemaan NP-täydellisiä ongelmia nopeammin kuin tietokoneet: on kyseenalaista, pystyykö ihminen ratkaisemaan esimerkiksi Travelling Salesman -ongelman ajassa, joka on verrattavissa siihen, mitä varten tietokone sen ratkaisee. Siksi kyky soveltaa NP-täydellisiä ongelmanratkaisumenetelmiä Computer Go -pelissä ei selitä ihmisten paremmuutta tietokoneisiin nähden tässä pelissä.
Ottaen huomioon, että go (yose) -pelin loppu sisältää vähemmän mahdollisia liikkeitä kuin alussa tai keskellä, voisi luulla, että tietokoneen olisi paljon helpompi pelata tätä osaa peliä. Mutta tässäkin oli ongelmia:
Näin ollen on erittäin vaikeaa ohjelmoida tehokas algoritmi jopa Go-pelin viimeisen vaiheen pelaamiseen, saati koko pelin [11] .
Ihmiset tuntevat olevansa parempia Go:ssa kuin tietokoneet, koska he vertaavat niitä ihmisiin. "Ehkä kyse ei ole siitä, että tietokoneet pelaavat huonosti, vaan ihmiset pelaavat sitä liian hyvin" [12] . Muihin täystietopeleihin verrattuna Go:ssa on ominaisuuksia, jotka tekevät pelaamisesta erityisen helppoa. Kivet eivät liiku kuin nappulat shakissa, eivät vaihda väriä kuten käänteessä . Näiden ominaisuuksien avulla ihmiset voivat laskea pitkiä liikeketjuja, mikä on koneelle erittäin vaikeaa.
Kuitenkin niissä harvoissa tapauksissa, joissa kiviä vangitaan toistuvasti ja toistetaan samoissa pisteissä, ihmisillä on ongelmia, vaikka he ovat helppoja tietokoneille.
Yksi erittäin tärkeä osa Go-peliä, jossa selvitetään, mitkä kiviryhmät voivat selviytyä ja mitkä voidaan kaapata, tunnetaan nimellä "elämä ja kuolema". Suorin strategia elämän ja kuoleman määrittämiseksi on rakentaa hakupuu liikkeille, jotka vaikuttavat kyseiseen ryhmään ja määrittää ryhmän tila puun päätysolmuissa.
Ajan ja käytettävissä olevan RAM-muistin rajoissa on kuitenkin mahdotonta määrittää täydellä tarkkuudella, mitkä liikkeet vaikuttavat valittuun ryhmään. Ei ole harvinaista esimerkiksi tilanteet, joissa yhden ryhmän elämä voidaan varmistaa vain vangitsemalla toinen. Tämä tarkoittaa, että käsillä olevan ongelman ratkaisemiseksi on käytettävä joitain heuristiikkaa harkitsevien liikkeiden määrittämiseksi. Tämän seurauksena Go:ta soittavat ohjelmat osoittavat korrelaation ajatteluun käytetyn ajan ja ryhmien elinkelpoisuuden määrittämisen laadun välillä.
Go for-ohjelmien sijainnin esittämisessä on ongelma. Jos siirtoa etsitään intensiivisesti muuton ajatteluprosessissa, näkymä tarvitsee pienen määrän dataa, joka voidaan helposti kopioida ja tuhota. Jos sijaintitiedot sisältävät erittäin jäsenneltyä dataa, on vaikea kopioida ja hidastaa hakuprosessia.
Helpoin tapa esittää se on luoda yksi- tai kaksiulotteinen taulukko, joka sisältää tietoa siitä, minkä värisiä kivet ovat kussakin kentän kohdassa ja mahdollisuudesta siirtyä tyhjiin paikkoihin.
Useimmat ohjelmat käyttävät kuitenkin enemmän raakalevytietoja edustamaan asemaa. Tämä voi olla tietoa siitä, kuinka kivet ovat yhteydessä jokaiseen riviin ja kuinka linjat liittyvät toisiinsa, tietoa kiviryhmistä, jotka ovat vaarassa jäädä kiinni ja jotka ovat elossa. Ja vaikka nämä tiedot voidaan poimia suorasta esityksestä, on paljon nopeampaa muuttaa sitä jokaisella käännöksellä ja siirtää se valmiissa muodossa. Tällaiset lisämuutokset vaativat enemmän tiedon muistamista ja voivat vähentää kopiointinopeutta, joten pelitilanteen esittämisen ongelma on akuutti myös Go-ohjelmien tekijöille.
Vaihtoehtoisesti voit säilyttää vain yhden kopion taulusta ja muistaa tehdyt muutokset siirtoa tehdessäsi. Tämä vähentää muistikustannuksia ja kopiointinopeutta ja säästää kopioimasta tarpeettomia tietoja uudestaan ja uudestaan. Mutta on huomattava, että tämä esitysmuoto saattaa vaatia erilaisia lähestymistapoja sen tulkintaan kuin täydellisen tiedon tallentamisesta taulusta.
Epäsuorien esitysten käyttö Gossa törmää toiseen sudenkuoppaan, joka liittyy pelin rakenteeseen. Positio Gossa koostuu yksittäisistä kivistä, jotka muodostavat vaihtelevia rakenteita (ryhmiä ja ryhmiä). Pelin strategian ja taktiikan kannalta sellaiset esitysvaihtoehdot, jotka sisältävät selkeästi tietoa rakenteista ja tiloista, ovat hyödyllisempiä. Mutta tällaiset tiedot voivat muuttua kirjaimellisesti merkittävästi jokaisella liikkeellä (esimerkiksi yksittäinen liike, joka luo yhteyden kahden ryhmän välille, joilla kummallakin on yksi silmä, todella muuttaa nämä kaksi uhanalaista ryhmää yhdeksi, taatusti elossa, minkä pitäisi heijastuu näiden ryhmien edustuksessa unionina). Tehtävä muuttaa riittävästi monimutkaista esitystä tällaisissa tapauksissa on sinänsä erittäin ei-triviaali.
Historiallisesti tärkein lähestymistapa tietokone Go -ongelmaan on ollut "vanha kunnon tekoäly". Myöhemmin hermoverkkoja alettiin harkita vaihtoehtona tälle lähestymistavalle . Yksi ohjelmista, jotka käyttävät hermoverkkoalgoritmia Go:n pelaamiseen, on WinHonte [13] .
Tämän kehityksen tuloksia tietokone Go:n alalla käytetään muilla aloilla: kognitiivisessa tieteessä , hahmontunnistuksessa ja koneoppimisessa [14] . Peliteoria , soveltavan matematiikan haara , pätee myös tietokone Go:hen [14] .
Ainoa asia, mitä ohjelman täytyy tehdä muuton ajattelun seurauksena, on osoittaa paikka, johon seuraava kivi tulisi sijoittaa. Jopa näin yksinkertainen päätös on kuitenkin vaikea hyväksyä, koska kannanotot ovat moniselitteisiä, joihin tämä muotoilu voi johtaa. Erilaisia arkkitehtuureja on mukautettu ratkaisemaan tämä ongelma. Suosituimmat perustuvat hakupuun käyttöön , Monte Carlo -menetelmien soveltamiseen, asiantuntijajärjestelmien luomiseen ja koneoppimisen käyttöön . Harvat ohjelmat käyttävät vain yhtä näistä; useimmat yhdistävät useita lähestymistapoja.
Minimax-hakupuuYksi perinteisistä tekoälytekniikoista pelejä pelaavien ohjelmien luomiseen on minimax-hakupuun käyttö . Tätä varten harkitse kaikkia hypoteettisesti mahdollisia liikesarjoja tiettyyn syvyyteen asti ja käytä sitten arviointifunktiota sen liikkeen arvon arvioimiseen, josta kukin sarja alkoi. Parhaaseen tulokseen johtanut liike toistetaan laudalla ja tämän jälkeen suoritetaan sama toimenpide jokaiselle tietokonesoittimen siirrolle. Vaikka hakupuumenetelmät ovat menestyneet shakissa , ne ovat olleet vähemmän onnistuneita Go:ssa.
Tämä johtuu osittain siitä, että tehokkaan arviointifunktion luominen on vaikeaa, ja osittain mahdollisten liikkeiden suuresta määrästä, mikä johtaa suureen haarautumiskertoimeen. Tämä tekee hakupuutekniikasta liian resurssiintensiivisen. Siksi ohjelmat, jotka käyttävät paljon hakupuita, voivat toimia hyvin vain pienellä 9x9-laudalla, mutta eivät suurella 19x19-laudalla.
On olemassa tekniikoita, jotka voivat parantaa hakupuiden suorituskykyä sekä nopeuden että muistin suhteen. Alfa-beta-leikkausmenetelmät , Peruspoikkeamien löytäminen MDT - f voivat vähentää haarautumiskerrointa lähes ilman pelin tehon menetystä. Vastaavasti permutaatiotaulukko mahdollistaa uudelleenlaskujen vähentämisen, varsinkin kun sitä käytetään yhdessä iteratiivisen syvennysmenetelmän kanssa . Permutaatiotaulukossa olevien tietojen nopeaa käyttöä varten on käytettävä hajautustoimintoa . Zobrist-hajautus on yleistä Go-ohjelmissa, koska se tarjoaa vähän törmäyksiä ja mahdollistaa nopean päivittämisen jokaisesta liikkeestä käyttämällä vain kahta XOR -toimintoa täyden laskennan sijaan.
Jopa näillä aikaa lyhentävillä tekniikoilla täysi laudan hakupuu on edelleen hyvin hidas. Hakua voidaan nopeuttaa rajoittamalla haaroittumista entisestään, jättämällä huomioimatta vaihtoehtoja siirtymiselle vastustajan vaikutusalueelle tai valitsemalla ensin huomioida atari-asennossa olevat kiviryhmät . Molemmat menetelmät ovat kuitenkin vaarassa jättää huomiotta tärkeitä liikkeitä, jotka voivat muuttaa pelin kulkua.
Tietokonekilpailujen tulokset osoittavat, että askelketjun valinnassa käytettävät kuvion sovitusmenetelmät yhdistettynä nopeaan rajoitettuun taktiseen hakuun (selvitetty yllä) ovat riittäviä kilpailukykyisen ohjelman tuottamiseksi. Esimerkiksi GNU Go on kilpailukykyinen, mutta se ei käytä täyden pöydän hakuja.
AsiantuntijajärjestelmätAloittelijat oppivat usein katsomalla pelin mestareiden vanhoja pelejä. On olemassa vahva hypoteesi, että tiedon kertyminen on avain vahvan tekoälyn luomiseen. Esimerkiksi Tim Kinger ja David Mechner sanovat: "Uskomme, että vain käyttämällä työkaluja tiedon keräämiseen ja ylläpitämiseen Go-alalla voit luoda paljon vahvempia ohjelmia kuin meillä tällä hetkellä on." He ehdottavat kahta tietä: yleisten muotojen ja niiden käytön tarkastelua tai paikallisten vastakohtien tarkastelua. "...Go-ohjelmistosta puuttuu edelleen sekä tiedon laatu että määrä." [viisitoista]
Toteutuksen jälkeen kokeneen tiedon hyödyntäminen osoittautui erittäin tehokkaaksi. Sekä korkean tason amatöörit että ammattilaiset ovat laatineet satoja ohjeita ja peukalosääntöjä vahvalle pelille. Ohjelmoijan tehtävänä on ottaa nämä heuristikot , formalisoida ne konekoodiksi ja selvittää, milloin niitä tulee käyttää kuvioiden täsmäämisen ja hahmontunnistuksen avulla. Lisäksi kannattaa kehittää järjestelmä parhaan ratkaisun tunnistamiseksi, kun useita periaatteita pätee kerralla.
Suurin osa suhteellisen onnistuneista tuloksista perustuu ohjelmien kirjoittaneiden ohjelmoijien Go-playing-taitoon ja heidän henkilökohtaisiin arvauksiinsa mestareiden pelistä, ei muodollisiin matemaattisiin virhelaskentaan; he yrittävät saada tietokoneen jäljittelemään tapaa, jolla he itse pelaavat Goa. "Useimmat kilpailevat ohjelmat ovat vaatineet 5-15 vuoden inhimillistä työtä ja sisältävät 50-100 moduulia, jotka käsittelevät pelin eri puolia." [16]
Tämä menetelmä on viime aikoihin asti ollut menestynein tekniikka kilpailukykyisten Go-ohjelmien tuottamisessa täysikokoisella kentällä. Esimerkkejä ohjelmista, jotka ovat tukeutuneet enemmän kokemukselliseen tietoon, ovat Handtalk (tunnetaan myöhemmin nimellä Goemate), The Many Faces of Go, Go Intellect ja Go++, joita kaikkia pidettiin jossain vaiheessa maailman parhaana Go-ohjelmana.
Asiantuntijatiedon lisääminen kuitenkin joskus heikentää ohjelmaa, koska pelkkä pinnallinen orientoituminen tilanteessa voi johtaa virheisiin. "Parhaat ohjelmat tekevät yleensä hyviä mestaritason liikkeitä, mutta kuten kaikki pelaajat tietävät, yksi huono liike voi pilata hyvän pelin." [16]
Monte Carlo MethodsYksi tärkeimmistä vaihtoehdoista koodatun tiedon käyttämiselle ja liikkeiden löytämiselle on Monte Carlo - menetelmä . Tämän menetelmän ydin on, että ensimmäiset paikat valitaan nykyiseltä laudalta, joihin voit mennä, ja sitten, alkaen peräkkäin jokaisesta niistä, pelataan suuri määrä satunnaisia pelejä. Seuraavalle kierrokselle valitaan sijoitus, joka antaa suurimman voittojen ja tappioiden suhteen. Tämän menetelmän etuna on, että se vaatii hyvin vähän tietoa ongelma-alueesta eikä vaadi paljon muistia. Tällä menetelmällä on kuitenkin myös ilmeisiä haittoja. Koska liikkeet generoidaan satunnaisesti eikä kaikkia mahdollisia jatkoja oteta huomioon, jotkut liikkeet arvioidaan virheellisesti hyviksi. Vaikka jatkojen satunnainen valinta on suotuisa, vastustajalla voi olla muutamia, mutta melko ilmeisiä liikkeitä, joiden avulla hän saa etulyöntiaseman. Nämä liikkeet eivät joko kuulu satunnaisotokseen tai hyviä jatkoja on enemmän. Tuloksena on ohjelma, joka on strategisesti vahva, mutta taktisesti heikko. Tätä ongelmaa voidaan lieventää lisäämällä asiantuntemusta ja syvempää hakua. Monte Carlon ohjelmiin kuuluvat Zen , The Many Faces of Go v12 , Leela , MoGo , Crazy Stone [17] , Olga ja Gobble.
Vuonna 2006 kehitettiin uusi tekniikka, puihin sovellettava yläluottamusraja [18] , jota käytetään monissa ohjelmissa Go:n pelaamiseen 9x9-laudalla erinomaisin tuloksin. UCT-tekniikka yhdessä monien muiden 19x19-laudalla pelaamista koskevien optimointitekniikoiden kanssa on mahdollistanut MoGon olevan yksi vahvimmista ohjelmista. UCT-tekniikkaa 19x19-laudalla pelaamiseen käyttävät seuraavat ohjelmat: MoGo, Crazy Stone, Mango . MoGo voitti 2007 Computer Olympiadin ja voitti yhden kolmesta blitz-pelistä Guo Juania vastaan [1] , 5. Dan. Vuonna 2008 The Many Faces of Go voitti Computer Olympiadin lisättyään UCT:n asiantuntijatietopohjaiseen mekanismiinsa.
Vuonna 2008 MoGo voitti yhden kolmesta pelistä [19] Catalina Taranua vastaan , 5 pro-dan, 9x9-laudalla normaaliajalla (30 minuuttia per peli per pelaaja). MoGo lanseerattiin klusteritietokoneella (32 solmua, joissa 8 ydintä 3 GHz:llä). Nämä tulokset hyväksyi Ranskan Go-liitto [20] . MoGo pelasi myös 19x19 laudalla samaa Catalina Taranua vastaan ja hävisi 9 kiven etulähdöllä. On kuitenkin syytä huomata, että ohjelma pelasi vahvasti ja hävisi yksinkertaisesti huonojen ko-fight-valintojen vuoksi pelin lopussa, jossa tietokoneet ovat perinteisesti heikkoja.
7. elokuuta 2008 MoGo voitti 19x19 lautapelin Kim MyungWania vastaan 8p 9 kiven etumatkalla 1,5 pisteellä. Kim käytti 13 minuuttia ajatteluun, kun taas MoGo käytti noin 55 minuuttia, mutta hänestä tuntui, että lisäajan käyttäminen ei auttaisi häntä voittamaan. MoGo lanseerattiin Alankomaista 800-solmun supertietokoneella, joka sisältää 4 ydintä solmua kohti, 4,7 GHz ja 15 teraflopsin suorituskykyä . [21] . Myeonghwan ja MoGo pelasivat neljä peliä erilaisilla tasoitus- ja aikarajoilla ja voittivat kumpikin kaksi peliä. Peliraportit ovat saatavilla KGS:ssä [22] , jossa MoGo pelasi nimimerkillä MogoTitan.
Helmikuussa 2009 MoGo saavutti vielä suuremman voiton - 7 kiven tasoituksella hän voitti 9. danin pelaajan Jun-Xun Zhoun ja 6 kiven tasoituksella mursi 1. danin pelaajan Li-Chen Chienin vastuksen [23] .
Vuoden 2012 alkuun mennessä CrazyStonella [24] , joka perustuu samaan Monte Carlo -menetelmään kuin MoGo, on vakaa 5 dan KGS-palvelimella [25] .
Joulukuussa 2010 Zen-tietokoneohjelma saavutti 4. dan -tason KGS-palvelimella. Zen-ohjelman loi japanilainen ohjelmoija Yoji Ojima. Kesäkuussa 2011 tietokoneohjelma Zen19d saavutti 5 danin tason KGS-palvelimella pelaten nopeudella 15 sekuntia kierrosta kohti. Tämä ohjelman versio toimi 26-ytimisessä tietokoneessa. Maaliskuussa 2012 tietokoneohjelma Zen19D saavutti 6 danin tason KGS-palvelimella pelaten nopeudella 15 sekuntia kierrosta kohti. Tämä ohjelman versio toimi 28-ytimisessä tietokoneessa [26] .
Maaliskuussa 2012 Zen19D voitti 9 danin 4 tasoituskivellä Takemiya Masakia vastaan. Tätä ottelua varten käytimme neljän tietokoneen klusteria (kaksi 6-ytimistä Xeon X5680/4,2 GHz, 6-ytiminen Xeon W3680/4 GHz ja kaksi 4-ytimistä i7 920/3,5 GHz), jotka oli kytketty GbE LAN:in kautta. Samaa laitteistoa käytetään Zen19S:lle ja Zen19D:lle KGS-palvelimella [27] .
KoneoppiminenTietopohjaiset ohjelmat Go-pelaamiseen ovat erittäin tehokkaita, mutta niiden tietotaso liittyy läheisesti ohjelmoijien ja vastaavien toimialueen asiantuntijoiden tasoon. Tämä ongelma voidaan kiertää käyttämällä koneoppimismenetelmiä , joiden avulla ohjelma voi luoda malleja ja käyttäytymisstrategioita, joita ei ole sisäänrakennettu siihen etukäteen.
Periaatteessa tämä lähestymistapa toteutetaan käyttämällä hermoverkkoja tai geneettisiä algoritmeja , joiden avulla voit joko löytää oikean tilanteen suuresta pelitietokannasta tai pelata monia pelejä itseäsi tai muita ohjelmia tai ihmisiä vastaan. Tunnettuja hermoverkkoja käyttäviä ohjelmia ovat NeuroGo ja WinHonte.
Go-pelaavien tietokoneohjelmien joukossa järjestetään useita tunnettuja vuosittaisia kilpailuja, joista tunnetuin on Computer Olympiad. Säännöllisiä ja vähemmän muodollisia kilpailuja järjestetään KGS :ssä (kuukausittain) ja CKS :ssä (jatkuvasti).
Tunnetuimpia Go-playing-ohjelmia ovat Pohjois-Korean Silver Star KCC Igo, Handtalk (tekijä Chen Zhixing), GoPlusPlus (Michael Reiss) ja David Fotlandin Monet Faces of Go. GNU Go on ilmainen ohjelmisto, joka on myös voittanut tietokonekilpailuja.
Ensimmäiset Computer Go -kilpailut sponsoroi USENIX. Ne pidettiin vuosina 1984-1988. Nämä kilpailut lanseerasivat Nemesis, Bruce Wilcoxin ja David Fotlandin G2.5:n ensimmäinen kilpaileva Go-playing-ohjelma, josta myöhemmin kehittyi Cosmos ja The Many Faces of Go.
Yksi varhaisimmista kannustimista tietokone Go:n kehittämiseen oli Ing Cup, suhteellisen suuri rahapalkintokilpailu, jota sponsoroi taiwanilainen pankkiiri ja Ing Cupin perustaja Ing Chang-ki. Kilpailu järjestettiin neljän vuoden välein vuosina 1988–2000. Tämän turnauksen voittaja sai haastaa nuoret ammattilaiset tasoituspelissä lyhyellä aikavälillä. Jos ohjelma voitti, sen kirjoittaja palkittiin rahapalkinnolla ja uusi palkinto määritettiin heikomman vamman omaavan ammattilaisen voitosta. Palkintojen piti päättyä 1) vuonna 2000 2) kun ohjelma voitti ensimmäisen dan-pelaajan tasapelissä (40 000 000 NT $ ). Viimeinen voittaja oli Handtalk vuonna 1993, ja hän sai 250 000 NT$ voittaessaan 8-9-vuotiaita ammattilaisia 11 kivellä. Vuoteen 2000 mennessä 400 000 NT$:n palkinto ammattilaisen päihittämisestä 9 kiven tasoituksesta jäi lunastamatta [28] .
Yllättäen Japani on vasta hiljattain alkanut sponsoroida omia tietokoneiden Go-mestaruuskilpailujaan. FOST Cup -kilpailu järjestettiin vuosittain Tokiossa vuosina 1995-1999. Sen korvasi Gifu Challenge, joka järjestettiin vuosittain Ogakissa Gifun prefektuurissa vuosina 2003–2006 .
Lokakuussa 2015 DeepMindin kehittämä AlphaGo voitti kolminkertaisen Euroopan mestarin Fan Huin (2. ammattidan) viiden pelin ottelussa 4-1. Tämä on ensimmäinen kerta historiassa, kun tietokone on voittanut ammattilaisen go-pelissä tasapelissä [1] [29] [30] .
Maaliskuussa 2016 AlphaGo voitti 9. danin ammattilaisen Lee Sedolin neljässä pelissä viidestä. [2]
Toukokuussa 2017 Future of Go Summitissa AlphaGo voitti kolme peliä kolmesta miniottelussa yhden maailman vahvimmista pelaajista, maailmanjohtajan Elo Ke Jien kanssa [6]
Kun kaksi tietokonetta pelaavat Goa toisiaan vastaan, ihannekuva pelistä olisi ihmisestä ihmiseen. Tämä on kuitenkin vaikea saavuttaa, varsinkin myöhäisessä pelissä. Suurin ongelma on, että ohjelma ei voi käydä vuoropuhelua vihollisen kanssa. Joten jos ryhmien tilasta on erimielisyyksiä, ohjelmat eivät voi ratkaista niitä. Yksi tapa ratkaista tämä ongelma voisi olla ottamalla käyttöön ihmistuomari tai erittäin erikoistunut ohjelmistoympäristö arvioimaan lopullisen aseman. Vaihtoehtoinen tapa on antaa ohjelmien liikkua, kunnes kaikkien kiistaryhmien tilat on lopullisesti määritetty. Suurin este tämän ratkaisun toteuttamiselle on, että joissakin Go-säännöissä (esimerkiksi japanilaisissa säännöissä) pelaajia rangaistaan ylimääräisistä liikkeistä, pisteiden menetyksestä. Siksi on olemassa riski, että epäiltyään sen etua, ohjelma häviää pelattuaan voittotilanteen.
Mennä | |||||
---|---|---|---|---|---|
| |||||
Varasto | |||||
säännöt |
| ||||
Pelin vaiheet | |||||
Terminologia | |||||
Purkaukset | |||||
Organisaatiot | |||||
Otsikot | |||||
Kansainväliset turnaukset |
| ||||
Mene taiteeseen |
| ||||
Muut | |||||
|