Interview mit Raimund Heid (D)
Programmierer von Protector

20.02.2010
von Raimund Heid & Frank Quisinsky

raimund-heid Raimund Heid (Deutschland)

Ist Protector wirklich ein Clone?

Raimund Heid vertritt sehr wahrscheinlich die sinnige Auffassung, dass ein Rad nicht zum 500sten Mal erfunden werden muss. So benutzte er, nach meinen Informationen, die Fruit Sourcen als Aufsatz für ein eigenes Schachprogramm. Solche Vorgehensweisen sind nicht abwegig bzw. ganz und gar nicht neu. Zum Beispiel beruht auch das sehr beliebte Amateurprogramm Comet von Ulrich Türke auf den freien Sourcen von GnuChess. Fruit steht unter GPL. So arbeitet Raimund korrekt und stellt seine Protector Sourcen ganz getreu der GPL offen zur Verfügung. Insofern handelt es sich um einen "erlaubten Clone". Die Frage ist aber eher, ist Protector überhaupt ein "Clone". Im Verlauf unserer SWCR Ratingliste stellte ich fest, dass Protector in aktueller Version 1.3.2 wahrlich wenig Gemeinsamkeiten mit Fruit hat. Liegt hier überhaupt noch ein Clone vor und muss der Autor seine Sourcen überhaupt frei zur Verfügung stellen? Viele Fragen, die kontinuierlich im Interview aufgeworfen und abgearbeitet werden.

Raimund Heid
Wie weiter unten noch genauer erläutert wird: Protector basiert *nicht* auf den Sourcecodes von Fruit oder Toga. Wenn ich schon zwischen zwei Übeln wählen muss, dann möchte ich im Zweifel einer sein, der das Rad zum 500sten Mal erfunden hat :-)

GPL (Wikipedia):

http://de.wikipedia.org/wiki/GNU_General_Public_License

Protector 1.3.2:

http://sourceforge.net/projects/protector/

SWCR Ratingliste:

http://www.schach-welt.de/index.php?option=com_content&view=article&id=87&Itemid=90

01.

Frank Quisinsky

Schön das Du Dich zu einem Interview bereit erklärt hast. Dies gerade in Zeiten, in denen diverse "Clones" unter "den Meisten" Computerschächlern nicht gerade für eine positive Stimmung sorgen. Bevor wir tiefer in die Materie einsteigen, möchte wir Dich ein wenig besser kennenlernen. Auch über Deine Person liegen kaum Informationen vor. Es ist schade, dass heute über Programme diskutiert wird ohne überhaupt hinreichende Informationen über dessen Quelle zu haben.

Könntest Du Dich zunächst vorstellen? Wie alt bist Du? Was machst Du beruflich? Wie bist Du zu der Schachprogrammierung gekommen?

Raimund Heid
Ich bin 45 Jahre alt, Diplom-Informatiker und arbeite als Software-Entwickler und Projektleiter in einem Hamburger Softwarehaus. Als ich vor einigen Jahren schwerpunktmäßig mit Projektleitung befasst war, habe ich mit der Entwicklung von Protector begonnen, um das Programmieren nicht zu verlernen. Natürlich spielte dabei auch mein Interesse am Schach und an Schachprogrammierung eine wichtige Rolle.

02.
Frank Quisinsky
Gab es Vorbilder für Dich? Andere Programmierer oder Programme, sonstige Quellen die Dich animiert haben?

Raimund Heid
Richard Langs Genius-Programme haben für mich in gewissem Sinne immer noch Vorbildcharakter, sie hatten im Vergleich zu den damaligen Konkurrenten mit Abstand am wenigsten ausgeprägte Schwachpunkte. Heute sind sie wohl auf identischer PC-Hardware nicht mehr konkurrenzfähig, aber dieser Vergleich ist natürlich unfair bei einem Programm, das seit über zehn Jahren nicht weiterentwickelt wurde.

Der für mich instruktivste und inspirierendste Beitrag zum Thema Computerschach ist der Artikel von David Slate und Larry Atkin über die Entwicklung von Chess 4.5 ("The Northwestern University Chess Program").

03.

Frank Quisinsky

