By Stefan Pohl
Date 2013-06-22 08:20
Edited 2013-06-22 08:22
[quote="Benno Hartwig"]
[quote="Stefan Pohl"] Auch eine schlechte Engine mit sehr geringem BF wird mit mehr Zeit überproportional in der Spielstärke zulegen, wäre aber verglichen mit anderen, starken Engines immer noch schlecht.[/quote]Ich bin mal gespannt, ob sich diese These bestätigt. Der schlechte Zug durch einen falschen Cut bleibt ein schlechter Zug, ganz egal, wohin du die Suchtiefen steigerst. Von daher hätte ich eher vermutet, dass etwas zu lockeres Schneiden den Stärkegewinn durch längere Zeiten eher besonders stört.
Aber, OK, wenn mich jetzt die Beobachtung widerlegt, werde ich eben dazu lernen.
Benno
[/quote]
Warten wir mal die Ergebnisse von Andreas Strangmüller ab. Ich habe ja nur 4 Engines überprüft...Ich finde die These zwar aus prinzipiellen Überlegungen heraus logisch, aber Meßdaten sind immer besser als nur Überlegungen...
Was auf jeden Fall Fakt ist, ist daß moderne Engines, die ja auch für moderne Hardware entwickelt wurden, generell deutlich niedrigere BFs haben, als alte Engines, die für langsamere Hardware entwickelt wurden (z.B. ProDeo). Ein BF von etwa 2 oder, wie im Fall von Stockfish sogar nur 1.59, wäre im Brettcomputerzeitalter undenkbar gewesen und hätte in eine Elo-Katastrophe geführt. Das ist auch nur 2 Mal versucht worden, soweit mir bekannt, nämlich bei Botwinniks Pionier und beim Mephisto 3. Beide Versuche gingen komplett in die Hose. Daraus kann mann eben m.E. folgern, daß der BF um so kleiner werden kann, je schneller die Hardware ist, was ja äquivalent zu längerer Bedenkzeit ist. Und das man das eben auch tun sollte, weil dann umso weniger Rechenzeit für sinnlose Varianten vergeudet wird (und diese Entwicklung beobachten wir ja bei modernen Engines). Und je weniger Rechenzeit man vergeudet, desto mehr Rechenzeit nutzt man logischerweise sinnvoll,d.h. für Elo-Zugewinn. Ergo ist niedrigerer BF gleich mehr Elozugewinn bei mehr Hardwarepower und/oder Rechenzeit. Wie gesagt, ich finde diese Überlegung in sich logisch und alle bisherigen aktuellen Meßdaten und Beobachtungen aus der Computerschach-Historie stützen diese These ebenfalls.
Aber genau wie du gehe ich ans Computerschach wissenschaftlich heran, was bedeutet, wenn es Meßdaten bzw. Beobachtungen geben sollte, die diese These widerlegen, dann betrachte ich die These als widerlegt und lerne so was dazu...
Stefan
By Frank Brenner
Date 2013-06-22 15:12
Botwinnik hat niemals ein Schachprogramm programmiert.
Nitsche und Henne haben ein Schachprogramm programmieren welches nicht dem damals klassichen Brute-Force Ansatz entspricht (also Minimax mit ab) , sondern eher ein "intelligentes" Programm. Dabei waren sie nicht sonderlich erfolgreich. Das lag aber nicht an der schwachen Hardware oder einem kleinen oder großen BF, sondern ganz einfach weil die beiden Programmierer nicht clever genug waren.
Die Ursache wieso früher die Schachprogramme so einen großen BF hatten lag nicht darin begründet weil die alte Hardware von damals mit einem kleinen BF schlechter spielt, sondern weil die Spielalgorithmen damals bei weitem noch nicht so effizient ausgetüftelt waren wie heute.
Selbstverständlich kann auch eine alte Hardware von damals mit einem Schachprogramm besser spielen welches einen kleinen BF hat, wenn heute ein guter Programmierer sich hinsetzen würde und für eine alte Hardware ein Programm optimieren würde...
Der BF allein reicht aber nicht aus um die SPielstärke für lange Bedenkzeiten zu beurteilen. Genauso wichtig wie der BF ist die qualität des Suchbaums. Und genau diese Qualität wird in den Tests bis jetzt noch nicht bewertet.
Eine Engine mit einem kleinen BF mit schlechtem Suchbaum kommt zwar schneller tiefer in den Baum hinein (und der geschwindigkeitsunterschied wird immer größer je länger die Engines rechne) , aber die Spielstärke des Schachprogramms als ganzes kann ohne weiteres kleiner sein als die Spielstärke eines Programms das einen großen BF hat aber wo der Suchbaum qualitativ "besser" ist.
Auch der Spielstärkezuwachs bei einer ständigen Verdopplung der Bedenkzeit kann bei einem Schachprogramm mit kleinerem BF jeweils geringer ausfallen als bei einem Schachprogamm mit großem BF. (Hier und da kann es durchaus Ausreißer geben, was zählt ist der durchschnittliche Elozuwachs bis hin sagen wir mal bis zu einer Bedenkzeit von 3 Tagen pro Zug.
Der Spielstärkezuwachs bei nur einer Bedenkzeitverdopplung (sagen wir von 100ms auf 200ms) ist hierbei nur ein winziger Baustein. Man muss schon sehr viele Geschwindigkeitsverdopplungen durchführen und dann erhält man eine Sequenz von Meßwerten (Elo-Zuwächsen). Erst wenn mann so viele Messwerte hat dass man zuverlässig die so entstehende Kurve interpolieren kann braucht man keine weiteren Meßwerte mehr. Ich tippe man braucht so etwa 15-40 Meßwerte die man haben muss ...
In den Schachprogrammen in der Suche kommen viele Konstante Zahlen vor, insbesondere dannbraucht man viele Meßwerte, da die kurve knicke wegen den fixen Konstanten Knicke macht, (Knicke in der 0,1,2 oder 3. Ableitung)
Du hast so wie ich das in einem der Ursprünglichen Beiträge von dir entnommen habe bisher nur einen einzigen Meßwert. Das ist viel zu wenig. Ich bin mir auch nicht so ganz sicher was du da gemacht hast, es kann sein dass die Methode falsch war.
Im Kern dreht sich diese Diskussion um die Frage, was ist besser: Sehr gute Bewertung (inkl. der Auswirkung von sämtlichen Prunings und Reductions) auf geringerer Tiefe, oder weniger gute Bewertung auf größerer Tiefe. Das ist nicht neu und es ist klar, daß es zwischen beiden Faktoren einen Trade-off gibt. Die Frage ist, wo ist die optimale Balance und durch welche Engine wird sie repräsentiert. - Es wäre schwer zu argumentieren warum eine andere als die jeweils Elo-beste Engine dieses Optimum repräsentieren sollte.
Das Gegensatzpaar hinsichtlich dessen scheint mir Critter und Stockfish zu sein.
[quote="Michael Scheidl"]
Im Kern dreht sich diese Diskussion um die Frage, was ist besser: Sehr gute Bewertung (inkl. der Auswirkung von sämtlichen Prunings und Reductions) auf geringerer Tiefe, oder weniger gute Bewertung auf größerer Tiefe. Das ist nicht neu und es ist klar, daß es zwischen beiden Faktoren einen Trade-off gibt. Die Frage ist, wo ist die optimale Balance und durch welche Engine wird sie repräsentiert. - Es wäre schwer zu argumentieren warum eine andere als die jeweils Elo-beste Engine dieses Optimum repräsentieren sollte.
Das Gegensatzpaar hinsichtlich dessen scheint mir Critter und Stockfish zu sein.
[/quote]
Naja, also zumindest was mich angeht, dreht sich die Diskussion um was ganz anderes, nämlich um die Frage, ob sich der relative Elozugewinn einer Engine mit mehr Bedenkzeit oder besserer Hardware umgekehrt proportional zum BF verhält. Ganz egal, wie die Suche bei dieser Engine implementiert ist oder wieviel Schachwissen sie hat. Da die Engine nur mit sich selbst verglichen wird, ist das ohne Belang.
Irgendwie schaffe ich es wohl leider nicht, das hinreichend klar zu erläutern...
Auch ließe sich aus dieser, meiner These - so sie denn stimmt (warten wir doch mal Andreas Strangmüllers Resultate ab!) - im Umkehrschluß folgern, daß Programme mit geringem BF bei weniger Bedenkzeit oder auf uralter Hardware überproportional Elo abbauen würden, weswegen ich eben meine, daß zu Brettcomputerzeiten ein Programm wie Stockfish gegen die damaligen Spitzenprogramme wohl übel eingegangen wäre, weil die damaligen Spitzenprogramme einen viel höheren BF hatten (und eben haben mußten!).
Sollten die Resultate von Andreas Strangmüller meine These untermauern, starte ich noch mal einen Versuch, das Ganze zu erläutern. Bis dahin lasse ich es jetzt mal gut sein. Vielleicht hab ich ja Unrecht, dann ist der Aufwand überflüssig.
Stefan
[quote="Stefan Pohl"]Sollten die Resultate von Andreas Strangmüller meine These untermauern...[/quote]Ich bin gespannt was weitere Beobachtungen zeigen.
Du findest deine These 'logisch', ich finde sie 'überraschend'.
Wenn der BF tatsächlich bei verschiedenen Bedenkzeiten einen unterschiedlichen Einfluss hat, dann hätte ich eher vermutet, das ein größerer BF bei längeren Zeiten vorteilhaft ist.
("Bei längeren Zeiten wird die Qualität der einzelnen Zuganalyse immer besser. Die schlechte 'Qualität' eines fehlerhaften spekulativen Cuts bleibt aber stets gleich." Sollte das nicht ein Grund sein, immer strenger darauf zu achten, dass kaum fehlerhaft Cuts autauchen?)
Gerade SF hat damit wohl auch wirklich mit fehlerhaften Cuts zu kämpfen. In erstaunlich vielen Partien kann man beobachten, wie SF eine Stellung z.B. bei Tiefe der Vollsuche ausgeglichen bewertet, dann macht der Gegner seinen Zug, und SF erkennt dann bei nur sehr wenigen(!) plys Tiefe, dass es schlecht um ihn steht. Ein Ergebnis eines spekulativen Cuts, der in die Hose ging? "Oh, den Antwortzug verfolgte ich nicht, der kam mir einfach zu blöd vor!"
Benno
[quote="Benno Hartwig"]
Du findest deine These 'logisch', ich finde sie 'überraschend'.
Wenn der BF tatsächlich bei verschiedenen Bedenkzeiten einen unterschiedlichen Einfluss hat, dann hätte ich eher vermutet, das ein größerer BF bei längeren Zeiten vorteilhaft ist.
Benno
[/quote]
Hi Benno,
Logisch und überraschend schließt sich ja nicht aus... Bevor ich eingehender über dieses Thema nachgedacht habe, hätte ich ad hoc wohl auch gemeint, daß ein höherer BF bei mehr Bedenkzeit besser ist. Inzwischen - auch dank meines Experiments, dessen Ergebnisse mich auch überrasht haben - bin ich aber zur gegenteiligen Meinung gekommen, und je mehr ich darüber nachdenke, desto überzeugter bin ich von diesem kausalen Zusammenhang. Auch habe ich auf playchess beobachtet, daß z.B. Ivanhoe bei längeren Bedenkzeiten bei mir sehr viel seltener noch umschwenkt, wenn es um den bestmöglichen Zug geht, als Stockfish.
Auch das knappe Ergebnis im TCEC-Finale mit seiner langen Bedenkzeit+der Super-Hardware, wo Stockfish praktisch gleichauf mit Houdini 3 war, gibt zu denken - wenn auch die geringe Partienzahl eine große Restunsicherheit bedeutet.
Wir werden hoffentlich klar sehen, wenn der Test von Andreas Strangmüller durch ist, da haben wir dann ja drei genaue Elolisten mit drei unterschiedlichen Bedenkzeitstufen...
Sollte auch dieser Test meine These bestätigen, hätten wir alle wieder was Neues über das Computerschach gelernt. Und das ist für mich einer der schönsten Aspekte an diesem eigentlich seltsamen Hobby: Obwohl ich mich nun seit mehr als 30 Jahren intensiv mit Computerschach beschäftige, kann ich imme noch etwas dazulernen und sogar überrascht weden. Welches Hobby bietet schon solche Reichhaltigkeit?
Stefan
Nitsche und Henne haben ein schachprogramm geschrieben das mit nur 1-3 NPS ein sehr gutes Schach spielte.
Das haben sie Geschafft indem das Programm einen sehr kleinen suchbaum gehabt hat. Mephisto 3 hatte eine 3 geteilte suche.
Das. Programm war also in der Lage durch viel Pruning genau die wenigen Äste zu verfolgen die relevant sind.
Sonst könnte das Programm gar nicht spielen. Dabei muss man sagen das die suche von nitsche und Henne schon damals den nullmove drin hatte, wenn das. Auch nicht so explizit verstanden wurde.
Gerade die Version auf motorola Hardware, also 16 Bit, spielt sehr gutes Schach. Und In den emulatoren die es schaffen teilweise sehr hohe Takte zu emulieren schneidet Mephisto III auch sehr gut ab. Mephisto III hat nicht umsonst einen Weltmeistertitel erhalten.
Das. Das. Enem kommerziellen Programm gelungen ist, auf normaler Hardware, und nicht einem Uni Projekt auf Großrechner ist für mich ein Zeichen der Intelligenz der Programmierer. Ich halte es für schlechten Stil die beiden hier zu verunglimpfen.
Sie haben dem computerchess sehr viel gegeben. Sind dann von h+g wie eine heiße Kartoffel fallengelassen worden. Und durch Richard lang ersetzt worden. Richard lang hatte dann irgendwann das Problem das seine Assembler Programme mit der Asymmetrie wohl sehr viele wms gewannen, er aber das eigentliche Programm nicht mehr wirklich verbessern könnte. Das wäre mit nitsche und Henne wahrscheinlich anders gewesen.