Tietokoneshakki

Wikipedia
Loikkaa: valikkoon, hakuun
Shakkitietokone

Tietokoneshakki tarkoittaa tietokoneohjelman pelaamaa shakkia. Shakissa on jokaisessa asemassa suhteellisen vähän siirtovaihtoehtoja, joten shakkilaudan analysoiminen sopii tietokoneelle.

Perusajatus[muokkaa | muokkaa wikitekstiä]

Shakkiohjelman perusrakenteeseen kuuluu arviointifunktio, joka arvioi pelitilanteiden edullisuutta (yksinkertaisimmallaan esimerkiksi laudalla olevien omien ja vastustajan nappuloiden määränä), ja hakualgoritmi, joka käy läpi mahdollisia tulevia siirtoyhdistelmiä etsien siirtoa, joka suurimmalla todennäköisyydellä johtaisi edulliseen pelitilanteeseen tulevaisuudessa. Shakin ohjelmoimisen päävaikeutena on, että mahdollisten pelitilanteiden määrä kasvaa nopeasti erittäin suureksi, joten kaikki mahdolliset siirtoyhdistelmät tutkimalla edes nykyiset supertietokoneet eivät pystyisi laskemaan peliä kovinkaan monta siirtoa eteenpäin. Sen vuoksi on kehitetty heuristiikkoja, joilla huonolta näyttävät hakupolut katkaistaan pian. Tietokone pystyy laskemaan siirtoja eteenpäin valtavan paljon nopeammin kuin ihminen, mutta toisaalta ihminen osaa paremmin sivuuttaa huonot siirtomahdollisuudet heti. Vastatakseen taitavan ihmispelaajan intuitiivisiin pitkän tähtäimen strategioihin, tietokone tarvitsee paljon laskentatehoa, koska siirtoja on laskettava kauas eteenpäin. Tämän vuoksi tietokoneet ovat pärjänneet shakissa ihmisille vasta viime aikoina.

Shakkiohjelmissa on myös mahdollista käyttää alku- ja loppupelikirjastoja johon on tallennettu hyväksi tai varmasti oikeaksi havaittuja siirtoja. Shakkiohjelmiin voidaan myös liittää tietokantoja johon on asennettu analysoituja pelejä joita seuraamalla tietokone pärjää mahdollisimman hyvin pelaajaa vastaan. Shakkiohjelmiin voidaan myös lisätä analysointiohjelma joka itse laskee asemaa eteenpäin ja tallentaa tietokantaan oikeaksi katsomiaan siirtoja parantaen näin vahvuuttaan.

Historia[muokkaa | muokkaa wikitekstiä]

Shakki on yksi vanhimpia tietokoneiden ohjelmointiin liittyvistä ongelmista. Esimerkiksi Konrad Zuse kirjoitti jo vuodesta 1943 eteenpäin kehittämällään Plankalkül-ohjelmointikielellä 49 sivua algoritmeja shakin pelaamiseen, vaikka itse ohjelmointikielelle ei ollut toteutusta.[1]

Neuvostoliitossa rakennettiin 1960-luvun alussa Kaissa-niminen shakkiohjelma joka sittemmin voitti tietokoneshakin maailmanmestaruuden. Ensimmäinen kansainvälinen tietokoneshakkiottelu pidettiin vuonna 1967. Tuolloin Kaissa pelasi amerikkalaista shakkiohjelmaa vastaan voittaen tämän 3-1. Tukholmassa pidettiin vuonna 1974 ensimmäinen tietokoneiden maailmanmestaruusturnaus. Tuolloin 13 konetta kahdeksasta maasta pelasi neljä kierrosta. Koneet sijaitsivat koko ajan kotimaissaan ja tiedonsiirto tapahtui puhelimitse koordinaatiokeskukseen. Kaissa voitti turnauksen ja seuraavina olivat tasapistein Chess ja Chaos. Toinen MM-turnaus järjestettiin Torontossa 1977. Voittaja oli tuolloin Chess 4.6 ennen jaetulle kakkossijalle yltäneitä Duchessiä ja Kaissaa. Kolmannet MM-kisat järjestettiin Linzissä 1980 ja voiton jakoivat Belle ja Chaos. Neljännen maailmanmestaruuden voitti Cray Blitz 1983 New Yorkissä. Neuvostoliiton kaissa ohjelmiston kehittely lopetettiin vuonna 1975 ja se pelasi viimeisen ottelun 1977, katsottiin että ohjelmoijilla on parempaakin käyttöä. Kaissa(caissa) jossakin lähteissä.