Und immer mal wieder stelle ich gerne die Frage nach Quellen zur Schachprogrammierung! Welche Quellen würdest Du einem Interessierten vorschlagen, der erst beginnt sich mit Schachprogrammierung zu beschäftigen. Ein Buch, oder interessante Seiten im Internet? Du hast doch bestimmt favorisierte Internetseiten zum Thema Programmierung?

Raimund Heid
Wer nur theoretisches Interesse am Computerschach hat und lediglich wissen will, wie ein Schachprogramm funktioniert, ist mit einem Buch oder mit den einschlägigen Artikeln in Wikipedia bestimmt gut bedient. Ich habe vor langer Zeit "Schach dem Computer" von Ketterling / Schwenkel und Weiner als Taschenbuch gelesen.

Ein gutes Schachprogramm kann man mit diesem Basiswissen aber nicht schreiben. Der effizienteste Weg ist das konzentrierte Lesen von guten Opensource-Programmen, momentan natürlich Stockfish 1.6. Hintergründe zu den wichtigsten Programmiertechniken findet man zum Beispiel auf http://chessprogramming.wikispaces.com. Sehr instruktiv sind auch die Artikel von Bob Hyatt zu den Themen Hashtabellen und Parallele Suche.

04.

Frank Quisinsky

Stelle Dir vor, Alexander der Große kommt von links. Cesar und seine römischen Legionen von rechts. Der Hunnensturm um König Attila greift von unten an. Von oben stürmt Hannibal mit seinen Kriegern aus Karthago herbei. Dazwischen die Wikinger, Kosaken, Quisinskys, Tataren, Trojaner ... eine ganz schlimme Situation bahnt sich an. Dschingis Khan und seine mongolischen Stämme stehen auf Abruf. Zeit zu flüchten. Der KGB erlaubt Dir einen Computer mitzunehmen, Dein nötiges Programmier-Werkzeug und Deine Protector Sourcen. Der CIA erlaubt Dir allerdings nur, eine einzige Benutzeroberfläche und auch nur 2 Engines zum Testen gegen Deine eigene Engine Protector einzupacken. Was nun? Für welche Programme würdest Du dich entscheiden?

Raimund Heid

Das ist momentan keine schwere Frage für mich: Rybka 3 und Stockfish 1.6.

05.
Frank Quisinsky
Neben Trier ist bekanntlich auch Hamburg eine Schachhochburg. Die Firma ChessBase ist in Hamburg ansässig. Auch Du kommst aus Hamburg. Wird es in naher Zukunft der Platz 1 im Wettkampf um die Krone der Engines in Hamburg ausgetragen? Gib es Verknüpfungen zwischen Dir und ChessBase? Dabei fällt mir ein, dass Dich in diesem Fall die Wikinger aus dem hohen Norden sehr wahrscheinlich verschonen werden. Dir wird seitens der Wikinger eine weitere GUI bei der Flucht zugestanden. Welche zweite GUI würdest Du in diesem Fall in Dein Gepäck legen?

Raimund Heid
Du bist fast auf der richtigen Spur: ich bin seinerzeit aus der Gegend von Trier (genauer: Bitburg) zum Studium nach Hamburg gezogen. ChessBase spielte dabei auch eine Rolle, dort war ich die ersten zwei Jahre freiberuflicher Mitarbeiter. Hinsichtlich GUI bin ich momentan emotionslos. Ich verwende abwechselnd Shredder und Fritz. Dass entweder Fritz oder Protector in naher Zukunft um eine Krone im Computerschach kämpfen -- so verstehe ich den zweiten Teil deiner Frage -- sehe ich nicht.

06.

Frank Quisinsky

Nach den beiden letzten fragwürdigen Fragen kommen wir zurück zum eigentlicher Hauptthema: "Protector". Beginnen wir mit dem Spielstil von Protector. Zu den TOP-20 Engines habe ich eine Spielstilbeschreibung gefertigt, die ich jetzt gerne auch hinsichtlich "Protector" zur Diskussion stellen möchte.

Spielstil von Protector nach meinen Eindrücken:

http://www.nk-qy.info/bericht-swcr-engines.htm#protector

