Saturday, February 16, 2013

Maleprogrammide tee tänapäeva


Tänasel päeval suudavad tugevamad maleprogrammid mängivad tasemel, mis reitingus väljendub numbriga 3200. Võrdluseks võib tuua, et hetkel on parima inimese reiting 2872 ja parima eestlase reiting 2613. Kusjuures reiting 2872, mis kuulub Magnus Carlsenile on ühtlasi ka ajaloo kõrgeim FIDE reiting, purustades omaaegse Garry Kasparovi püüdmatuna näiva 2851 reitingu. Tänasel päeval on tippmaletajatel parimatele maleprogrammidele keeruline vastu saada. Hetkel on käimas mitteametlikud arvutimale meistrivõistlused. Kes soovib võib jälgida seda siit.

Esimest korda võitis maleprogramm mängu maailma esimaletaja vastu aastal 1996. Parimaks maletajaks oli siis Garry Kasparov ja väljakutsuja oli IBM'i poolt konstrueeritud Deep Blue. Kasparov suutis küll end koguda ja kuuemängulises matšis järgmisest viiest mängust võtta kolm võitu ja kaks viiki. Lõpptulemuseks jäi 4-2 inimese kasuks.
Väidetavalt oli esimene kord, kui arvuti võitis malemängus inimest 1958 aastal. Programm oli aga äärmiselt nõrk. See oli võimeline võitma täiskasvanud inimest, kellel ei olnud varasemat kokkupuudet malega ja keda oli enne mängu instrueeritud ainult tunni. Sellise aja jooksul peaks selgeks saama käigud, muidugi võib need ka mängu jooksul ära unustada :).

The Turk masina koopia. Foto: chessbase.com
Kuid millal koostati esimene töötav programm, mis suudaks mängida mängu malet inimese vastu?
Esimesena tunnistas inimese silm "malemasinat" aastal 1770. Masinat kutsuti türkalseks(The Turk). See võitis mitmeid tugevaid vastaseid, teiste seas ka näiteks malearmastajaid Benjamin Franklinit ja Napoleon Bonaparte'i. Masin aga osutus pettuseks, kuna sinna sisse oli peitunud tegelikult inimene. Sarnane lugu kordus ka 1868 aastal ehitatud "masinaga" Ajeeb.

Reaalselt koostati esimene programm, mis suutis ära mängida mängu malet 1957 aastal Alex Bernsteini poolt. Programm töötas IBM 704 peal, kasutas 70K mälu ja suutis maha arvutada 42000 tehet sekundis.

Nagu varem sai mainitud, siis esimesed programmid olid äärmiselt nõrgad. Huvitav on võidujooks, mis eelnes esimesele töötavale programmile.
1940 lõpus hakati kirjeldama, kuidas võiks üks malet mängiv programm töötada. Teerajajaks võib nimetada siin Alan Turingut. Ta kasutas mõnigi kord male näidet, vastamaks küsimusele, mida võib arvuti teha. Ilmselt hakkas ta maleprogrammi koostamisse tõsisemalt suhtuma 1948 aastal, kui tegi kihlveo Donalt Michie'ga(Briti päritolu tehisintellekti uurija), kumb suudab esimesena valmis ehitada malemasina.Turing alustas programmi kirjutamist veel valmimata arvutile. Kui programm oli valmis proovis ta seda käivitada Ferranti Mark 1 arvuti peal. Paraku ei olnud arvutil piisavalt võimsust, et programmi täita.

Vahepeal oli võidujooksuga liitunud mitmeid. Näiteks Claude Shannon(Ameerika päritolu matemaatik ja insener). Ta oli valmis saanud masina, mis suutis lahendada kahekäigulisi matte. Stanislaw Ulami(Poola päritolu matemaatik) poolt juhitud grupp sai 1956 aastal valmis versiooni malest, kus eemaldatud olid mängust odad. Programmil võttis 12 minutit, et ette arvutada nelja käiku. Hinnanguliselt oleks odade lisamisel aega läinud kolm tundi. Siiski sai esimesena valmis programmi, mis suutis terve mängu malet ära mängida 1957 aastal Alex Bernstein(mainitud eelpool).

Arvuti programmid, mis suudaksid keskpäraselt malet mängida hakkasid ilmuma alles 15-20 aasta pärast. Programmid, mis suudaksid maaila tippudega võistelda alles 1990-ndatel. Tänapäeval on arvuti töövahend enamustele maailma maletajatele.  Viimasel ajal on tekkinud vabavaraliste programmide pealetung. Üks juhtuvaid maleprogrammide tootjaid on saksa firma Chessbase GmbH. Kahjuks ma ei leidnud nende majandusaasta ülevaadet ja käivet. Seega ei oska hinnata, kas vabavaraliste programmide teke on nende käivet vähendanud.

Maleprogrammid on lihtsalt üks näide arvutite kasutamise võimalikusest, kuidas arvuti suudab hinnata hetke seisu ja seisu, mis võiks saabuda mitmete käikude pärast. Kui olete lihtsalt tavaline malesõber, siis võtke nupud ja laud, istuge sõbraga maha ja nautige mängu. Mängu algne eesmärk oli ikkagi ajaviide.

2 comments:

  1. Väga mõnus lugemine, aga kahjuks nädala blogiülesandest mööda (või ongi see mõeldud hoopis eraviisilise postitusena?). ITSPEA kursuse raames tuleks punktide saamiseks lähtuda nädalaülesannetest.

    ReplyDelete
    Replies
    1. Eks edaspidi üritan nädala teema punktid paremini jutu sees täita.

      Delete