Computerschaak

Uit Wikipedia, de vrije encyclopedie
Naar navigatie springen Naar zoeken springen

Computerschaak is het bordspel schaken zoals dat gespeeld wordt door computers. Om te kunnen schaken moet een computer voorzien zijn van een schaakprogramma.

Computers kunnen tegenwoordig sterker schaken dan vrijwel elke menselijke speler. Dat is zowel te danken aan de enorme rekensnelheid van computers als aan de in de loop der jaren steeds beter geworden programma's. Kenmerkend voor het schaken door computers is onder meer dat het gewoonlijk vrij is van duidelijke tactische fouten.

Werking[bewerken]

8 rd Chess d40.png Chess l40.png Chess d40.png rd Chess d40.png kd Chess d40.png
7 Chess d40.png Chess l40.png pd Chess l40.png Chess d40.png pd pd pd
6 Chess l40.png pd bd Chess d40.png Chess l40.png Chess d40.png Chess l40.png Chess d40.png
5 pd Chess l40.png bd Chess l40.png Chess d40.png Chess l40.png Chess d40.png Chess l40.png
4 pl Chess d40.png pl Chess d40.png Chess l40.png Chess d40.png Chess l40.png Chess d40.png
3 Chess d40.png Chess l40.png pl Chess l40.png bl qd pl Chess l40.png
2 Chess l40.png Chess d40.png ql Chess d40.png Chess l40.png pl Chess l40.png pl
1 rl Chess l40.png Chess d40.png Chess l40.png Chess d40.png rl kl Chess l40.png
a b c d e f g h
Er dreigt 1 ... Dg2 mat.

De gebruikelijkste manier waarop schaakprogramma's een nieuwe zet bepalen is door de zetten die in een bepaalde stelling mogelijk zijn, in het computergeheugen uit te voeren, waarna de ontstane stelling wordt geëvalueerd. Uiteraard zijn er als reactie daarop weer nieuwe zetten mogelijk. Een "halve zet" (dus een van zwart óf van wit) noemt men een 'ply'. Een computer die 5 zetten diep nadenkt, moet de stelling dus 10 ply diep onderzoeken.

Over het algemeen mag men verwachten dat een computerprogramma geen overduidelijke fouten over het hoofd ziet. Bijvoorbeeld: een menselijke speler ziet een relatieve penning weleens over het hoofd, hij speelt een paard weg waardoor een loper van de tegenstander de dame kan slaan. Maar er is alle kans dat de tegenstander zich fixeert op het paard en de buitenkans ook over het hoofd ziet. Een computerprogramma zal zo'n fout niet zo gauw maken.

Veel computerprogramma's staan erom bekend dat ze doorspelen tot het bittere einde en nimmer een partij opgeven. Ziet het programma een zet waarmee het onvermijdelijke mat nog even kan worden uitgesteld, dan zal het vaak die zet uitvoeren. Zie afgebeelde stelling. Het is nog mogelijk het onheil uit te stellen, namelijk met 1. De4. Dan sneuvelt de witte dame, maar de koning is nog even gered, hoewel niet voor lang. Een menselijke speler zal het een lachwekkende zet vinden en meteen opgeven. Veel schaakprogramma's zullen die zet echter toch uitvoeren.

Een mogelijkheid om remise voor te stellen ontbreekt meestal en sommige programma's spelen zelfs verder als er een overduidelijk dode stelling is ontstaan.[bron?]

Complexiteit[bewerken]

Stel dat er in een gemiddelde stelling 20 zetten mogelijk zijn, dan zou een schaakprogramma dat 5 zetten (10 ply) diep nadenkt, 2010 stellingen moeten evalueren, wat neerkomt op ruim 1013 stellingen. Hoewel het ondoenlijk is dit grote aantal stellingen te controleren, zijn er toch schaakcomputers die 5 zetten (en meer) vooruit kunnen denken. Dit is mogelijk doordat het schaakprogramma bepaalde voortzettingen niet meer bekijkt als bijvoorbeeld duidelijk is dat die toch alleen tot verlies leiden. Dit wegsnijden van voortzettingen uit het denkproces wordt vaak aangeduid als 'pruning' (letterlijk 'snoeien').

Hoewel een schaakpartij officieel eindigt met mat, kan een schaakprogramma eenvoudigheidshalve het spel laten eindigen met het slaan van de koning. Voor de praktijk van het spel maakt dat geen verschil, het spel duurt een zet langer. Alleen voor pat moet een uitzondering worden gemaakt.