"Protector spielt deutlich weniger defensiv als Fruit. Immer wieder blitzen positionelle Feinheiten auf, die Spiele gegen stärke Engines sofort und unerwartet entscheiden. Protector glänzt in allen Partiephasen immer wieder mit Spitzen, spielt sowohl taktisch, positionell und strategisch zu 30% perfekt (sinnbildlich). Somit ist die Engine sehr gefährlich und nicht berechenbar. In Protector steckt ein kleiner GM Michail Botvinnik. Botvinnik, der Patriarch des sowjetischen Schachspiels, war Wissenschaftler und widmete sich allen Abschnitten des Spieles. Leider werden viele Eröffnungssysteme nicht richtig behandelt und Protector spielt sich somit oftmals schnell in Nachteil."

Nach dieser Beschreibung spielt Protector eher positionelles Schach. Es gibt kaum Partien die schnell verloren oder gewonnen werden. Siehe SCHACHWELT News-Ticker, News 068. Mit einem solchen Spielverhalten kommt auch Fruit daher. Allerdings spielt Protector meines Erachtens genauer als Fruit und scheint tieferes positionelles Wissen zu haben. Auch im Endspiel zeigt sich Protector grundsätzlich nicht grob anfällig. Könntest Du uns Deine Version zum Spielstil von Protector niederschreiben? Informationen aus erster Quelle sind interessanter als mein Geschreibsel.

Raimund Heid
Ich kann mit dem Begriff "Spielstil" in Bezug auf eine Engine ehrlich gesagt nicht viel anfangen, der Begriff ist meines Erachtens zu positiv besetzt. Ich glaube, dass ein Programm eher durch seine Schwächen charakterisiert wird. Bei Protector wären da zuerst zu nennen: teilweise leichtsinnige Öffnung der eigenen Königsstellung in der vagen Hoffnung auf einen Angriff gegen den feindlichen König (wahrscheinlich eine kindliche Trotzreaktion gegenüber dem Namensgeber); teilweise grob falsche Einschätzung von asymmetrischen Materialverteilungen; mangelhafte Einschätzung der relativen Königspositionierung in stark reduzierten Endspielen, etc. Auch der von Dir angeführte Punkt der Misshandlung diverser Eröffnungssysteme trifft meines Erachtens zu. Allerdings ist der Grund schlicht eine viel zu grobe Einschätzung positioneller Faktoren. Meines Wissens optimiert kein Programmierer sein Programm auf bestimmte Eröffnungssysteme.

Man darf bei dieser Spielstil-Diskussion allerdings nicht übersehen, dass die ideale Engine bzw. der ideale Spieler eben genau keinen bestimmten Stil (außer vielleicht "elegant") hat und dass jeder Spielstil eigentlich das beschreibt, was eben noch nicht perfekt ist. Vasik Rajlich hat das mal in einem Interview sehr gut auf den Punkt gebracht: "Playing at a level of 2900 looks good until an opponent with 3000 points comes along". Insofern hoffe ich, dass die nächsten Versionen von Protector zumindest einen ganz anderen "Spielstil" haben werden.

07.

Frank Quisinsky

Nun beruht Protector offenbar auf den Sourcen von Fruit. Du schreibst hierzu in Deiner Readme Datei:

Auszüge:

"Protector is a Bitboard-based chess program that communicates with a chess GUI via the UCI protocol.

Protector is based on many great ideas from the following people: Fabien Letouzey (pvnodes, blending of opening and endgame values, eval params), Thomas Gaksch (pvnode extensions, extended futility pruning, space attack eval), Robert Hyatt (consistent hashtable entries),  Stefan Meyer-Kahlen (UCI), Gerd Isenberg and Lasse Hansen (magic bitboards), Marco Costabla, Tord Romstad (Stockfish mobility count and more) and  Mike Donnig (testing). Without their contributions Protector would not be what it is. Thank you so much."

Genannt sind eine Menge Personen mit Rang und Namen. Du benennst Fabien an erster Stelle, zumal offenbar ganz wesentliche Teile von Fabien's genialer Arbeit in Protector stecken. Ein Grund warum Protector oftmals, auch von mir, als Clone bezeichnet wird. Ich vermisse bei der ganzen Aufzählung Deine eigenen Beiträge für Protector. Wurden verschiedene offene Sourcen einfach nur zusammengesetzt oder versuchst Du die Bestandteile im Detail wirklich zu verbessern? Warum führst Du deine Bemühungen bzw. erfolgten Änderungen nicht in der Readme Datei auf? Bei Deiner Readme entsteht wirklich der Eindruck, dass keine eigenen Beiträge zum Thema Schachprogrammierung in Protector eingeflossen sind.