Shakkiohjelmat nykyisin[muokkaa | muokkaa wikitekstiä]

Nykyään tietokoneet pelaavat hyvin laadukasta shakkia. Esimerkiksi Deep Blue voitti vuonna 1996 shakin maailmanmestarin Garry Kasparovin ensimmäisessä pelissään. Kasparov voitti kuitenkin Deep Bluen kolmesti joten Kasparov voitti ottelusarjan 4-2.

Vuonna 1997 käyty uusintaottelu kuitenkin järisytti shakkimaailmaa. Ottelun kuudesta pelistä Deep Blue voitti kaksi, Kasparov yhden ja kolmesti pelattiin tasan. Tietokoneohjelma oli siis voittanut shakin maailmanmestarin luvuin 3,5-2,5. Ratkaiseva viimeinen peli oli erittäin dramaattinen. Tietokoneohjelma pelasi hyvin ja kovan paineen alla Kasparov teki virheitä ja hävisi pelin jo 19 siirrossa [2].

Tämän hetken eräs vahvimmista shakkitietokoneista on Hydra. Se voitti 21. kesäkuuta 2005 - 26. kesäkuuta 2005 pelatussa kuuden ottelun sarjassa Michael Adamsin 5 1/2-1/2. Hydra ei ole hävinnyt vielä kertaakaan ihmiselle turnausmuotoisessa pelissä, mutta esimerkiksi kansainvälinen suurmestari Arno Nickel on voittanut Hydran kuusi kuukautta kestäneessä kirjeshakissa. Hydra ei ole kuitenkaan yleisesti saatavilla, vaan se on 64 Xeon-suorittimen klusteri.

Eräs parhaimmista avoimen lähdekoodin shakkiohjelmista on Bob Hyattin tekemä ohjelma Crafty. Sen ELO-luku on noin 2600 ja sen edeltäjä, Cray Blitz, voitti tietokoneshakin maailmanmestaruuden vuosina 1983 ja 1986. Muita tunnettuja shakkiohjelmia ovat mm. Chessmaster ja Fritz.

Shakkiohjelmia[muokkaa | muokkaa wikitekstiä]

Shakkipeli tietokoneen ruudulla.

Ruotsalainen tietokoneshakin harrastajien sivusto The Swedish Chess Computer Association (SSDF) vertailee aktiivisesti eri shakkiohjelmia pitäen ranking listaa parhaista shakkiohjelmista.[3]

Shakkiohjelmat tulevaisuudessa[muokkaa | muokkaa wikitekstiä]

Yleisesti arvioidaan tietokoneiden pelaavan yhä vahvempaa shakkia tulevaisuudessa. Syynä tähän on tietokoneiden jatkuvasti kasvava laskentateho sekä laajenevat tietokannat. Nykyään shakkiohjelmien aseman arviointifunktioita on vaikea parantaa, sillä yhden osa-alueen arvioimiseen käytettävän funktion muokkaaminen saattaa heikentää jonkun toisen aseman arvioimista. On arvioitu, että tulevaisuudessa shakkiohjelmat voittavat aina shakin maailmanmestarit ja kilpailevat tasaväkisesti vain keskenään. Shakissa valkoisella saattaa olla voittostrategia, eli aloittaja pystyisi optimaalisella pelillä voittamaan pelin aina. Tätä ei ole todistettu, eikä kysymys ole tietokoneiden laskentakyvyn rajoissa. Teoreettisesti kysymys on kuitenkin mahdollista ratkaista, sillä nappuloiden alkuasemasta lähtien voidaan muodostaa kaikki laudan asemat kattava pelipuu ja päätellä näin saadusta puusta optimaalisen pelin siirrot.

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Sebesta, Robert W.: Concepts of Programming Languages, 4th edition, s. 40. Addison-Wesley Longman, 1998. ISBN 0-201-38596-1.
  2. http://www.research.ibm.com/deepblue/home/html/b.shtml
  3. The Swedish Chess Computer Association. [1]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]