Meenpä nukq.
Heräsin jokin aika sitten.
Eilen leikin jonkin verran GNU Go:lla ja vilkaisin muitakin Go-softiani. Käytyäni ruokakaupassa tein vielä yhden ison vilkaisun shakin maailmaan tutkimalla siitä tehtyjä WWW-sivuja. Varsinkin minua kiinnosti ne väitteet, että Go:ta pelaavan ohjelman tai tietokoneen tekeminen olisi paljon vaikeampaa kuin shakkia pelaavan. Mutta yrittänyttähän ei panna ja Go-ohjelmia onkin jo melkoisesti.
Toisaalta GNU Go:sta löytyy tällaisiakin optioita:
Options that affect strength (higher = stronger, slower): -D, --depthdeep reading cutoff (default 16) -B, --backfill-depth deep reading cutoff (default 12) -F, --fourlib-depth deep reading cutoff (default 7) -K, --ko-depth deep reading cutoff (default 8) --branch-depth deep reading cutoff (default 13) --backfill2-depth deep reading cutoff (default 5) --superstring-depth deep reading cutoff (default 7) --aa-depth deep reading cutoff (default 6) --owl-distrust owl distrust depth (default 6) --owl-branch owl branching depth (default 8) --owl-reading owl reading depth (default 20) --owl-node-limit max nodes for owl reading (default 1000) --level strength (default 10, up to 10 supported) --autolevel adapt gnugo level during game to respect the time specified by --clock .
Herää kysymys: Entä jos hankitaan lisää raakaa laskentatehoa ja kasvatetaan noita cutoff-arvoja mahd. paljon? Kuinka pitkälle sillä pötkitään? Vai käykö niin, että jossain vaiheessa laskentatehon ja cutoff-arvojen kasvatus hyödyttää yhä vähemmän ja ohjelman todelliset taidot tai niiden puute alkavat vaikuttaa enemmän riippakiven lailla?
Garri Kasparovin viimeaikojen taistot shakkitietokoneita vastaan ovat kyllä varsin mielenkiintoista tutkittavaa. Yksi aika kumma juttu on tämä: Miksi Garri Kasparovin voittamiseen tarvittiin IBM:n supertitetokoneita, kun muutama vuosi myöhemmin PC:llä pyörivä Deep Junior pääsi Garri Kasparovin kanssa tasapeliin? AFAIK IBM:n Deep Blue perustui paljolti suurelle määrälle tietoa aikaisemmista peleistä sekä brute-force-menetelmiin kun taas Deep Junior perustui eleganttiin ohjelmointiin, jossa peliä osataan hahmottaa ihmismäisemmin. Mihinkähän kaikkeen Deep Junior kykenisi, jos se portattaisiin niin, että se osaisi hyödyntää vaikkapa Intel Itanium-prossua ja saisi muutenkin alleen enemmän laskentatehoa ja muistia?
Itse harrastin jonkinverran shakkia teinixinä. Lähinnä muutaman vuoden mua vanhempi naapurin poika ja nuoruuden idolini Pekka Partanen oli mulla usein pelikumppanina. Ja jonkin verran shakista kertovia kirjoja oli kivaa tutkia.
Ja nyt sitten olen sekoamaisillani Go-peliin. Saa nähdä, kuinka mulle käy. Vielä en ole pelannut edes Gnu Go:lla yhtään oikeaa matsia loppuun asti, en edes 9X9-laudalla. Entä jos tekisikin niin, että ensin yksin kotona pelaisi GNU Go:ta vastaan niin kauan kunnes siitä ei enää ole paljoa vastusta mulle ja sitten vasta menis paikallisen Go-seura Tengenin peleihin? Toinen tärkeä apu Go:n oppimisessa olisi arvatenkin WWW: Voi olla, että samat temput, joilla olen opetellut Vi:tä ja LATEX:ia auttaisivat Go:n oppimisessa siinä määrin, ettei tarvitsisi törsätä rahaa koviin moneen Go-kirjaan. Eli etsitään ensin iso kasa erilaisia tutoriaaleja ja kenties myös printataan ne ja luetaan ne läpi järjestelmällisesti kokojärjestyksessä alkaen lyhimmmästä. Myöskin kaupunginkirjaston Go-kirjatarjontaa kannattanee hyödyntää.
Go:ssa muuten kiehtoo melkoisesti tuo tasoistussysteemi, jonka turvin tohtii
mennä pelaamaan vähän ketä tahansa vastaan. Ehkä eräs syy shakki-innostuksen
laantumiseen joskus teininä olikin se, kun ei ollut tasoitussysteemeistä
tietoakaan vaan olisi pitänyt löytää joku minun tasoinen pelaaja. Kieltämättä
myöskin Quakeja verkossa pelatessa olis joku tasoitussysteemi paikallaan:
Joskus vuosituhannen vaihteessa tuli kokeiltua Quaken peluuta verkossa ja yks
seikka, mikä siinä jurppi, oli tämä: Menin minne tahansa pelaamaan, niin aina
siellä oli joku 31337-g0d, joka tappoi kaikki vaikka pelkällä kirveellä
nopeammin kuin kerkesin sanoa Dimitri Shostakovitsh. Tekis mieli tunkea
sellaisille vaikka Railgun anaaliin syvälle ja poikittain. Olisi pitänyt siis
jaksaa kasata joku omantasoinen joukko, jota vastaa pelata. Oliskohan
mahdollista kyhätä sellainen Kääkki-serveri, jossa pelaajat ryhmiteltäisiin eri
matseihin sen mukaan, miten on aikaisemmissa peleissä pärjännyt? Sellaisessa
systeemissä mitkään über-pelaajat eivät kauaa häiritsisi nyypiöitten
mielenrauhaa vaan joutuisivat tuota pikaa muitten hirmutaitavien pelaajien
kanssa napit vastakkain.
Vielä löytyi pari Go-softaa Debian-paketteina: gtkgo ja sgf2tex.
Pelasin tänään jo muutaman kokonaisen pelin GNU Go:ta vastaan 9x9 kokoisella
laudalla ja helpoimmalla tasolla. Yhden pelin voitin ja loput hävisin tai
sitten keskeytin pelin, kun se alkoi mennä liian pahasti mönkään. Pitäis jaksaa
lukea joku hyvä tutoriaali ensin kunnolla, niin sujuis paremmin.