Raimund Heid
Zunächst mal zu den Fakten: Die erste Version von Protector ist Anfang 2000 entstanden, lange bevor Fruit veröffentlicht wurde. Jede einzelne Zeile von Protector habe ich selbst auf meiner Tastatur geschrieben, es wurden keine Sourcen von anderen Programmen zusammenkopiert. Die ersten Versionen von Protector waren nicht sehr stark, es spielte etwa auf dem damaligen Niveau von Crafty.

Nach der Veröffentlichung von Fruit übernahm ich von dort viele Ideen zur Baumsuche und zur Stellungsbewertung und versuchte sie gleichzeitig in Protector zu optimieren. Für mich war dabei neben der Spielstärkesteigerung von Protector vor allem der Lernprozess wichtig. Der ganze Unterbau (Bitboard-Datenstrukturen, Zuggenerierung, Zugausführung etc.) stammt aus der Zeit vor Fruit und wurde seit den ersten Versionen kaum verändert (mit Ausnahme der Zuggenerierung per MagicNumbers). Es handelt sich also bei Protector zumindest nicht um einen klassischen Clone, bei dem vorhandene Sourcen zunächst kopiert und dann an einigen wenigen Stellen verändert wurden.

Als Protector in etwa das Niveau von Fruit erreicht hatte, erschien dann Toga. Die weitere Entwicklung verlief in etwa auf Augenhöhe. Ich tauschte ein paar Mal Ideen mit Thomas Gaksch aus, von denen einige auch in Toga2 einflossen. Er konzentrierte sich damals vor allem auf die Baumsuche, während ich die Schwächen beider Programme eher bei der Stellungsbewertung sah. Diesen Weg habe ich seitdem weiter verfolgt und ich bin immer noch der Meinung, dass die Stellungsbewertung von Protector das meiste Verbesserungspotential enthält.

Ob Protector unter diesen Umständen als Fruit- oder Toga-Clone anzusehen ist, muss jeder selbst entscheiden, für den dieser Begriff wichtig ist. Für mich persönlich spielt das Thema derzeit keine große Rolle, da ich nicht plane Protector an Turnieren teilnehmen zu lassen, bei denen Clones nicht zugelassen sind.

08.

Frank Quisinsky

Können wir überhaupt bei Protector von einem Clone sprechen? Auf welche Programmteile bist Du besonders stolz? Denkst Du ganz bekannte Programmteile von anderen Programmierern wesentlich verbessert zu haben? Wenn ja welche, um warum ist Protector kein Clone?

Hinweis:

Zum Zeitpunkt der Fragestellung kenne ich die persönliche Meinung von Raimund nicht.

Raimund Heid
Ich bin der Ansicht, dass die Stellungsbewertung von Protector in vielen Bereichen besser ist als die von Toga. Als Indiz hierfür werte ich, dass bereits die 32-bit-Version gegen Toga einen leicht positiven Score erzielt, obwohl sie nur ca. 70-80% der Knotenzahlen erreicht. Auch im taktischen Bereich und bei einigen elementaren Endspielen sehe ich Vorteile für Protector. Und natürlich halte ich den Bitboard-Ansatz inzwischen für zeitgemäßer, da moderne CPUs inzwischen alle 64-bit-Register besitzen.

Im Übrigen habe ich Toga des öfteren grobe Fehlzüge spielen sehen, die zum Beispiel zwanglos eine Figur einstellen. Ich kenne den genauen Grund hierfür nicht, denke aber dass ich in Protector sehr viele automatisierte Selbsttests eingebaut habe, die solche groben Programmierfehler aufdecken würden.

09.

Frank Quisinsky

Ist es überhaupt notwendig, dass Du die Sourcen nach dem derzeitigen Stand der Protector Entwicklung weiterhin zur Verfügung stellst?

Raimund Heid
Ich habe keinerlei kommerzielle Ambitionen mit Protector, also sehe ich keinen Grund, der dagegen spricht. Seit dem Erscheinen von Robbolito und Stockfish 1.6 ist allerdings für mich bis auf Weiteres der bislang wichtigste Grund *für* eine Veröffentlichung der Sourcen entfallen: ich wollte der Allgemeinheit eine solide getestete bitboard-basierte Alternative zu Toga als Basis für Weiterentwicklungen zur Verfügung stellen. Andererseits ist die Existenz von Robbolito und Stockfish für mich auch kein Anlass, die Sourcen *nicht* mehr zu veröffentlichen. Ich gehe nur davon aus, dass das allgemeine Interesse für die genannten Programme derzeit viel größer ist.

