Igrajmo šah!
Šahovski stroj analizira tisoče potez in se odloča brez interakcije s človekom. Moč in pamet šahovskih strojev sta vsako leto večji. Zanimalo nas je, kateri so danes najboljši in kako odigramo igro šaha prek domačega računalnika ali interneta.
Vedno večja zmogljivost računalnikov in vzporedna obravnava omogočata šahovskim strojem izračun vedno večjega števila potez vnaprej v vedno krajšem času. Močno izboljšana je tudi tehnika igranja. Šahovski stroji so pri izbiri potez bolj selektivni in bolj razumejo trenutne šahovske položaje.
Vseh mogočih šahovskih položajev na odločitvenem drevesu igre šaha je po matematičnih izračunih okoli 10120. Zato si ne moremo predstavljati, da bi katerikoli šahovski stroj lahko preračunal celotno igro šaha vnaprej. Za kaj takega preprosto nima dovolj časa. Večina današnjih šahovskih strojev je kljub temu sposobna v normalnih razmerah premagati šahovskega velemojstra. Toda en človek bi težko odigral po petdeset ali več iger šaha proti vsakemu šahovskemu stroju. Zato slednje ocenjujejo pri medsebojni igri po več tisoč odigranih partijah.
Strokovnjaki primerjajo zmogljivost šahovskih strojev po različnih lestvicah zmogljivosti, med katerimi sta najbolj priljubljeni CCRL (Computer Chess Rating List) in CEGT (Chess Engines Grand Tournament). Šahovski stroji imajo na šahovskih turnirjih omejen čas razmišljanja. Denimo, 40 potez v 40 minutah ali 120 potez v 40 minutah. Zato je njihova zmogljivost odvisna tudi od zmogljivosti strojne opreme. Pomembna dejavnika sta število vzporednih procesorjev oziroma procesorskih jeder, in procesorska arhitektura, ki posameznim šahovskim strojem najbolj ustreza. Veliko se jih zanaša na Intelovo arhitekturo ali celo specializirane strojne ukaze novejših serij procesorjev.
Kako delujejo šahovski programi?
Šahovske programe sestavljata šahovski stroj, ki izračunava poteze, in grafični vmesnik, ki na zaslonu v dveh ali treh razsežnostih izriše šahovnico s šahovskimi figurami. Veliko boljših šahovskih strojev je neodvisnih od grafičnega vmesnika. Podpirajo enega ali več šahovskih komunikacijskih protokolov, prek katerih se lahko povežejo z grafičnim vmesnikom ali z drugim šahovskim strojem. Partijo šaha tako brez težav odigrata tudi dva računalnika, ki delujeta na različnih strojnih in programskih osnovah. Po drugi strani lahko prek grafičnih vmesnikov med seboj prek interneta šahiramo tudi ljudje.
Pri nekaterih tekmovanjih šahovskih strojev omejijo uporabo vzporednosti na 8 ali 4 procesorska jedra ali celo na eno samo procesorsko jedro, s čimer enakovredneje primerjajo algoritme za strojno igranje šaha, ki jih poganjajo šahovski stroji.
Tekmovanje šahovskih strojev
Na lestvicah CCRL in CEGT se je v začetku letošnjega leta dobro odrezala množica šahovskih strojev. Zato bomo omenili samo nekaj najboljših.
Hudini je znan po pozicijski igri in močni obrambi ter žilavosti v težkih položajih, ko zna končati igro s patom. Na vrhu lestvic je že tretje leto. Zadnja različica Hudinija je na voljo v dveh podrazličicah, standardni in profesionalni. Prva podpira do 8 procesorskih jeder, profesionalna različica pa do 128. Hudini lahko pri odločanju izkoristi do 128 GB RAMa. Uporablja tudi Nailmove tabele šahovskih končnic.
Komodo je bil izdelan na podlagi starega iskalnega stroja, Docha. Bolj se opira na ocenjevanje stanj kot na globino odločitvenega drevesa. Podpira do 64 procesorskih jeder. Uporablja Syzygyjeve tabele šahovskih končnic in Fischerjev algoritem za naključno igranje šaha. Dovoljuje shranjevanje analize posameznega položaja, kar omogoča kasnejše preverjanje odločitev in nadaljnje analize. Uporabnik lahko vpliva tudi na dolgoročne odločitve pri žrtvovanju kmetov, ki omogočajo bolj dinamično igro.
Stockfish je odprtokodni šahovski stroj z univerzalnim šahovskim vmesnikom in vgrajeno umetno inteligenco, ki je na voljo za številna programska in strojna okolja za namizne računalnike in mobilne naprave. Temelji na odprtokodnem šahovskem stroju Glaurung. Stochfich lahko izrabi do 512 procesorskih jeder in do 1 TB RAMa. Od lani je vgrajen tudi v šahovsko spletno stran Lichess, kjer lahko odigramo partijo šaha kar prek spletnega brskalnika.
Stockfish nima svojega grafičnega vmesnika, temveč podpira komunikacijski protokol XBoard, ki ga podpirajo šahovski grafični vmesniki Arena, PolyGlot, Shredder, Sigma Chess, Chess Partner in drugi.
Suger XPro je izdelan na podlagi šahovskega stroja Stockfish. Podobno kot Stockfish nima lastnega grafičnega vmesnika in podpira komunikacijski protokol XBoard. Uporabi lahko do 128 procesorskih jeder.
AsmFish prav tako temelji na StockFishu, delno prevedenem v zbirnik za procesorje z Intelovo arhitekturo x86. Deluje v Microsoft Windows in več različicah Linuxa. Vgrajene ima nekatere strukturne optimizacije. Časovno kritične funkcije so prevedene v zbirnik, za druge pa so uporabili cejevski prevajalnik, GCC. Večjo zmogljivost so programerji dosegli tudi z uporabo tehnologije bitboard, ki pohitri izvajanje v 64-bitnih procesorjih.
Fire, v začetku imenovan Firebird, je brezplačen šahovski stroj. Do različice za Microsoft Windows je bil tudi odprtokoden. Uporablja Syzygyjeve tabele šahovskih končnic in vzporedno iskanje ter podpira univerzalni šahovski vmesnik. Uporablja tudi tehnologijo bitboard.
Fizbo, katerega prva različica je ugledala luč sveta pred štirimi leti, se prav tako zanaša na posebne procesorske strojne ukaze, s katerimi pohitri strojno razmišljanje. Uporablja izboljšan iskalni algoritem in iterativno poglablja iskanje po odločitvenem drevesu. Deluje le v operacijskem sistemu Microsoft Windows.
Deep Shredder je plačljiv šahovski program, katerega prvo različico so razvili že leta 1993. Do danes je zmagal že na več kot 20 šahovskih turnirjih. Ima grafični vmesnik, ki podpira komunikacijski protokol univerzalni šahovski vmesnik.
Andscacs je podobno kot Fizbo dobil prvo različico pred štirimi leti in se razvil v enega najboljših šahovskih strojev. Uporablja tehnologijo bitboard in večnitno vzporedno iskanje.
GullChess je odprtokodni šahovski stroj, večinoma napisan v programskem jeziku C++. Izkorišča procesorsko arhitekturo x86 in Syzygyjeve tabele šahovskih končnic.
Kako šahovski stroj sestaviti sam?
Ker so najboljši šahovski stroji večinoma zastonj in odprtokodni, jih pogosto prilagajo grafičnim vmesnikom. Lahko trdimo, da so se brezplačni grafični vmesniki prelevili v brezplačne šahovske programe. Sestavljanje je potrebno le, če želimo z grafičnimi vmesniki uporabljati najnovejše različice šahovskih strojev. Pomembno je, da grafični vmesnik podpira komunikacijski protokol šahovskega stroja in da mu lahko podamo pot do izvedljive datoteke s šahovskim strojem. Za vse drugo poskrbi grafični vmesnik.
Preizkusili smo brezplačni šahovski program Tarrasch Chess GUI, ki ima priložene brezplačne šahovske stroje Hudini, Komodo, Rybka, StockFish in celo lastni TarraschToyEngine za začetnike. Zanimivo, da so šahovski stroji v zelo kratkih izvedljivih datotekah, ki zasedejo vsega nekaj megabajtov, drugače pa je celotni programski paket stisnjen v datoteko setup-tarrasch-v3.03a.exe (www.triplehappy.com/downloads.html) z le 75 MB, iz katere ga enostavno namestimo v Microsoft Windows.
Šahovski komunikacijski protokoli
GNU Chess je bil prvi neuradni standard za komunikacijo med šahovskimi stroji na ravni ukazne vrstice. Prvič so ga uporabili v grafičnem vmesniku XBoard, ki je omogočal grafično prestavitev šahovnice in enostavnejšo interakcijo med človekom in računalnikom. XBoard je postal tudi sinonim za komunikacijski protokol za igranje šaha. WinBoard je nastal, ko so programerji XBoard prenesli v okolje Microsoft Windows. Po WinBoard so poimenovali tudi komunikacijski protokol za komunikacijo s šahovskimi stroji, WinBoard Protocol. Slednji ima danes že drugo različico. Nekoliko kasneje smo dobili še univerzalni šahovski vmesnik (angl. Universal chess interface, krajše UCI), ki je nekoliko enostavnejši za implementacijo.
Nekateri šahovski stroji podpirajo več komunikacijskih protokolov, pri drugih moramo uporabiti ustrezne protokolne konverterje.
Privzeti šahovski stroj lahko zamenjamo, če na zavihku Options (slov. možnosti) izberemo Engine (slov. stroj) in zamenjamo pot do izvedljive datoteke šahovskega stroja. Ko smo v Microsoft Windows namestili zadnjo različico StockFisha (9), ki smo jo razširili iz datoteke stockfish-9-win.zip (stockfishchess.org/download) v imenik C:\CHESS, in nastavili pravilno pot, je grafični vmesnik brez težav deloval z novim šahovskim strojem.
Nato smo preizkusili še zadnjo različico nekoliko lepšega in starejšega grafičnega vmesnika Arena (www.playwitharena.com), ki je imel priložene le starejše šahovske stroje, med njimi tudi Rybka. Z zadnjo različico StockFisha nismo imeli težav.
Arena omogoča tudi igranje šahovskih turnirjev med šahovskimi stroji. Dovolj je, da kot nasprotnika izberemo dva šahovska stroja in opazujemo njuno igro.
Zanimiv je tudi brezplačni šahovski program Capa, ki je napisan v programskem jeziku JAVA. Zato moramo prej namestiti enega izmed javanskih izvajalnih strojev (java.com/en/download), šele nato lahko zaženemo namestitveno datoteko Capa chess-1.0.1-installer.jar (sourceforge.net/projects/capa).
Capa ima vgrajen lasten šahovski stroj, lahko pa se poveže tudi s katerimkoli drugim šahovskim strojem, ki deluje po protokolu univerzalni šahovski vmesnik ali XBoard. Njegova posebnost so trirazsežne šahovnice, ki jih imajo predvsem plačljivi šahovski programi.
Kako igrati v internetu?
Številni šahovski spletni portali omogočajo igranje šaha, ne da bi morali namestiti šahovski program. Poiščemo jih z geslom »play chess«, ki ga vpišemo v enega od spletnih iskalnikov. Dobimo kar zajeten seznam spletnih strani, na katerih lahko igramo šah.
Spletni brskalniki so danes dovolj zmogljivi, da lahko prikazujejo dvorazsežno ali celo trirazsežno šahovnico. Po drugi strani imajo portali na razpolago dovolj zmogljivosti za igranje vzporednih iger šaha z vsemi uporabniki. Odzivnost spletnih šahovskih portalov je vsaj pri otvoritvenih potezah dobra.
Za igranje šaha prek interneta potrebujemo le novejši spletni brskalnik in naslov spletnih dveri, kjer lahko odigramo partijo (npr. www.chess.com, www.sparkchess.com, www.chess24.com, itn.). Za igranje povsem zadošča tudi pametni mobilni telefon.
Prednost spletnega igranja šaha je tudi možnost, da sodelujemo v šahovskih skupnostih in si hitro poiščemo človeškega nasprotnika. Izbiramo lahko tudi med različnimi računalniškimi nasprotniki.
Se splača šahovski program kupiti?
Dokler ni leta 2007 takrat brezplačni šahovski stroj Rybka zmagal na prvenstvu šahovskih strojev, so plačljivi šahovski programi zanesljivo premagovali brezplačne. Danes se brezplačni odprtokodni šahovski stroji odrežejo celo bolje kot plačljivi. Je pa tudi res, da so nekateri brezplačni šahovski stroji in programi postali plačljivi.
Brezplačni šahovski stroji sicer nimajo svojega grafičnega vmesnika in moramo združljiv grafični vmesnik poiskati v internetu. A k sreči je veliko brezplačnih grafičnih vmesnikov s priloženimi šahovskimi stroji, ki amaterskim igralcem šaha povsem zadoščajo.
Snovalci plačljivih šahovskih programov se danes bolj posvečajo učenju šaha kot zmagovanju na računalniških šahovskih turnirjih. Prednosti teh programov so predvsem: lepša grafična podoba, prijaznejši uporabniški vmesniki, več možnosti za poglobljeno analizo iger, vgrajena pomoč in dostop do velikih šahovskih knjižnic. Številni plačljivi šahovski programi postrežejo tudi s kopijami šahovskih knjižnic.
Med priljubljenimi šahovskimi programi so: Fritz, ki je do danes doživel že 15. različico, Chessmaster XI, katerega prve različice segajo že v osemdeseta leta prejšnjega stoletja, Komodo 10, Deep Rybka 4 in Lucas Chess. V spletu najdemo tudi specializirane šahovske knjižnice s tisoči odigranih partij. Ena izmed njih je HIARCS (www.hiarcs.com). Na spletnem portalu je tudi več različic programa HIARCS Chess Explorer za različne operacijske sisteme in strojne osnove.
Cene šahovskih programov in knjižnic se gibljejo od 50 do 100 evrov, kar za navdušene šahiste ni pretirano. Res pa je, da je danes veliko šahovskega znanja v internetu na voljo tudi zastonj, le potruditi se moramo, da ga poiščemo.
Spletna stran www.cegt.net z zadnjimi rezultati turnirja šahovskih strojev CEGT
Grafični vmesnik Tarrasch
Trirazsežni grafični vmesnik Capa
Dodajanje šahovskega stroja StockFish v Areno
Izbira soigralca na šahovskem spletnem portalu www.sparkchess.com
Šahovska spletna skupnost na portalu www.chess24.com
Partijo s sicer plačljivim šahovskim programom Shredder lahko prek spleta odigramo tudi zastonj.
Šahovski stroj StockFish lahko skupaj z izvorno kodo brezplačno prenesemo iz interneta.
Šahovska zbirka podatkov HIARCS Chess Explorer za PC