Dennoch
scheint es im allgemeinen so, das die, ich nenne es mal
„Programmierphilosophien“
nicht nur sehr unterschiedlich sind, sondern auch bewirken können,
das sich die Programme im direkten Vergleich miteinander manchmal
etwas schwer tun. Das kann auch passieren, wenn die gleiche Hardware
zugrunde liegt, denn Prog1
denkt beispielsweise schlicht positionell, vielleicht ganz
entsprechend der Denkweise seines Programmierers. So ist das
Programmwerk immer auch ein Spiegelbild dessen, der die Ideen in das
Skript übertragen hat.
Dagegen
geht Prog2
völlig anders, mit hoher taktischer Schlagkraft zu Werke, hat aber
möglicherweise nur mangelhaftes Endspielwissen implementiert
bekommen.
Abhängig
davon, in welcher Partiephase die Ungenauigkeiten nun passieren,
reihen sich die Fehler aneinander. Unterlaufen diese Fehler
wechselseitig, so werden die Turniervergleiche in gewissen Sinne
unberechenbar und korrelieren wenig mit den angegebenen Elowertungen.
Da existiert dann einiges an Toleranz.
100-200
Elo +/- sind da locker möglich.
Prog1: erkennt in irgendeinem Stellungstyp die Komplexität der Position und analysiert diese entsprechend länger. Während Prog2: taktisch ausgerichtet, in Richtung schnellem Vorteil rechnet, wird es daher eher auf mögliche Kombinationen setzen, wobei allerdings wieder die Gefahr besteht, die Stellung oder die Partie zu überziehen und in der Folge der errechneten Möglichkeiten von Prog1 und dessen Schachwissen zur Strafe ausgekontert zu werden.
Die
A-Strategie:
wird im allgemeinen als „brute
force“ Stil beschrieben. Hier
werden vom Computer alle Möglichkeiten in Erwägung gezogen. Der
erforderlichen Kapazitäten an Rechenleistung sind dabei immens.
Deshalb werden abhängig von der Rechenzeit, einige Markierungen im
Suchbaum tiefer verfolgt, doch wird vorher viel Zeit verwendet, in
der Unsinniges aussortiert wird. Naturgemäß werden hier triviale
Fehler nicht gemacht, weil gerade dieses präventiv verhindert wird.
Der Nachteil liegt darin, das vielversprechende Varianten wiederum
auf ein Minimum reduziert werden müssen, von denen nur einzelne
tiefer untersucht werden können.
Die
B-Strategie:
ist eindeutig „selektiv“
ausgerichtet. Grundsätzlich ist sie sehr effektiv, weil diese im
Suchbaum vertikal nach der Lösung sucht. Im Gegensatz zur „brute
force“ Methode, wo die
Verästelungen im Suchbaum in seiner Breite und Unerschöpflichkeit
systematisch durchforstet werden, verschwendet das „selektive“
Programm wenig Zeit damit, unsinnige Zugfolgen überhaupt erst in
Erwägung zu ziehen. Stattdessen werden Varianten ermittelt, die für
die Stellungssituation als wahrscheinlich gut bewertet werden.
Diese
werden dann sehr gründlich unter die Lupe genommen. Gleichzeitig
bekommen ein paar weitere Äste noch Bedeutung, um weitere schlüssige
Varianten mit einzubeziehen. Denn diese sollen bei der Bestmove-Suche
nicht übersehen werden.
Das
große Problem für den Programmierer ist natürlich die Bewertung in
den einzelnen Ästen des Suchbaumes, an dessen Stellen Markierungen
gesetzt werden. Sprich, das Festlegen von Entscheidungskriterien.
Diese Differenzierungen sind vermutlich für das Schreiben eines
starken Schachprogrammes eine der größten Herausforderungen.
Denn
im Vergleich mit dem „brute
force“ Prinzip können durch
falsche Kriterien, entscheidende Zugfolgen ausgelassen werden.
Es existieren auch sogenannte „hochselektive“ Programme, die den Suchbaum vielerorts früh abschneiden und nur die am stärksten erscheinenden Varianten in Erwägung ziehen. Diese werden dann jedoch extrem tief untersucht (30, 40 Halbzüge u.m). Der Nachteil liegt hier am ehesten darin, das taktische Wendungen, aus nicht untersuchten Verästelungen unentdeckt bleiben.
Die
C-Strategie:
ist gedanklich irgendwie genial, aber wohl auch die schwierigste
Form, dem Programm eine sinnvolle Struktur zu geben.
Statisch
ist es einfacher, denn man kann durch Algorithmen in Zusammenarbeit
mit Datenbanken, dem Programm Wissen mit auf den Weg geben (z.B.
Bauernstrukturen, Isolani, Endspielprinzipien, Mattbilder,
Freibauern, Quadratregel, u.v.m.).
Denn
das passierte auch schon seit den Achtziger Jahren. Ein Mephisto
III beherrscht das Mattsetzen
mit Läufer und Springer. Für modernere Programme der Neunziger war
das keine Selbstverständlichkeit, manche versagten darin kläglich,
so z.B. auch das Modul
Polgar, obwohl es hingegen
Freibauern im Endspiel sehr gut behandelt.
Die
Alten waren nicht in allem schlechter. Reines Wissen hatten diese
manchmal sogar mehr. Was die C-Strategie
so kompliziert macht: sie soll die Formen großmeisterlichen Denkens
nachvollziehen. Also das System wie der Mensch denkt, das Prinzip der
„Mustererkennung“.
Der
Großmeister sieht eine Stellung und beginnt nicht in erster Linie zu
rechnen, sondern sieht die Möglichkeiten intuitiv, ebenso die Kraft
die hinter der Konstellation seiner Figuren steht. Exakt diese
Denkweise sollte ein Programm dieser Art umsetzen. Über weite
Strecken wird die Entwicklung eines solchen Schachprogramms am
ehesten durch die KI-Programme abgedeckt.
Programmierer
wie Ed
Schröder oder Richard
Lang setzten sehr auf
positionelles
Spiel, Strukuren von Bauern und Endspielwissen im allgemeinen. Frans
Morsch hatte die Fähigkeiten,
Programme, die er schrieb, auf sehr kleinen Hardwarebausteinen (ROM)
unterzubringen. Die Ausrichtung der Morsch
`is, salopp formuliert,
war vor allem taktischer
Natur.
Auch im großen Nachfolger Fritz, der späteren Software, die Frans Morsch kommerziell schrieb, war es die taktische Stärke, welche das Programm auszeichnete. Erst mit den späteren Versionen wurden auch die anderen Spielabschnitte stark verbessert, was dazu führte, das Fritz 13 eine doch sehr solide spielende Software wurde. Natürlich existieren inzwischen noch weitaus stärkere Programme, denn die Freilegung des Sourcecodes seitens vieler Programmierer hat für eine enorme Vielfalt und Kreativität wie auch Spielstärke gesorgt.
Dadurch entstanden Schachprogramme, die, obwohl frei erhältlich, unglaublich stark sind. Für den Normalverbraucher im allgemeinen nur zur Analyse interessant.
Paradebeispiel ist die Open Source Software Stockfish, inzwischen in der Version 14 angekommen, ist sie auf allen Plattformen Analyseengine Nr. 1 und ist neben der KI-Engine Lc0 nahezu unschlagbar.
Die
Programmierung hat immense Fortschritte erzielt. Berücksichtigt man
noch die Tablebases, z.B. Syzygy, die TB´s
von Festplattenspeicher benötigen und das Endspiel bis auf
mindestens 7-Figuren
am Brett komplett errechnen können, so bleibt dem menschlichen
Spieler wenig übrig, dieser Power, bzw. diesem statischen Wissen
etwas Entscheidendes entgegenzusetzen.