10.

Frank Quisinsky

Zum Zeitpunkt der Veröffentlichung der Protector 1.3.2 Version (Ende November 2009) gab es einen interessanten Thread in TalkChess.

TalkChess Forum

http://www.talkchess.com/forum/viewtopic.php?topic_view=threads&p=305369&t=30797

Du berichtest hier über Verbesserungen und Probleme bzw. einen Test gegen Stockfish 1.5.1.

Auszug:

"I've enhanced the passed pawn eval and after two weeks of frustration it seems to work eventually."

Nach meinem Test schaut es zwischen Protector 1.3.1b und Protector 1.3.2 wie folgt aus:

Ergebnisse aus der SWCR Ratingliste:

Protector 1.3.2    2669 18 18 0880 47% 2690 43%
Protector 1.3.1b   2662 19 19 0840 47% 2686 42%

Nach über 800 Partien kam es also bei mittleren Bedenkzeiten und 32-Bit nicht zu einer spürbaren Verbesserung. Offenbar ist das Thema "Passed Pawn Eval" für Dich doch noch nicht abgeschlossen. Nun sind ein paar Monate ins Land gezogen. Sicherlich hast Du weiterhin an Deinen Sourcen gearbeitet. Wie ist denn Dein aktueller Stand in der Protector Entwicklung? Glaubst Du an einer weiteren Verbesserung der Spielstärke? Wie lange arbeitest Du eigentlich schon an Protector?

Raimund Heid
Natürlich werde ich Protector weiter verbessern, allerdings sind meine zeitlichen Ressourcen für die Weiterentwicklung begrenzt. Neben einem Vollzeitjob habe ich eine Familie mit zwei kleinen Kindern, da bleibt seit einiger Zeit für die Schachprogrammierung nicht viel mehr als ein, zwei Stunden pro Woche. Die Fortschritte sind entsprechend bescheiden.

11.

Frank Quisinsky

Aus Ratinglisten geht hervor, dass zwischen Fruit 2.1 und Clones wie Toga / Grapefruit / Cyclone ca. 150 ELO liegen. Protector setzte sich bislang nicht wesentlich von Grapefruit 1.0 Beta oder Toga 1.4.2 JD, bzw. den Cyclone xTreme Versionen ab. Deine Meinung hierzu würde mich persönlich sehr interessieren!

Raimund Heid
Protector ist vom Konzept her ein 64-bit-Programm, die 32-bit Version ist eigentlich ein Abfallprodukt. Die 64-bit-Version erzielt zur Zeit in meinen Tests ca. 80% gegen Fruit 2.1 und einen Score +75 Elopunkten gegenüber Toga2. Das ist zwar im Vergleich zu Stockfish nicht berauschend, aber auch kein Grund zum Trübsal blasen. Warum die großen Fortschritte zur Zeit ausbleiben, habe ich bereits oben erläutert. Ein weiterer Faktor war in den letzten Monaten, dass ich eigentlich geplante Verbesserungen in der Bewertungsfunktion zurückstellen musste, um Endspielwissen zu implementieren, das vorher nur in den Nalimov-Tablebases enthalten war. Inzwischen habe ich zwar die Genehmigung zur Integration der Tablebases, aber zwischenzeitlich war damit nicht mehr zu rechnen, deshalb die temporäre Kursänderung.

12.

Frank Quisinsky

Aufgrund Deiner Erfahrungen mit anderen Sourcen, wäre es doch denkbar ein Schachprogramm von Grund auf neu zu programmieren. Hast Du darüber schon nachgedacht? Oder bist Du eher der Meinung, dass Deine Sourcen so gut aufgebaut sind, dass dies nicht notwendig erscheint?

Raimund Heid
Meiner Ansicht nach ist Protector von Grund auf neu programmiert. Wenn ich jetzt ein neues Programm schreiben müsste, würde ich es (fast) genau so programmieren wie Protector.

13.

Frank Quisinsky