Echter, doordat het einde van het spel een zet later komt, kan het zijn dat mat door het programma over het hoofd wordt gezien. Een programma dat maar één zet vooruit kijkt en de keus heeft tussen de dame slaan (waardering 1000) en de koning aanvallen (waardering 10) zal het eerste kiezen. Dat de aanval op de koning mat is, ziet het programma niet, want dat blijkt pas op de volgende zet. Een programma dat twee zetten vooruit kijkt, kiest tussen nu meteen de dame slaan (1000) of bij de volgende zet de koning slaan (100 000), en dat maakt een groot verschil.[1]

Evaluatie van een stelling[bewerken]

Een stelling wordt geëvalueerd door er een bepaalde getalswaarde aan toe te kennen. Zo zou de computer een stelling waarin hij zelf is matgezet met -100 000 kunnen waarderen en een stelling waarin zijn tegenstander mat staat met +100 000. Dan is mat altijd slechter respectievelijk beter dan elke andere stelling.

Bepaalde kenmerken van een stelling zullen deze waarde verhogen of verlagen. Zo zal stukverlies de waarde in de regel verlagen. Maar ook andere kenmerken hebben er invloed op: het bezit van dubbelpionnen verlaagt de waarde meestal. Hoewel paard en loper ongeveer evenveel waard zijn, wordt het bezit van lopers in een open stelling gunstiger gewaardeerd dan het bezit van paarden. Een ander kenmerk dat de waarde van een stelling beduidend kan verhogen is het bezit van vrijpionnen.

Door de getalswaarde van de gegenereerde stellingen te vergelijken, kan de computer bepalen welke stelling voor hem het gunstigste is.

De oudste programma's spelen reproduceerbaar, dat wil zeggen dat in een bepaalde situatie altijd dezelfde zet zal worden gedaan. Het is dan mogelijk een partij opnieuw te spelen. Moderne programma's doen enigszins willekeurige zetten. Dit kan op twee manieren:

  • Wanneer twee of meer van de onderzochte zetten precies dezelfde beste beoordeling hebben, dan zal het programma willekeurig een van deze zetten uitkiezen.
  • Er wordt een willekeurige zet gekozen uit alle onderzochte zetten, waarbij de zet met de beste beoordeling de beste kans maakt. Er is dan een kleine kans dat een slecht beoordeelde zet wordt uitgevoerd.

Geavanceerde schaken[bewerken]

Geavanceerde Schaken is een vorm van schaken in 1998 ontwikkeld door Garri Kasparov, waar een mens speelt tegen een ander mens en beide hebben toegang tot computers om hun kracht te verhogen. De resulterende "gevorderde" speler, voerde aan Kasparov, sterker zou zijn dan een menselijke of een solo-computer. De geavanceerde schaakspeler heet Centaur (man + computer).

Geavanceerde schaaktoernooien[bewerken]

In de afgelopen jaren zijn er overal ter wereld talloze geavanceerde schaaktoernooien geweest. De belangrijkste waren ongetwijfeld de PAL / CSS Freestyle Tournament-gesponsord door de PAL Group in Abu Dhabi (Verenigde Arabische Emiraten). Deze wereldwijde toernooien werden gehouden in het "Playchess" webserver (ChessBase) en een zeer hoog niveau van het spel, misschien wel de hoogste ooit in een spelletje schaak met tijdcontrole hebben gehad. Dit zijn de winnaars in chronologische volgorde: Zacks (Steven Cramton en Zackary Stephen, USA), Zorchamp (Hydra, Verenigde Arabische Emiraten), Rajlich (Vasik Rajlich, Rybka, Hongarije), Xakru (Jiri Dufek, Tsjechië), vliegende schotels (Daniel Nielsen, Denemarken) Rajlich (Vasik Rajlich, Rybka, Hongarije), Ibermax (Anson Williams, Engeland), Ultima (Eros Riccio, Italië). Vergelijkbare toernooien werden ook georganiseerd door FICGS en Infinity Chess.

Op basis van de verkregen in geavanceerde schaaktoernooien resultaten werd ontwikkeld door Infinity Chess Elo indeling voor centauren, ziet de eerste Sephiroth (Eros Riccio) met 2755 Elo punten.[2]

Zie ook[bewerken]

Externe link[bewerken]

  1. Chess Titans op laag niveau
  2. Infinity Chess: Freestyle Top 100