www.wikidata.de-de.nina.az
a b c d e f g h 8 87 76 65 54 43 32 21 1 a b c d e f g h Zweidimensionales Schachbrett wie es viele Schach Frontends auf dem Bildschirm ausgeben Ein Schachprogramm ist ein Computerprogramm das in der Lage ist Schach zu spielen Es lauft entweder auf PCs oder auf speziell zum Schachspielen angefertigten Schachcomputern Die Entwicklung von Schachprogrammen ist eine Disziplin des Computerschachs Wahrend bei fruheren Schachprogrammen die gesamte Funktionalitat in einem Programm vereint war besteht moderne Schachsoftware in der Regel aus zwei Teilen der sogenannten Engine dem eigentlichen Schachprogramm das die vom Computer gespielten Zuge berechnet und dem Schach Frontend das deren Darstellung und die Benutzerinteraktion ubernimmt Fur die Kommunikation zwischen Schachengine und Frontend gibt es zwei weit verbreitete offene Schach Kommunikationsprotokolle das XBoard Protokoll und das neuere Universal Chess Interface UCI Die Stellungen und Partien werden in proprietaren Formaten oder im offenen Portable Game Notation Format PGN gespeichert Inhaltsverzeichnis 1 Aktuelle Programme 2 Aufbau 2 1 Zuggenerator und interne Brettdarstellung 2 1 1 12 10 Darstellung 2 1 2 8 8 Darstellung 2 1 3 0x88 Darstellung 2 1 4 Bitboards 2 2 Bewertungsfunktionen 2 2 1 Material 2 2 2 Position 2 2 3 Statische Bewertungsfunktion 2 2 4 Dynamische Bewertungsfunktion 2 3 Steuerung der Suche und Zugauswahl 2 4 Bibliotheken und Datenbanken 2 4 1 Eroffnungsbibliothek 2 4 2 Endspieldatenbank 2 4 3 Schachdatenbank 3 Geschichte 3 1 Konrad Zuse 3 2 Alan Turing 3 3 Claude Shannon 3 4 Dietrich Prinz 3 5 John von Neumann 3 6 Richard Greenblatt 3 7 Peter Jennings 3 8 Ken Thompson 3 9 Feng hsiung Hsu 3 10 Chrilly Donninger und Ulf Lorenz 4 Aktuelle Entwicklungen 5 Wettbewerbe 6 Elo Zahlen 7 Siehe auch 8 Quellen 9 Literatur 10 WeblinksAktuelle Programme BearbeitenDieser Artikel oder Abschnitt bedarf einer grundsatzlichen Uberarbeitung Veraltetes 2005 vermischt mit aktuellen Informationen folglich etwas wirr Dieser Abschnitt sollte wie aus einem Guss die aktuelle Situation erlautern oder aber chronologisch aufgebaut sein dann ist die Uberschrift anzupassen Bitte hilf mit ihn zu verbessern und entferne anschliessend diese Markierung Eines der bekanntesten kostenlos erhaltlichen Schachprogramme ist Crafty ein Open Source Projekt von Robert Hyatt Ein weiteres spielstarkes Schachprogramm ist Fruit das bei der Weltmeisterschaft im Computerschach 2005 den zweiten Platz belegte Bis zur Version 2 1 ist Fruit ebenfalls unter einer Open Source Lizenz erhaltlich genauso wie das ungefahr gleich starke Glaurung 2 1 Das Open Source Programm Stockfish ist aus Glaurung hervorgegangen Es ist fur verschiedene Betriebssysteme mit 32 Bit oder 64 Bit Architektur verfugbar und zahlt zu den spielstarksten Schachprogrammen uberhaupt Wegen seiner offenen Entwicklung wird Stockfish nicht verdachtigt ein Plagiat zu sein Es ist kostenlos erhaltlich Seit 2014 werden die Rankinglisten die mittels Partien zwischen den Programmen ermittelt werden vom kommerziellen Programm Komodo und der oben beschriebenen Open Source Entwicklung Stockfish Kopf an Kopf angefuhrt 1 2 3 4 5 Das kommerzielle Programm Houdini gehort seit Jahren zu den spielstarksten 6 ist allerdings umstritten Der Programmierer des Schachprogramms Rybka behauptet ihm sei Quelltext gestohlen worden und auf dieser Basis seien diverse sehr spielstarke Schachprogramme IPPOLIT Familie entstanden darunter auch Houdini Ein Beleg fur diese Behauptung wurde zumindest offentlich nicht erbracht Dem Programmierer des Schachprogramms Rybka wiederum wird nachgesagt sein Programm Rybka basiere auf Fruit 7 Aufgrund dieser Kontroversen wurde Houdini ebenso wie einige andere Programme der Ippolit Familie von diversen Ranglistenbetreibern zeitweilig nicht gelistet Im weiteren Verlauf wurde das Programm Rybka als Plagiat von Fruit eingestuft wodurch Rybka alle Titel und Erfolge aberkannt wurden Der Programmierer von Rybka wurde auf Lebenszeit fur alle Computerschachturniere gesperrt Houdini hingegen das wiederum auf Rybka basieren soll war dann anerkannt die starkste Schach Engine und wurde zusammen mit dem Frontend Aquarium bei den Schachweltmeisterschaften zur Analyse genutzt Fur Anfanger bietet sich eine skalierbare Engine an die man in der Elo Starke begrenzen kann wie Ufim 8 nbsp Jose Schachdatenbank und Schach FrontendZur komfortablen Bedienung wird noch eine als Schach Frontend bezeichnete Benutzeroberflache benotigt Hierzu kann beispielsweise das Programm XBoard genutzt werden Es lauft unter den Betriebssystemen Microsoft Windows unter dem Namen WinBoard Unix Linux und Amiga und wird zusammen mit GNU Chess ausgeliefert Ein graphisches Java basierendes Schach Frontend mit Datenbankfunktionen ist das ebenfalls unter der GPL veroffentlichte Jose Eine weitere beliebte Benutzeroberflache unter Windows fur mehr als 250 Schachprogramme ist Arena die als Freeware verfugbar ist Es gibt auch weitere Freeware die sich fur den Einsteiger eignet so beispielsweise Arasan 9 Das Schach Frontend von KDE ist Knights 10 Ambitionierte Spieler greifen oft zu kommerziellen Programmen die neben dem reinen Schachspiel auch viele Zusatzmoglichkeiten bieten wie beispielsweise Partieanalyse und Schachtraining Sehr bekannt durften die Programme Shredder und Fritz sein Diese Programme werden unter anderem von der Hamburger Firma ChessBase vertrieben die den europaischen Markt fur professionelle Schachsoftware zunehmend beherrscht Seit 2005 sorgte das Programm Rybka fur Schlagzeilen in Fachzeitschriften und Computerforen Rybka hat ausgepragte Fertigkeiten auf positionellem schachstrategischem Terrain und ist damit der menschlichen Spielweise naher gekommen als die meisten anderen Schachprogramme Rybka fuhrte die wichtigsten Computerschach Ranglisten in denen Houdini nicht gelistet war mit 50 150 Punkten Vorsprung an Schachgrossmeister wie Anand Topalow oder Morosewitsch nutzten Rybka zur Analyse inzwischen wird haufiger Stockfish Critter oder Houdini eingesetzt Inzwischen kann man hochklassiges Schach auch auf Mobiltelefonen PDAs und sonstigen Handhelds spielen Auf Palm OS basierten Geraten steht beispielsweise mit OpenChess ein freies Schachprogramm zur Verfugung das die Auswahl zwischen mehreren Schachengines bietet Mit dem freien Programm ChessV kann man auch Schachvarianten ausprobieren Aufbau BearbeitenDie Hauptbestandteile eines Schachprogramms sind der Zuggenerator die Bewertungsfunktion und ein Programmteil zur Steuerung der Suche und der Auswahl des nachsten Zuges Von der aktuellen Stellung Spielsituation ausgehend fuhrt das Programm eine iterative Tiefensuche durch In jeder Iteration fuhrt es verschiedene Zugfolgen der Reihe nach aus bewertet die erreichten Stellungen Blatter des Suchbaums mit der Bewertungsfunktion und von diesen Blattwerten ausgehend bewertet es nach dem Minimax Prinzip die inneren Knoten des Suchbaums und damit auch die Zuge die jeweils zu einem Knoten fuhren Nach der letzten Iteration spielt es den hochstbewerteten Zug im Wurzelknoten der die aktuelle Stellung reprasentiert Ein wichtiges Merkmal eines Schachprogramms ist die Art der internen Brettdarstellung derer sich alle anderen Bestandteile des Programms bedienen Zuggenerator und interne Brettdarstellung Bearbeiten a b c d e f g h 8 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 87 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 76 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 65 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 54 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 43 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 32 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 21 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1 a b c d e f g h Das in allen folgenden Darstellungen verwendete BeispielSpielstellung nach 1 e4 e5 2 Sc3 Der Zuggenerator erzeugt eine Liste aller in einer bestimmten Stellung legalen regelkonformen Zuge mogliche Bewegungen der Spielfiguren In der Anfangsstellung sind 20 Zuge moglich 16 Bauernzuge 4 Springerzuge im weiteren Spielverlauf kann man im Mittel mit etwa 40 legalen Zugen in jeder Stellung rechnen im Endspiel weniger Der Zuggenerator muss auch komplizierte Zuge wie Rochaden Bauernumwandlungen und En passant Schlage berucksichtigen In der Regel lasst man den Zuggenerator alle pseudolegalen Zuge berechnen d h die Konigsregel wird nicht beachtet z B konnte ein solcher Zug den Konig auf ein bedrohtes Feld ziehen Der Zuggenerator wird dadurch erheblich einfacher und schneller Die illegalen Zuge werden spater durch den Programmteil zur Steuerung der Suche aussortiert Ein Zug war illegal wenn die darauf folgende Zugliste einen Zug enthalt der den Konig schlagt Zur Kodierung der Figuren werden hier in den Beispielen folgende Ganzzahlen verwendet Figur KodierungWeiss SchwarzLeeres Feld 0 0Bauer 1 2Turm 11 21Springer 12 22Laufer 13 23Dame 14 24Konig 10 20Ungultiges Feld 1 1Die Implementierung des Zuggenerators hangt eng mit der internen Brettdarstellung zusammen Hier gibt es vier wichtige Vertreter 12 10 Darstellung Bearbeiten Spielstellung nach 1 e4 e5 2 Sc3 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 1 10 1 1 1 1 1 15 1 1 1 1 19 1 20 21 22 23 24 20 23 22 27 21 1 1 2 2 2 2 0 35 2 2 2 1 39 1 0 0 0 0 0 0 46 0 0 48 1 1 0 0 0 0 2 0 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 0 12 0 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 11 0 13 14 10 13 12 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 115 1 116 1 117 1 118 1 119 Das Spielbrett wird auf ein eindimensionales und 120 Elemente grosses Array abgebildet Der Index Zahlen in Klammern lauft in der Regel zeilenweise hier von 0 links oben bis 119 rechts unten Zusatzlich zu den 64 gultigen Feldern enthalt das Array Felder die eine Figur beim Verlassen des Brettes erreichen wurde und die quasi einen Rand um das regulare Brett bilden Auf diesen Randfeldern wird ein bestimmter Wert hier 1 gespeichert und wenn eine Figur auf ein Feld mit diesem Eintrag ziehen wurde heisst das dass sie damit das Brett verlassen wurde Dies kann leicht abgefragt werden da man ohnehin nachsehen muss ob das Zielfeld von einer eigenen Figur besetzt ist wodurch der Zug illegal ware Diese Technik macht den Zuggenerator einfach und schnell Der linke und rechte Rand an jeder Seite muss nur ein Feld gross sein denn ein Springer der seitlich vom Brett zieht landet immer entweder auf der linken oder der rechten Randreihe Durch Addition der folgenden Konstanten zu einem Feldindex lassen sich die moglichen Zielfelder fur eine Figur auf diesem Feld bestimmen Bewegung KonstantenHorizontale und vertikale Bewegung Turm Dame Konig 10 1 1 10Diagonale Bewegung Laufer Dame Konig 11 9 9 11Bewegung wie ein Springer 21 19 12 8 8 12 19 21Betrachten wir den schwarzen Springer auf Feld 27 Sg8 Die Addition dieser Konstanten zu 27 ergibt die potentiellen Zielfelder 6 8 15 19 35 39 46 und 48 Ist der Wert im Zielfeld 1 dann ist der Zug nicht moglich da der Springer uber den Rand ziehen wurde Ist der Wert 1 oder 10 bis 14 ist eine weisse Figur auf dem Feld die geschlagen werden kann und ist er gleich Null ist ein Zug auf das leere Feld moglich Der Springer kann hier also drei verschiedene Zuge auf die Zielfelder 35 46 und 48 ausfuhren die der Zugliste hinzugefugt werden Falls der Zuggenerator nur legale Zuge und nicht alle pseudolegalen erzeugen soll muss man noch beachten ob der Springer gefesselt ist oder ein Schachgebot besteht das man abwehren muss Ahnlich geht es mit den anderen Figurenarten Die langschrittigen Dame Laufer Turm konnen ein besetztes Feld nicht uberspringen Nachdem ein solches erreicht wurde ist in dieser Richtung kein weiterer Zug moglich und man geht zur nachsten Zugrichtung Wahrend der Zuggenerator recht einfach aufgebaut und schnell ist sind die statischen Bewertungsfunktionen langsamer 8 8 Darstellung Bearbeiten Spielstellung nach 1 e4 e5 2 Sc3 21 22 23 24 20 23 22 212 2 2 2 0 2 2 20 0 0 0 0 0 0 00 0 0 0 2 0 0 00 0 0 0 1 0 0 00 0 12 0 0 0 0 01 1 1 1 0 1 1 111 0 13 14 10 13 12 11 Die 8 8 Darstellung ist der menschlichen Sicht am nachsten Das Programm GNU Chess verwendete sie bis Version 4 Das Brett wird wie auch bei 12 10 als eindimensionales Array modelliert hier mit Indexbereich 0 bis 63 alternativ 1 bis 64 Ein zweidimensionales Array scheint naherliegend ist aber langsamer denn ein Feld muss hier mit zwei Zahlen Reihe und Linie bezeichnet werden zu beiden muss bei der Zugerzeugung eine Konstante addiert werden und beim Zugriff auf ein Feld ist die Adressberechnung mit zwei Indizes komplizierter Der Zuggenerator ist normalerweise komplexer und langsamer als bei der 12 10 Darstellung da die Spezialfalle am Rand gesondert behandelt werden mussen Die statische Bewertungsfunktion arbeitet allerdings effizienter da Reihe und Linie auf denen ein Feld liegt mit schnellen Bitoperationen bestimmt werden konnen UND Verknupfen des Index mit 7 ergibt die Linie und Rechtsschieben um 3 Bit die Reihe bei zeilenweiser Felderanordnung und Indexbereich 0 bis 63 Beim 12 10 Brett muss man hingegen durch 10 dividieren Die Bewertungsfunktion benotigt diese Information oft z B zur Doppelbauern oder Isolani Erkennung Auch mit dem 8 8 Brett ist eine schnelle und einfache Zugerzeugung mittels Tabellenzugriff moglich was aber den Speicherverbrauch erheblich erhoht GNU Chess verwendet fur jede Figurenart ein zweidimensionales Array nextpos mit 64 mal 64 Elementen dessen Eintrage vorab berechnet werden Indiziert man es mit dem Ausgangsfeld f einer Figur und einem ihrer Zielfelder liest man das nachste Zielfeld fur die Figur daraus ab nextpos f f liefert das erste Zielfeld Fur die langschrittigen Figuren gibt es zusatzlich das Array nextdir aus dem bei besetztem Zielfeld das nachste Zielfeld gelesen wird erstes Feld in einer neuen Zugrichtung Gibt es kein Zielfeld mehr liefern beide wieder den Wert f Eine andere Moglichkeit ist ein dreidimensionales Array das fur alle Felder und Figurentypen alle Zielfelder enthalt die diese Figur von diesem Feld aus erreichen kann Der dritte Index lauft uber diese Zielfelder Der Speicherverbrauch ist hier niedriger besonders wenn man ein zweidimensionales Array von Zeigern verwendet die jeweils auf ein Halden Array passender Grosse zeigen entsprechend der unterschiedlichen Anzahl der Zielfelder Die Eintrage sind zweiteilig Der erste Teil ist der Zielfeldindex und der zweite ist die Anzahl der im Array darauf folgenden Felder die bei besetztem Zielfeld zu ubergehen sind oder direkt der nachste Index in das Array 0x88 Darstellung Bearbeiten Diese ist eine Weiterentwicklung der 8 8 Darstellung Bei zeilenweiser Darstellung mit 16 Feldern je Zeile bildet der linke Bereich von 8 mal 8 Feldern das Schachbrett der rechte Bereich von 8 mal 8 Feldern wird nicht verwendet Wenn eine Figur uber den Rand ziehen wurde erkennt man das durch bitweise UND Verknupfung des Zielfeldindex mit der Hexadezimalzahl 0x88 136 Wenn das Ergebnis Null ist bezeichnet der Feldindex ein gultiges Feld anderenfalls wurde die Figur das Brett verlassen Reihe und Linie eines Feldes kann man ahnlich wie beim 8 8 Brett durch Rechtsschieben um 4 Bit bzw UND Verknupfen mit 7 berechnen Bei dieser Darstellung kann man ausserdem anhand der Indexdifferenz zweier Felder ermitteln ob und mit welcher Figur ein Zug von einem zum anderen Feld moglich ist Zum Beispiel ist ein Turmzug genau dann moglich wenn die Differenz im Bereich 7 bis 7 oder ein Vielfaches von 16 ist Mit der 8 8 oder 10 12 Darstellung geht das nicht denn das Kriterium wird auch von Feldpaaren erfullt die keinen entsprechenden Zug zulassen Die Felder h4 und a5 zum Beispiel haben dort eine Indexdifferenz kleiner 8 obwohl kein Turmzug moglich ist Bitboards Bearbeiten Hauptartikel Bitboard Manche modernen Schachprogramme etwa Rybka Crafty oder GNU Chess 5 verwenden Bitboards Diese sind besonders effizient auf 64 Bit Rechnerarchitekturen implementierbar wo die Anzahl der Bits eines Registers Worts mit der Anzahl der Felder ubereinstimmt Jede Bitposition in einem Wort ist einem Feld des Bretts zugeordnet und durch das Bit an dieser Position wird eine Angabe uber das entsprechende Feld gemacht Im folgenden Beispiel wird die Stellung nach den Zugen 1 e4 e5 2 Sc3 mit acht Registern von 64 Bit dargestellt Das Register B enthalt uberall ein 1 Bit wo ein Bauer gleich welcher Farbe auf dem entsprechenden Feld steht Auch fur die ubrigen Figurenarten gibt es je ein Register WEI und SCH geben an wo sich eine weisse bzw eine schwarze Figur befindet Zur besseren Ubersichtlichkeit sind Bits mit dem Wert 0 durch wiedergegeben Reihe 8 7 6 5 4 3 2 1 Linie abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh Bitposition 63 56 48 40 32 24 16 8 0 Registername Bauern B 1111 111 1 1 1111 111 Turme T 1 1 1 1 Springer S 1 1 1 1 Laufer L 1 1 1 1 Damen D 1 1 Konige K 1 1 Weiss WEI 1 1 1111 111 1 111111 Schwarz SCH 11111111 1111 111 1 Mit schnellen bitweisen Operationen kann man nun fur alle Felder parallel Informationen uber die Stellung berechnen Zum Beispiel lassen sich durch die UND Verknupfung T amp WEI alle Positionen der weissen Turme bestimmen und B amp SCH gt gt 8 amp WEI SCH liefert ein Bitmuster mit den Feldern auf die ein schwarzer Bauer mit einem Einzelschritt ziehen kann Dabei bezeichnet gt gt die Bitverschiebung nach rechts zum niederwertigen Ende die Negation und die ODER Verknupfung Bewertungsfunktionen Bearbeiten Die Bewertungsfunktion liefert die heuristische Bewertung einer Stellung ohne die Nachfolgezuge zu bestimmen Sie setzt sich aus einer materiellen und einer positionellen Komponente zusammen Die positionelle Komponente erganzt die materielle da die Starke der Spielfiguren auch von ihren Positionen untereinander abhangen Vereinfachte Bewertungsfunktionen konnen auch von menschlichen Spielern ausgefuhrt werden was allerdings nur eine historische Bedeutung hat Computerprogramme zeigen sehr oft die Bewertung einer Spielsituation numerisch in sogenannten Bauerneinheiten an wobei positive Werte Vorteile und negative Werte Nachteile fur einen bestimmten Spieler bedeuten Material Bearbeiten Fur die materielle Wertung werden fur die auf dem Brett befindlichen Spielfiguren Werte addiert Der ungefahre Wert der Figurenarten in 1 100 Bauerneinheiten ist in der folgenden Tabelle angegeben Bauer Springer Laufer Turm Dame100 310 320 460 900Dabei werden die weissen Figuren bzw die der am Zug befindlichen Partei positiv gezahlt und die schwarzen bzw die der nachziehenden Partei negativ Der Konig braucht nicht mitgezahlt zu werden da beide Parteien wahrend des gesamten Spiels jeweils einen Konig haben Position Bearbeiten Die positionelle Wertung zu bestimmen ist eine Aufgabe von grosserer Komplexitat in der sich die verschiedenen Schachprogramme deutlich voneinander unterscheiden Bei kommerziellen Programmen bleibt sie ein wohlgehutetes Geheimnis Bei der positionellen Wertung wird versucht Stellungen aufgrund von schachrelevanten Parametern zu bewerten Schachrelevante Parameter lassen sich grob klassifizieren in Konigssicherheit Bauernstruktur beherrschte und bedrohte Felder sowie Figurenentwicklung So wird zum Beispiel eine Stellung bei der die Turme noch eingeengt zwischen Springern und Bauern stehen schlechter bewertet als eine bei der die Turme schon auf offenen Linien stehen Innerhalb dieser Kategorien gibt es quasi beliebig viele Parameter fur Bauernstrukturen zum Beispiel Freibauer Doppelbauer Hebel Widder Isolani Bauernketten fur Konigssicherheit zum Beispiel Kann der Konig leicht links oder rechts rochieren Kann er im Zentrum bleiben Sind Bauern vor dem Konig Es bietet sich an diese Parameter zunachst wertneutral aus der gegebenen Stellung zu extrahieren Schachprogrammierer stehen vor der Entscheidung wie viel Rechenzeit sie fur die positionelle Komponente einer ausgefeilten Bewertungsfunktion aufwenden sollen und welche Parameter uberhaupt einfliessen sollen Je tiefer die Schachprogramme den Suchbaum analysieren konnen desto eher wird namlich die Umwandlung positioneller Vorteile in materielle Vorteile sichtbar Statische Bewertungsfunktion Bearbeiten Kann ein Schachprogramm die Werte dieser Parameter pro Stellung effizient bestimmen mussen diese untereinander gewichtet werden Die Gewichtung der positionellen Komponente kann teilweise automatisch uber das Analysieren von Schachdatenbanken oder durch Spiele gegen andere Schachprogramme erfolgen Geschieht dies im Vorfeld der Programmentwicklung spricht man von einer statischen Bewertungsfunktion Einfach aufgebaute Bewertungsfunktionen verwenden fur die positionelle Komponente Positionsgewichte fur die sechs Spielfigurentypen die aber fur Eroffnung Mittel und Endspiel jeweils unterschiedlich ausfallen Die Bewertungsfunktion kann ausser in Grenzfallen wie Endspielen oder Matt oder Pattsituationen keine objektiv richtigen Ergebnisse liefern Indem die Bewertungsfunktion die materielle und positionelle Komponente zu einer einzigen Bewertungszahl zusammenfasst ermoglicht sie aber die Sortierung und Auswahl des besten beziehungsweise schlechtesten Zuges Dynamische Bewertungsfunktion Bearbeiten In der Regel wird die Bewertungsfunktion vom Programmierer implementiert und wahrend des Spieles nicht mehr verandert Eine erweiterte Moglichkeit besteht darin wahrend des Spieles vergleichbare Stellungen aus einer Schachdatenbank zu ermitteln und so die Gewichtung der positionellen Parameter zu optimieren Dies entspricht eher dem menschlichen Ansatz Ein erfahrener Spieler berucksichtigt Kriterien wie Konigssicherheit oder Freibauern auch unter Einbeziehung ihm bekannter Partien und deren Ergebnissen Steuerung der Suche und Zugauswahl Bearbeiten Grundsatzlich basiert die Steuerung der Suche auf dem Spielbaum Er enthalt beginnend bei der aktuellen Stellung Wurzelknoten alle Zuge des Anziehenden darauf wieder alle moglichen Antwortzuge des Nachziehenden und so weiter jeweils bis zum Erreichen einer Endstellung Matt Patt technisches Remis oder Stellungswiederholung Der Spielbaum ist meist viel zu gross um ihn vollstandig durchzurechnen deshalb beschrankt sich das Programm auf einen Teil davon Suchbaum Im einfachsten Fall arbeitet das Programm nach der A Strategie d h es berechnet alle moglichen Zugfolgen bis zu einer bestimmten Tiefe Zahl der aufeinanderfolgenden Zuge die durch die Rechenleistung und die verfugbare Zeit begrenzt wird Jede dabei entstehende Stellung wird bewertet Ist es keine Endstellung wie etwa ein Matt wird die heuristische Bewertungsfunktion eingesetzt Mit dem Minimax Algorithmus werden die Zuge in der Wurzelstellung bewertet und der hochstbewertete gespielt Da die Anzahl der zu untersuchenden Stellungen exponentiell mit der Tiefe wachst andererseits eine hohere Tiefe eine entsprechende Spielstarkeverbesserung bringt hat man in den rund 50 Jahren der Programmentwicklung ein ganzes Arsenal an Beschleunigungsmassnahmen erfunden die man in zwei Gruppen einteilen kann Die einen versuchen den Suchbaum durch allgemeine Algorithmen der Informatik zu verkleinern so zum Beispiel Alpha Beta Suche Negamax Verfahren Hashtabelle zur Erkennung von Zugumstellungen Null Zug SucheDie Alpha Beta Suche schneidet Teile des Suchbaums ab die fur die Ermittlung des hochstbewerteten Zuges im Wurzelknoten nicht betrachtet werden mussen Diese Technik spart sehr viel Bei guter Implementierung wird die erreichbare Tiefe annahernd verdoppelt Die begrenzte Rechentiefe lasst das Programm oft eine taktische Kombination ubersehen Um das zu mildern vertieft man einzelne interessante Zugfolgen zum Beispiel nach Schachgeboten oder Zugen die die gegnerische Konigsstellung schwachen um Mattkombinationen leichter zu entdecken Die sogenannte Recapture Heuristik vertieft Zugfolgen die einen Abtausch enthalten um die Folgen des Tausches besser abschatzen zu konnen Die Methode der singular extensions deutsch vereinzelte Erweiterungen vertieft die Suche fur erzwungene forcierte Zugfolgen also in Fallen bei denen es fur eine oder beide Seiten jeweils nur eine einzige vernunftige Antwort gibt Weitere Techniken zur Beschleunigung sind die Verwendung vereinfachter Bewertungsfunktionen nach Zugfolgen die als wenig sinnvoll eingeschatzt werden sowie die inkrementelle Bewertung die den Wert einer Stellung nicht immer neu berechnet sondern bei Ausfuhrung eines Zuges aktualisiert Manche Programme erledigen einen Grossteil der Bewertungsarbeit durch Analysieren der Wurzelstellung und speichern die Ergebnisse in Datenstrukturen die dann die Blattbewertung erheblich vereinfachen und beschleunigen z B Figuren Felder Tabellen Manche Programme berechnen nicht oder nicht immer alle Zuge die in einer Stellung moglich sind B Strategie Die Werte der Zuge werden heuristisch abgeschatzt wonach nur die hoch bewerteten in den Suchbaum aufgenommen werden Dadurch ahmt man das Verhalten eines menschlichen Spielers nach Der Suchbaum wird erheblich kleiner aber man riskiert dass die Heuristik zuweilen einen guten Zug ubersieht Diese Verfahren sind sehr viel schwieriger zu implementieren als die A Strategie Auch lassen sie sich nicht ohne weiteres auf andere Spiele wie Go ubertragen denn die Kriterien der Zugauswahl sind dann vollig andere Man darf die Berechnung nicht abbrechen und die Blattbewertung durchfuhren wenn die Partie gerade mitten in einem Abtausch ist dies wurde eine verzerrte Materialbilanz liefern Hat eine Partei gerade eine gedeckte Figur geschlagen und wird hier bewertet erhalt man ein unechtes Materialubergewicht fur diese Partei Eine oft angewandte Abhilfe ist die sogenannte Ruhesuche quiesence search In einer Blattstellung berechnet man noch alle Schlagzuge und darauf wieder nur die schlagenden Antwortzuge usw wobei meist noch die weniger aussichtsreichen Schlagzuge abgeschnitten werden und ausserdem wird die maximale Lange der Schlagzugfolgen begrenzt damit das ganze nicht zu viel Zeit braucht In jeder so erreichten Stellung erfolgt die Blattbewertung durch die heuristische Bewertungsfunktion und der Wert der Stellung ist das Maximum aus dem Blattwert und den Werten der Schlagzuge Der Blattwert steht fur die Werte der nicht schlagenden Zuge denn es kann sein das jeder Schlagzug ein Fehler ware und es am besten ist nicht zu schlagen Bibliotheken und Datenbanken Bearbeiten Eroffnungsbibliothek Bearbeiten Hauptartikel Eroffnungstabelle Schach wird im Wettkampf auf Zeit gespielt das heisst fur eine Anzahl von Zugen steht nur eine definierte Zeit zur Verfugung Viele Schachprogramme sind daher mit einer Eroffnungsbibliothek ausgestattet in der sehr viele gute Zugreihenfolgen in der Eroffnungsphase von Schachspielen abgespeichert sind In der Anfangsphase des Schachspiels sieht das Programm in dieser Bibliothek nach welcher Zug in einer bestimmten Brettstellung der geeignetste ist Dieses Nachsehen geht schneller als den Zug auszurechnen Die so gesparte Rechenzeit steht dem Programm dann in spateren Phasen des Spiels zur Verfugung Das Verfahren Brettstellungen einschliesslich der guten Zuge abzuspeichern ist nur fur Eroffnung und Endspiel sinnvoll da hier die Anzahl der Brettstellungen noch uberschaubar ist Eroffnungsbibliotheken kommerziell erhaltlicher Programme weisen einen immer grosser werdenden Umfang auf Sie werden meist aus Meisterpartien generiert Dies birgt die Gefahr dass auch unbemerkte Fehler ubernommen werden die das Programm aus eigener Berechnung nicht spielen wurde Einen grossen Anteil an der Spielstarke hat die Abstimmung der Eroffnungsbibliothek auf die spater in der Partie genutzte Bewertungsfunktion Endspieldatenbank Bearbeiten Hauptartikel Endspieldatenbank Im Endspiel wenn nur noch wenige Figuren auf dem Brett sind kann man den optimalen Zug im Vorhinein durch vollstandige Analyse Brute Force Methode berechnen Es gibt nicht wenige Endspielstellungen in denen das menschliche Denken aber auch die Computeranalyse in Echtzeit vollig uberfordert waren Viele Schachprogramme verwenden deshalb Endspieldatenbanken die alle moglichen Stellungen mit 3 4 5 6 oder sogar 7 Steinen sowie deren Ausgang bei optimalem Spiel enthalten Das Erstellen von Endspiel Datenbanken geht auf Ken Thompson zuruck Die ersten Sechssteiner wurden 1991 von Lewis Stiller vollstandig berechnet seit 2012 sind alle Siebensteiner erfasst 11 12 Schachdatenbank Bearbeiten Hauptartikel Schachdatenbank Schachdatenbanken enthalten gespielte Partien Sie helfen zum Beispiel beim Studium von Eroffnungen und bei der Vorbereitung auf die nachsten Gegner Fur Schachprogramme lassen sich aus dem Datenbestand Eroffnungsbibliotheken generieren Auch ist es moglich wahrend der Partie vergleichbare Stellungen aus einer Schachdatenbank zu ermitteln und unter Berucksichtigung des dort verzeichneten Partieverlaufs positionelle Bewertungsparameter siehe oben zu optimieren dynamische Bewertungsfunktion Geschichte BearbeitenDie Geschichte des Schachprogramms hangt sehr eng mit der Geschichte des Schachcomputers zusammen und lasst sich zumeist nicht getrennt behandeln Hier werden lediglich Entwicklungen der grundlegenden Algorithmen beschrieben Zu den in den letzten Jahren medienwirksam ausgetragenen Wettbewerben mit Weltklassespielern siehe Schachcomputer im Spiel gegen Menschen Konrad Zuse Bearbeiten Hauptartikel Konrad Zuse In den Jahren 1942 bis 1945 schrieb Konrad Zuse das weltweit erste Schachprogramm in seiner neu entwickelten Programmiersprache dem Plankalkul Erstmals implementiert wurde die Sprache aber erst in den 1970ern 13 Alan Turing Bearbeiten Hauptartikel Alan Turing Der britische Mathematiker und Codeknacker Alan Turing entwickelte ein Verfahren das jedem moglichen Zug einen Wert zuweist So sollte immer der jeweils beste Zug errechnet werden Turings Schachprogramm basierte auf folgenden Grundsatzen Jede Figur erhielt einen bestimmten Wert Bauer 1 Springer 3 Laufer 3 5 Turm 5 Dame 10 und Konig 1000 damit dieser niemals geopfert werden konnte Alle weissen Zuge und alle schwarzen Gegenzuge wurden untersucht Wenn Weiss einen Schlagzug ausfuhren konnte dann wurden alle Schlagzuge des Gegners alle darauffolgenden weissen Schlagzuge usw untersucht bis die Stellung tot war das heisst bis es keine weiteren Schlagzuge und kein Matt gab In den entstehenden Stellungen wurde eine Figurenzahlung durchgefuhrt und der Zug gewahlt der das meiste Material gewann bzw am wenigsten verlor Da jedoch besonders in der Eroffnungsphase die meisten zur Auswahl stehenden Zuge das gleiche Ergebnis nahe Null lieferten fuhrte Turing auch einige positionelle Bewertungskriterien ein wie Mobilitat Zugmoglichkeiten Schlagmoglichkeit Rochade oder Mattdrohung a b c d e f g h 8 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 87 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 76 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 65 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 54 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 43 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 32 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 21 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1 a b c d e f g h Stellung nach dem 29 Zug Da es zu der Zeit noch keine geeigneten programmierbaren Rechenmaschinen gab musste Turing jeden Zug von Hand auf Papier selbst ausrechnen was einen hohen Zeitaufwand bedeutete Pro Zug musste er ca 30 Minuten aufwenden 14 Immerhin wurde das Funktionsprinzip augenfallig nach dem im Grunde auch alle heutigen Schachprogramme noch arbeiten Die erste Partie seiner Papiermaschine fand im Jahr 1952 statt und soll hier beispielhaft aufgefuhrt werden Turings Papiermaschine Alick Glennie Manchester 1952 1 e4 e5 2 Sc3 Sf6 3 d4 Lb4 4 Sf3 d6 5 Ld2 Sc6 6 d5 Sd4 7 h4 Lg4 8 a4 Sxf3 9 gxf3 Lh5 10 Lb5 c6 11 dxc6 0 0 12 cxb7 Tb8 13 La6 Da5 14 De2 Sd7 15 Tg1 Sc5 16 Tg5 Lg6 17 Lb5 Sxb7 18 0 0 0 Sc5 19 Lc6 Tfc8 20 Ld5 Lxc3 21 Lxc3 Dxa4 22 Kd2 22 h5 hatte den Laufer erobert 22 Se6 23 Tg4 Sd4 23 Txb2 24 Lxb2 Txc2 24 Dd3 Sb5 25 Lb3 Da6 26 Lc4 Lh5 27 Tg3 Da4 28 Lxb5 Dxb5 29 Dxd6 Td8 0 1 15 Zur Papiermaschine gibt es auch Implementierungen fur heutige Computer 16 Claude Shannon Bearbeiten Hauptartikel Claude Shannon In den Bell Laboratories hielt Claude Shannon am 9 Marz 1949 einen fur die Entwicklung von Schachprogrammen entscheidenden Vortrag Er beschrieb dort die interne Brettdarstellung die Baumsuche die Bewertungsfunktion sowie die Zugsuche mit Hilfe des Minimax Algorithmus Er gab auch schon zwei verschiedene Strategien zur Bestimmung des besten Zuges an A Strategie und B Strategie Dietrich Prinz Bearbeiten Dietrich Gunter Prinz von der Universitat Manchester hat im November 1951 fur den Ferranti Mark I Computer GB ein Programm erstellt das eine zweizugige Mattaufgabe in 15 Minuten loste Das Programm gilt als erstes Loseprogramm der Schachgeschichte 17 John von Neumann Bearbeiten Hauptartikel John von Neumann nbsp a b c d e f nbsp 6 nbsp nbsp nbsp nbsp nbsp nbsp 65 nbsp nbsp nbsp nbsp nbsp nbsp 54 nbsp nbsp nbsp nbsp nbsp nbsp 43 nbsp nbsp nbsp nbsp nbsp nbsp 32 nbsp nbsp nbsp nbsp nbsp nbsp 21 nbsp nbsp nbsp nbsp nbsp nbsp 1a b c d e fGrundstellung John von Neumann klassifizierte das Schachspiel in seiner Spieltheorie als Zwei Personen Nullsummenspiel mit vollstandiger Information Diese Klasse von Problemen dazu gehort auch Tic Tac Toe kann mit dem Minimax Algorithmus gelost werden Schach ist jedoch zu komplex um den Suchbaum vollstandig abarbeiten zu konnen Schachprogramme sind deshalb auf Naherungsverfahren angewiesen Das Schachprogramm von John von Neumann wurde Mitte der 1950er Jahre fertiggestellt und lief auf dem 1950 aufgestellten Rohrenrechner MANIAC I Zur Vereinfachung wurde nur auf einem 6 6 Brett gespielt Das Programm spielte insgesamt drei Partien die erste gegen sich selbst eine weitere verlor es gegen einen starken Schachspieler obwohl dieser ihm eine Dame vorgab und die dritte gewann es gegen eine junge Frau die erst seit einer Woche Schach spielte und extra fur dieses Spiel trainiert hatte nbsp a b c d e f nbsp 6 nbsp nbsp nbsp nbsp nbsp nbsp 65 nbsp nbsp nbsp nbsp nbsp nbsp 54 nbsp nbsp nbsp nbsp nbsp nbsp 43 nbsp nbsp nbsp nbsp nbsp nbsp 32 nbsp nbsp nbsp nbsp nbsp nbsp 21 nbsp nbsp nbsp nbsp nbsp nbsp 1a b c d e fStellung nach dem 21 Zug MANIAC I Mensch Los Alamos 1956 6 6 Brett ohne Laufer kein Doppelschritt oder Rochade 1 d3 b4 2 Sf3 d4 3 b3 e4 4 Se1 a4 5 bxa4 5 Sd2 nebst 6 Sc4 Sxc4 7 bxc4 mit gutem Spiel 5 Sxa4 6 Kd2 Sc3 7 Sxc3 bxc3 8 Kd1 f4 9 a3 Tb6 10 a4 Ta6 11 a5 Kd5 12 Da3 Db5 13 Da2 Ke5 14 Tb1 Txa5 15 Txb5 Txa2 16 Tb1 Um 16 Ta1 matt zu verhindern 16 Ta5 17 f3 Ta4 18 fxe4 c4 19 Sf3 Kd6 20 e5 Kd5 21 exf6D 21 Sc5 22 Dxd4 Kc6 23 Se5 matt 1 0 15 Zum ersten Mal hat ein Mensch gegen ein Schachprogramm verloren Diese vereinfachte Schachvariante wird auch Los Alamos Chess genannt 1957 implementierte der IBM Angestellte Alex Bernstein auf einer IBM 704 ein Schachprogramm das nach den Standardregeln spielte Es selektierte in jeder Stellung die sieben plausibelsten Zuge und fuhrte eine Suche von 4 Halbzugen durch was ungefahr 8 Minuten Rechenzeit erforderte Bernstein erhielt bei der Entwicklung Unterstutzung durch den amerikanischen Grossmeister Arthur Bisguier Das Programm verlor chancenlos gegen den Schachmeister Edward Lasker der dem Computer jedoch ein passables Amateurniveau bescheinigte 1958 wurde die Alpha Beta Suche von Allen Newell John Clifford Shaw und Herbert A Simon entdeckt und brachte einen gewaltigen Leistungsschub Richard Greenblatt Bearbeiten Hauptartikel Richard Greenblatt a b c d e f g h 8 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 87 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 76 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 65 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 54 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 43 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 32 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 21 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 1 a b c d e f g h Mattstellung nach dem 37 Zug Das erste Programm das an menschlichen Turnieren teilnahm war Mac Hack das von 1965 bis 1967 von Richard Greenblatt am MIT entwickelt wurde Hubert Dreyfus MacHack MIT 1967 1 e4 e5 2 Sf3 Sc6 3 Lc4 Sf6 4 Sc3 Lc5 5 d3 0 0 6 Sg5 Sa5 7 Ld5 c6 8 Lb3 Sxb3 9 cxb3 h6 10 Sh3 d5 11 exd5 Lg4 12 f3 Lxh3 13 gxh3 Sxd5 14 Sxd5 Dxd5 15 Ld2 Dxd3 16 b4 Le7 17 Tg1 e4 18 fxe4 Lh4 19 Tg3 Lxg3 20 hxg3 Dxg3 21 Ke2 Dxh3 22 Dg1 h5 23 Lc3 g6 24 Df2 h4 25 Df6 Dg4 26 Kd2 Tad8 27 Kc2 Dxe4 28 Kb3 De6 29 Dxe6 fxe6 30 Th1 Tf4 31 Le1 Tf3 32 Ka4 h3 33 b5 Td4 34 b4 cxb5 35 Kxb5 Ta3 36 Kc5 Td5 37 Kc4 b5 0 1 15 Von 1967 bis 1970 kam es zu einem Boom in der Schachprogrammierung der in die erste Computerschach Meisterschaft der Geschichte mundete die von der Association for Computing Machinery ACM ausgetragen wurde Sieger war Chess 3 0 Peter Jennings Bearbeiten Peter Jennings entwickelte 1976 Microchess fur den KIM 1 Heimcomputer Das Programm wurde bis 1979 uber 50 000 mal verkauft und war damit das erste kommerziell erfolgreiche Mikrocomputerprogramm Aufgrund des nur 1152 Bytes grossen RAM Speichers waren Rochade En passant und Bauernumwandlung nicht implementiert Ken Thompson Bearbeiten Hauptartikel Ken Thompson Ken Thompson entwickelte 1979 die beruhmte Schachmaschine Belle die mit einer Eroffnungsbibliothek und Hashtables arbeitete Feng hsiung Hsu Bearbeiten Hauptartikel Feng hsiung Hsu Das erste Computerprogramm das einen amtierenden Schachweltmeister in einer regularen Turnierpartie schlug war Deep Blue Entwickelt von IBM aufgrund einer Anregung und unter der Leitung des jungen Informatikers Feng hsiung Hsu besiegte dieses Programm am 10 Februar 1996 auf einer angepassten und auf Schach optimierten Computerhardware die ebenfalls von IBM stammte den damaligen Weltmeister Garri Kasparow in einer dadurch beruhmt gewordenen Partie Den Wettkampf konnte Garri Kasparow noch mit 4 2 fur sich entscheiden Eine verbesserte Version von Deep Blue nahm allerdings am 11 Mai 1997 auch diese Hurde und errang in einem zweiten Wettkampf mit der sechsten Turnierpartie den Gesamtsieg uber Kasparow mit 3 5 2 5 Deep Blue wurde nach dem spektakularen Sieg demontiert und eingemottet Die Entstehung des Programms wurde spater vom Erfinder in einem Buch beschrieben 18 Chrilly Donninger und Ulf Lorenz Bearbeiten Hauptartikel Christian Donninger Der Erste der sich nach Deep Blue wieder auf den Bau spezialisierter Schachhardwarekomponenten als Basis fur ein Schachprogramm verlegte war der osterreichische Schachprogrammierer Chrilly Donninger der zuvor jahrelang mit seinem PC Programm an Computerschachturnieren teilgenommen hatte Er entwarf ab 2002 einen Schachcomputer mit von ihm selbst modifizierter Hardware den er zunachst Brutus nannte Geldgeber ChessBase zog seine Unterstutzung dafur aber nach dem schlechten Abschneiden bei einem Turnier 2003 in Graz zuruck Christian Donninger und Ulf Lorenz verfolgten das Projekt zunachst auf eigene Faust unter dem neuen Namen Hydra weiter 2004 fanden Donninger und Lorenz einen neuen Sponsor aus den arabischen Emiraten PAL Computer Systems Noch im selben Jahr schlug Hydra den damaligen Computerweltmeister Shredder Im Juni 2005 fand gegen den britischen Grossmeister Michael Adams damals Siebter der Weltrangliste ein Wettkampf unter Turnierbedingungen statt den Hydra uberlegen mit 5 5 0 5 gewann 19 Dies entspricht einer Turnierperformance von uber 3100 Elo Punkten so viel wie bisher kein Mensch erreicht hat In dieser Version mit 64 Prozessoren galt Hydra seinerzeit als starkstes schachspielendes DV System der Welt Aktuelle Entwicklungen Bearbeiten nbsp Teile dieses Artikels scheinen seit 2015 nicht mehr aktuell zu sein Bitte hilf uns dabei die fehlenden Informationen zu recherchieren und einzufugen Wikipedia WikiProjekt Ereignisse Vergangenheit fehlend Die Verteilung des Rechenaufwandes auf viele einzelne Teilprozesse die parallel ablaufen konnen und so Multi Prozessor Systeme sinnvoll nutzen ist aufgrund der Baumsuche nicht trivial und ein aktuelles Forschungsgebiet der Schachprogrammierung siehe Hydra Auf dem Sektor herkommlicher PC Schachprogramme ist die parallele Nutzung mehrerer Prozessorkerne seit einigen Jahren moglich und erfolgt durch die sog Deep Versionen der jeweiligen Engines Diese Entwicklung schloss an die zunehmende Verbreitung der entsprechenden PC Hardware mit Mehrkernprozessoren an Dasselbe gilt mittlerweile fur Betriebssysteme mit 64 Bit Architektur und spezielle Schachprogrammversionen dafur die diese vorteilhaft unterstutzen oder darauf schneller ablaufen als die 32 Bit Versionen Ein moglicherweise neuer Trend besteht in der Nutzung besonders vieler CPUs jedoch im Unterschied zu Hydra auf Basis herkommlicher Computer kombiniert zu sog Clustern Bekannt geworden sind Turniereinsatze der Engines Toga sowie Rybka auf Cluster Hardware Wettbewerbe Bearbeiten Hauptartikel World Computer Chess Championship North American Computer Chess Championship und Mikrocomputer Schachweltmeisterschaft Es gibt verschiedene Wettbewerbe bei denen sich Schachprogramme in ihrer Spielstarke gegenseitig messen selten auch gegen menschliche Schachspieler Einer der wichtigsten ist die seit 1974 ausgetragene offene Computerschachweltmeisterschaft die World Computer Chess Championship WCCC die fur alle Arten von Hard und Software offensteht Die alteste Veranstaltung war die von 1970 bis 1994 ausgetragene North American Computer Chess Championship NACCC Daruber hinaus gab es von 1980 bis 2001 eine spezielle Schachweltmeisterschaft nur fur Mikrocomputer die World Microcomputer Chess Championship WMCCC Elo Zahlen Bearbeiten Hauptartikel Elo Zahl Elo Zahlen der starksten Schachprogramme Stand Anfang 2021 20 Rang Name Punkte1 Stockfish 12 NNUE x64 35732 Komodo Dragon x64 35643 Booot 6 4 x64 33704 Deep Shredder 13 x64 33565 Vajolet2 2 8 x64 32976 Arasan 21 2 x64 32827 Wasp 4 x64 32578 Deep Hiarcs 14 32209 Deep Rybka 4 x64 319910 Chiron 3 01 x64 3177Auch Schachprogrammen kann man eine Elo Zahl geben die ihre Spielstarke beschreibt Zum Vergleich Ein Schachweltmeister von heute bewegt sich im Bereich um Elo 2850 Die Elo Zahlen in Computer Ranglisten sind aber nicht ohne weiteres mit denen menschlicher Schachspieler zu vergleichen da sie praktisch ausschliesslich durch Partien zwischen Computern ermittelt wurden Hinsichtlich der absoluten Grosse der Wertungszahlen fehlt eine Kalibrierung zwischen Leistungsskalen menschlicher Meisterspieler und jenen von Schachprogrammen diese wurde sehr zahlreiche ernste Wettkampfpartien zwischen beiden Spielergruppen erfordern D h das Zahlenniveau in reinen Computerwertungslisten muss notgedrungen von einer plausiblen oder praxisgeeigneten Annahme ausgehen und die konkreten Resultate der Programme gegeneinander bestimmen lediglich die Rangfolge und die Abstande zwischen ihren Wertungszahlen Wegen der grundsatzlich unterschiedlichen Methoden von Menschen und Computerprogrammen beim Schachspiel ist eine hohe Spielstarke gegen ein anderes Schachprogramm nicht zwingend gleichbedeutend mit entsprechend besserer Leistung gegenuber einem menschlichen Gegner Wettbewerbe von Schachprogrammen untereinander sagen daher nur bedingt etwas uber die Spielstarke gegen Menschen aus Jedoch hat die Praxis gezeigt dass eine hohe Spielstarke gegen Programme in der Regel auch eine hohe Spielstarke gegen Menschen bedeutet Das Programm Rybka hat gegen verschiedene Grossmeister teilweise mit einem Bauern Vorgabe gewinnen konnen Andere Programme sind inzwischen noch spielstarker Eine Bewertung der Spielstarke von Schachprogrammen und Schachcomputern ist daruber hinaus auch mit Hilfe einer festgelegten Reihe von Schachproblemen moglich Zum Beispiel besteht ein als BT2450 bezeichneter Test aus 30 Stellungen zu denen der jeweilige Losungszug zu finden ist Aus den dafur benotigten Zeiten fur alle Stellungen wird ein BT2450 Testwert berechnet der begrenzt mit der Elo Zahl von menschlichen Spielern vergleichbar ist Es gibt inzwischen weitere zum Teil umfangreichere und oder schwierigere Tests die innerhalb der Computerschach Community erstellt und angewandt werden Siehe auch BearbeitenComputer Chess Rating Lists CCRL Forsyth Edwards Notation FEN Quellen Bearbeiten CCRL 40 4 Abgerufen am 9 Januar 2021 CCRL 40 40 Abgerufen am 9 Januar 2021 CCRL 404FRC Abgerufen am 9 Januar 2021 CEGT 40 4 Abgerufen am 9 Januar 2021 CEGT 40 20 Abgerufen am 9 Januar 2021 CEGT Rangliste Abgerufen am 9 Januar 2021 Herbert Braun Plagiatsvorwurf gegen Computerschach Weltmeister In Heise de 1 Marz 2011 abgerufen am 9 Januar 2021 Niyas Khasanov Ufim In WBEC Ridderkerk nl Abgerufen am 9 Januar 2021 Jon Dart Arasan chess In ArasanChess org Abgerufen am 9 Januar 2021 Knights In Sourceforge net Abgerufen am 9 Januar 2021 Lomonosov Endgame Tablebases In chessok com Abgerufen am 9 Januar 2021 Welcome to the online 7 man tablebases In tb7 chessok com Abgerufen am 9 Januar 2021 Raul Rojas u a FU Berlin Konrad Zuses Plankalkul Seine Genese und eine moderne Implementierung Memento vom 23 April 2012 im Internet Archive In zib de Konrad Zuse Internet Archive Abgerufen am 9 Januar 2021 Stefan Klein Wie wir die Welt verandern Eine kurze Geschichte des menschlichen Geistes S Fischer 2021 ISBN 978 3 10 002492 3 S 209 a b c Dieter Steinweder Frederic A Friedel Schach am PC Markt und Technik Haar b Munchen 1995 ISBN 3 87791 522 1 S 33 35 Frederic Friedel Reconstructing Turing s Paper Machine In ChessBase com 23 September 2017 abgerufen am 9 Januar 2021 englisch Eric van Reem Der Traum vom Computerschach Eine kleine Geschichte des Computerschachs In scrkuppenheim de Januar 2003 abgerufen am 9 Januar 2021 Feng hsiung Hsu Behind Deep Blue Princeton University Press Princeton Oxford 2002 ISBN 0 691 09065 3 Lars Bremer Computerschach Grossmeister von Hydra deklassiert In Heise de 28 Juni 2005 abgerufen am 9 Januar 2021 Rating list In ssdf bosjo net 31 Dezember 2020 abgerufen am 9 Januar 2021 Literatur BearbeitenRainer Bartel Hans Joachim Kraas Gunther Schrufer Das grosse Computerschachbuch Data Becker Dusseldorf 1985 ISBN 3 89011 117 3 gute Einfuhrung in die Programmierung von Computerschach mit Beispielen in BASIC Computerschach und Spiele CSS 1 1986 bis 6 2004 danach nur noch online Zeitschrift uberwiegend zum Thema Computerschach Claude Shannon Programming a Computer for Playing Chess In Philosophical Magazine 1950 41 S 256 257 Claude Shannon Programming a Computer to Play Chess In Scientific American 2 1950 S 48 51 Botvinnik Meine neuen Ideen zur Schachprogrammierung Springer 1982 ISBN 3540110941 Botvinnik Uber den Schach Algorithmus und dessen Anwendung in der Langzeitplanung dt Dortmund 1992 Dieter Steinwender Frederic A Friedel Schach am PC Markt und Technik Haar bei Munchen 1995 ISBN 3 87791 522 1 Geschichte des Computerschachs didaktisches Schachprogramm mit Quellen in BASIC und C inkl CD Weblinks BearbeitenSeite von Ed Schroder Memento vom 30 Januar 2010 im Internet Archive Autor von Rebel und ProDeo sehr viele Informationen zum Thema Computerschach und detaillierte Beschreibungen zum Innenleben von Rebel Memento vom 31 Mai 2010 im Internet Archive Englisch Schachprogramm Micro Max Schachprogramm in C mit weniger als 2000 Byte Quellcode englisch Das erste Schachprogramm der Welt als modernes Java Applet B Monien U Lorenz D Warner Der Alphabeta Algorithmus Wie bringe ich meinen Computer zum Schachspielen Memento vom 15 Dezember 2015 im Internet Archive 2006 9 Computerschach Weltmeisterschaft vom 14 bis 20 Juni 1999 in Paderborn Bericht auf TeleSchach Online Fortsetzung der ehem Zeitschrift Computerschach und Spiele SSDF Computer Rangliste CEGT Rangliste Microchess das erste Mikrocomputer Schachprogramm Wiki zur Schachprogrammierung englisch Memento vom 20 Januar 2010 im Internet Archive nbsp Dieser Artikel wurde am 24 Februar 2006 in dieser Version in die Liste der lesenswerten Artikel aufgenommen Abgerufen von https de wikipedia org w index php title Schachprogramm amp oldid 236464901