Kommen wir zurück zu der TalkChess Diskussion (URL zu Frage 10). Es gab im November noch einen zweiten Thread zu Protector in TalkChess. Thema waren die Endspieldatenbanken von Eugene Nalimov and Andrew Kadash. Liegt Dir mittlerweile eine Genehmigung für die Integration der Nalimov Endspieldaten vor? Erscheint es notwendig ergänzend zur Nalimov TableBase Implementation auch zuzügliches Endspielwissen zu programmieren? Wie schaut hier Dein aktueller Stand aus?

Raimund Heid
Ja, die Genehmigungen von Nalimov und von Kadatch liegen mittlerweile vor. Inzwischen habe ich aber so viel Endspielwissen integriert, dass die Tablebases jetzt keine Spielstärkesteigerung mehr bringen. Trotzdem werden sie in der nächsten Version wieder unterstützt.

14.

Frank Quisinsky

Wie wird überhaupt Schachwissen in eine Engine programmiert. Könntest Du uns ein Beispiel für eine Regel zu Schachwissen aus programmiertechnischer Sicht geben (vielleicht ein kleiner Auszug aus den Sourcen). Die meisten Anwender von Schachsoftware fragen sich fortwährend wie Schachwissen überhaupt programmiert wird!

Raimund Heid
Ich bin mir nicht ganz sicher, ob ich die Zielrichtung der Frage richtig verstanden habe. Aber ich kann es ja mal versuchen.

Im Grunde handelt es sich bei Schachprogrammierung um angewandte Mathematik. Ein Programm "weiß" nichts über Schach sondern hat vom Programmierer nur relativ simple Anweisungen erhalten, wie bestimmte positionelle Faktoren in einer konkreten Stellung zu "bewerten" sind, im wahrsten Sinne des Wortes. Diese Bewertung einzelner positioneller Faktoren (Beispiel: Figuren greifen Felder in unmittelbarer Nähe des gegnerischen Königs an: wie viele Angreifer sind es, welche Figurenarten, wie viel restliches Angriffsmaterial ist vorhanden? All das hat Einfluss auf die Bewertung) wird letztlich durch Aufsummierung und Addition des Materialverhältnisses in eine einzige Zahl verdichtet, die eben genau die Bewertung für die konkrete Stellung ist. Diese Bewertung wird mit den Bewertungen von anderen Stellungen verglichen, die durch andere Zugfolgen erreichbar sind. Am Ende entscheidet sich das Programm für den Zug, der zur Stellung mit der besten Bewertung für die eigene Seite führt. Grob vereinfacht gesagt.

Die Kunst bei der Schachprogrammierung besteht nun darin, die richtigen Faktoren auszuwählen und dann noch eine richtige Bewertung dafür festzulegen. Bei der richtigen Bewertung sind nicht nur die Bewertungen für andere positionelle Faktoren zu berücksichtigen sondern auch die Material-Werte für die einzelnen Figurenarten. Sonst opfert das Programm zu viel Material für Königsangriffe, die am Ende nicht durchschlagen oder zerstört seine Position für einen isolierten Doppelbauern.

Ein paar konkrete Beispiele zu den Bewertungen von Protector: die Werte für die Figuren sind 325 für Springer und Läufer, 500 für Türme und 975 für Damen. Bauern werden im Mittelspiel mit 75, im Endspiel mit 90 bewertet. Hinzu kommen Aufschläge und Abzüge in der Größenordnung ca. 20 Punkten für jedes Feld und jeweils für Mittelspiel und Endspiel. Hierdurch lassen sich Regeln wie "Springer am Rand ist eine Schand" ganz leicht durch Vergabe eines negativen Wertes für Randfelder bei Springern umsetzen.

Andere elementare Regeln wie "Türme gehören auf die siebte Reihe" ließen sich zwar auch auf diese Weise definieren. Dann merkt man aber schnell, dass solche Regeln zwar für Menschen hilfreich sind, aber nicht für Computer. Kein Mensch käme auf die Idee, seinen Turm auf die siebte Reihe des Gegners zu stellen, wenn sich dort kein Bauer mehr befindet und den gegnerische König bereits in die eigene Stellung eingedrungen ist. Für solche Regeln braucht mal also speziellere Prüfungen. Zur Größenordnung dieser positionellen Faktoren: Protector bewertet einen Turm auf der siebten Reihe im Mittelspiel mit 20, im Endspiel mit 40 Punkten. Andere wichtige Faktoren sind Aspekte der Bauernstruktur wie Doppelbauern, Isolanis, Hinker etc. Alle diese Begriffe findet man in elementaren Schachlehrbüchern -- die Kunst besteht darin, ihnen eine angemessene Zahl zuzuordnen.

Am schwierigsten ist die Bewertung der Königssicherheit und von Freibauern, da hier relativ große positionelle Bewertungen notwendig sind, die die Materialwerte für Bauern oder sogar Leichtfiguren übersteigen. Und wenn diese nicht gerechtfertigt sind, macht das Programm grobe Fehler, die es erst bemerkt, wenn es zu spät ist.

Frank Quisinsky
Prima! Das war meine Zielrichtung.

15.

Frank Quisinsky

Können wir mit einer weiteren Protector Version in absehbarer Zeit rechnen?

Raimund Heid
Ja, ich will aber sicherstellen, dass sie signifikant stärker spielt als die Vorgängerversion.

16.

Frank Quisinsky

Warum ist Protector besser als Fruit / Toga / Grapefruit / Cyclone. Unter Umständen überschneidet sich die Frage mit anderen Fragen. Allerdings wäre es an dieser Stelle sehr interessant genau zu dieser Frage ein Statement von Dir zu erhalten.

Raimund Heid
Einiges dazu habe ich ja oben gesagt. Der wichtigste Unterschied scheint mir eine verbesserte Stellungsbewertung zu sein. Grapefruit und Cyclone kenne ich allerdings nur vom Namen.

17.
Frank Quisinsky
Ich hoffe Du erkennst meine Fragen nicht als pure Provokation. Es ist mir wichtig, mehr Klarheit in die Clone Diskussionen zu bekommen. Über Clones wird seit vielen Jahren sehr kontrovers diskutiert. Die Gemüter erhitzen sich oft und gerade Diskussionen in Schachforen verlaufen in Richtungen, die wirklich niemanden dienlich sind. Letztendlich eilt unserem Hobby gar ein schlechter Ruf voraus. Insofern versuche ich bei diesem Interview, Dir möglich viele Stellen anzubieten um weitere unschöne Diskussionen vorzubeugen.

Selbst wenn sehr viel Material von anderen Programmierern in Protector eingeflossen ist, so stellst Du Diene Sourcen gemäß den GPL offen zur Verfügung. Es gibt sicherlich Programmierer, die sich freier Sourcen bedienen und keinesfalls auf die Arbeit der Schöpfer dieser Arbeiten hinweisen. Ideen von Fruit sind sicherlich in vielen Programmen eingeflossen. Müssen diese Programme dann nicht auch unter GPL gestellt werden? Warum werden solche Dinge gerne verschwiegen?

Raimund Heid
Man darf es sich bei dieser Frage meiner Meinung nach nicht zu leicht machen. Natürlich ist es nicht in Ordnung, wenn ein Programmierer fremde Ideen als eigene ausgibt. Andererseits darf es meiner Meinung nach auch nicht passieren, dass selbsternannte Experten aus Missgunst die mühselige Programmierarbeit anderer als bloßen Ideenklau zwecks Erlangung ungerechtfertigten Ruhms herab würdigen.

Ich bin früher davon ausgegangen, dass sich solche Auswüchse bei OpenSource-Programmen von selbst korrigieren, habe aber inzwischen meine Zweifel. Wenn sich durch die Aussagen einiger Wortführer ein allgemeines Urteil einmal gebildet hat, sind die Fakten nicht mehr relevant und treten gegenüber dem "Urteil" in den Hintergrund, weil dieses sich leichter recherchieren lässt. Die Computerschachszene ist in dieser Beziehung leider ein Abbild der "normalen" Gesellschaft. Ich möchte diese Aussagen allgemein verstanden wissen, nicht speziell bezogen auf Protector. Es gibt genug andere einschlägige Beispiele, auf die sie meiner Meinung nach zutreffen.

18.

Frank Quisinsky

Noch mal zurück zu Fruit. Glaubst Du, dass Fabian die Sourcen von Fruit selbst um 200 ELO verbessern könnte? Siehst Du in Fruit Verbesserungspotential? Wo liegt der Schachpunkt in den Fruit Sourcen?

Raimund Heid
Es steht mir nicht an, über Fabiens Fähigkeiten zu urteilen. Fruit ist ein exzellentes Programm von einem exzellenten Programmierer, mehr kann ich zu dem Thema nicht sagen.

Der Schwachpunkt von Fruit ist in gewissem Sinne gleichzeitig auch eine seiner großen Stärken: die Einfachheit. Fruit kommt mit sehr wenigen Bewertungstermen aus und verwendet sehr simple Mechanismen zur Beschneidung der Baumsuche. Leider hat sich vieles davon inzwischen als zu ungenau erwiesen. Um zwei Beispiele zu nennen: Fruit hat keine spezielle Bewertung für verbundene Freibauern und keine Bewertung für den Abstand der Könige zu verbliebenen Bauerninseln im Endspiel. Es ist eigentlich ein kleines Wunder, dass es trotzdem so meisterhaft spielt.

19.

Frank Quisinsky

In welchen Bereichen der Schach-Programmierung siehst Du weiteres Verbesserungspotential. Sind am Horizont Möglichkeiten erkennbar, die uns weitere größere ELO-Sprünge bescheren könnten? Gibt es Ansätze die interessant sind. Warum ist Stockfish so spielstark? Du hast Dir die Sourcen von Stockfish sicherlich auch angesehen, oder?

Raimund Heid
Es gibt überall Verbesserungspotential, die Elo-Zahlen der Programme werden in den nächsten Jahren weiter wie bisher stetig steigen, einen Grund für eine Stagnation kann ich nicht erkennen. Moderne Programme verwenden Tausende von Parametern und mehrere Hundert Terme zur Positionsbewertung. Allein in diesem Bereich schlummert wahrscheinlich ein Optimierungspotenzial von mehreren Hundert Elopunkten. Hinzu kommen bessere Algorithmen zur parallelen Suche auf Mehrkern- und Mehrprozessor-Systemen.

Hinsichtlich des Potenzials steckt die Schachprogrammierung immer noch in den Kinderschuhen. Eine anderes Thema ist allerdings die Nachfrage. Wer außer ein paar Fernschachspielern und Supergroßmeistern braucht wirklich ein Programm mit 3500 Elopunkten? Dieser Umstand könnte die Entwicklung etwas bremsen.

Warum Stockfish so stark spielt? Die lapidare Antwort ist: weil es weniger falsch macht als die Konkurrenz. Entgegen deiner Annahme bin ich leider noch nicht dazu gekommen, mir die Stockfish-Sourcecodes näher anzusehen. Wenn mir bei einer Matchpartie gegen Stockfish ein signifikanter Bewertungsunterschied auffällt, schaue ich zwar gezielt in dem betreffenden Bereich nach, wie Costalba und Co das Problem gelöst haben. Aber in der Regel bringt die 1:1-Übertragung der Stockfish-Lösung in Protector keine Vorteile, weil die Programme zu unterschiedlich sind. Die meisten Bewertungsterme und -Parameter ergeben nur einen Sinn, wenn sie gut auf den Rest abgestimmt sind.

20.

Frank Quisinsky

Abschließend möchte ich Dich fragen, ob Du ein langfristiges Ziel mit Protector verfolgst? In der Regel wurden in der Vergangenheit die Arbeiten an "Clone" Programmen schnell wieder aufgegeben oder von anderen Programmierern fortgeführt. Selbst habe ich sehr viel Spaß an Protector und hoffe, dass Dir Verbesserungen gelingen werden. Wird uns mit Protector eine langfristige interessante Engine-Entwicklung bevorstehen, die "wir" auch neugierig beobachten können.

Raimund Heid
Das langfristige Ziel ist eine kontinuierliche Verbesserung, aber es soll auch immer ein schönes Hobby für mich bleiben, wie in den letzten zehn Jahren. Für mich ist das schon fast langfristig :-)

Vielen Dank für Deine Zeit Raimund.
Die SCHACHWELT wünscht Dir zukünftig viel Erfolg mit Protector.

Danke!

Copyrights and Sources by http://www.schach-welt.de & Frank Quisinsky

Note:
Further publication of this interview is allowed and wished,
but with the permission of http://www.schach-welt.de only.
One condition is the complete casting (e.g. inprinted media).

Frank Quisinsky, 20.02.2010