Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / SF-Wellengang bei verschiedenen mv-Werten
- - By Benno Hartwig Date 2014-04-05 23:44
Weil das SF-Verhalten für verschiedene MV-Werte auf mich irgendwie überraschend wirkt, habe ich Stockfish_14030213_32bit mit fester Tiefe 16 auf die Grundstellung angesetzt. Nacheinander setzte ich dabei MV auf 1,2,...20. Arena samt Engine habe ich jeweils neu gestartet.
Herausgekommen ist ein ziemlicher "Wellengang".          
Die Bewertungen und die Reihenfolgen der Züge schwanken für verschiedenen MV-Werte doch ziemlich doll.



     20    19    18    17    16     15    14    13    12     11    10     9     8     7     6     5     4     3     2     1

a3   0     0    -0,24  0    -0,05 -0,03  0,03 -0,08 -0,07 -0,05 -0,07 -0,11 -0,09           
a4  -0,29 -0,26 -0,28 -0,13 -0,37 -0,15 -0,29 -0,29 -0,31                     
b3  -0,46 -0,39 -0,45 -0,37 -0,32 -0,39 -0,29                         
b4  -0,77 -0,74                                   
c3  -0,05 -0,12  0    -0,02 -0,1  -0,13 -0,07 -0,26  0,01 -0,03 -0,24 -0,1  -0,18             
c4   0,16  0     0,06  0,21  0,07  0,1   0,18  0,06  0,14  0,18  0,01  0,22  0,12  0     0,11         
d3  -0,12 -0,11 -0,2  -0,15 -0,2  -0,17 -0,17 -0,06 -0,22 -0,19 -0,12 -0,19 -0,18             
d4   0,19  0,23  0,19  0,15  0,19  0,22  0,18  0,15  0,2   0,17  0,1   0,23  0,12  0,17  0,15  0,14  0,16        0,22 
e3   0,19  0,23  0,19  0,13  0,19  0,22  0,18  0,15  0,2   0,17  0,1   0,22  0,12  0,17  0,15  0,12  0,16  0,23   
e4   0,37  0,25  0,24  0,33  0,37  0,34  0,43  0,37  0,41  0,33  0,33  0,41  0,31  0,34  0,31  0,22  0,22  0,27  0,25  0,37
f3  -0,57 -0,69 -0,57       -0,56                             
f4  -0,2  -0,2  -0,16 -0,21 -0,2  -0,18 -0,21 -0,25 -0,21 -0,11 -0,26                 
g3  -0,24 -0,21 -0,13 -0,24 -0,16                             
g4  -0,85                                    
h3  -0,18 -0,24 -0,18 -0,31 -0,26 -0,17 -0,21 -0,23 -0,18 -0,16                   
h4  -0,33 -0,31 -0,31 -0,38 -0,34 -0,29 -0,34 -0,27                       
Sa3 -0,4  -0,45 -0,55 -0,37                               
Sc3  0,16  0,11  0,12  0,09  0,15  0,2   0,09  0,16  0,19  0,09  0,07  0,11  0,09  0,13  0,19  0,11       
Sf3  0,19  0,23  0,19  0,15  0,19  0,22  0,18  0,15  0,2   0,17  0,1   0,23  0,12  0,13  0,15  0,12  0,16  0,23   
Sh3 -0,44 -0,51 -0,46 -0,4        -0,4                           


Benno
Parent - - By Ingo B. Date 2014-04-09 15:21
Ich nehme an du hast das nicht als Single-Core gemessen. Falls doch, addieren sich vielleicht zwei Effekte.

Was passiert denn, wenn du dein Experiment X (beliebige größere Zahl) mal wiederholst. Ist der Wellengang dann unterschiedlich? Wenn ja, wissen wir, dass MP auch wieder eine Rolle spielt - und als Gegenprobe dann das Ganze mal mit einem Kern (sofern nicht schon geschehen).

Gruß
Ingo

PS: Nur weil du für das Experiment SF verwendet hast, sehe ich eigentlich nicht warum das hier stehen sollte. Es handelt sich schließlich um nichts SF spezifisches - oder? (z.B.: Welche SF Version ist am besten für Zeitkontrollen zw. 0.03 und 0.05s/min/h/d/... pro Zug/Spiel/Turnier in dieser oder jener GUI bei Vollmond )
Parent - - By Benno Hartwig Date 2014-04-09 21:56
Sorry, ich hatte vergessen zu schreiben, dass nur 1 core lief.
Und es war auch nicht Tiefe=16 sondern Tiefe=20

Und dann läuft es absolut reproduzierbar genau so wie es die Tabelle (oder eben die Wellenlieniengrafik) zeigt.
Ich hab eben noch mal überprüft:
MV=1: bester Zug e4 mit Wert +0,37 (genau wie in der Tabelle)
MV=5: beste Züge e4, d4, Sf3, e3, Sc3 mit den Werten +0.22, +0.14, +0.12, +0.12, +0.11 (genau wie in der Tabelle)
MV=20: jeder Zug und jeder Wert genau so wie in meiner Tabelle in der Spalte für MV=20

Mit core=1 sind auch größere MV-Werte deterministisch. Die Analysen lassen sich direkt exakt wiederholen.
Aber für verschiedene MV-Werte ändern sich andauernd die Bewertungen und ziemlich oft sogar auch die Reihenfolgen.
Das finde ich überraschend.

Naiv hatte ich mir naiv vorgestellt gehabt, dass der beste Zug und der Wert dafür bei allen MV-Werten gleich bleibt.
Und ab z.B. MV=5 würde auch jeder der besten 5 Züge gleich bleiben und gleich bewertet werden.
Ist aber nicht, nicht mal annähern, zumindest bei SF nicht.

Benno
Parent - - By Tom Paul Date 2014-04-10 06:22
Natürlich ändert sich die Bewertung ständig, du könntest auch ein halbes Jahr deinen Rechner laufen lassen und bekommst ständig etwas anderes angezeigt.
Übrigens gehört c4 in die TOP 5, Sc3 ist schlecht und wird mit -0.04 bewertet, könnte sich aber auch irgendwann ändern.
Parent - By Benno Hartwig Date 2014-04-10 08:14

> Natürlich ändert sich die Bewertung ständig, du könntest auch ein halbes Jahr deinen Rechner laufen lassen und bekommst ständig etwas anderes angezeigt.


Ich bin wohl immer noch nicht verstanden:
Ich rechne auf 1 core, immer mit demselben Stockfish, mit immer neu gestartetem Arena und immer bis zur festen Tiefe 20 (Im Arena eingestellt: Spielstufe einstellen: feste Suchtiefe: 20 Halbzüge)
Und ich variiere nur die MV-Werte (Multivariantenmodus)
Alles ist 100%ig reproduzierbar

aber für MV=1 (also normales Spiel, also die Aufgabe "Zeige mir den besten Zug wie du ihn bewertest.") sagt mir SF:
"Der beste Zug ist e4 mit dem Wert +0,37"

aber für MV=2 (also die Aufgabe "Zeige mir die besten beiden Züge und wie du sie bewertest.") sagt mir SF aber:
"Die besten beiden Züge sind e4 und d4 mit den Werten +0,25 und +22" (geänderter Wert für e4)

und für MV=3 (also die Aufgabe "Zeige mir die drei besten Züge und wie du sie bewertest.") sagt mir SF nun :
"Die besten Züge sind e4, e3 und Sf3 mit den Werten +0,27, +0,23 und +22" (geänderter Wert für e4, und der eben noch als zweitbester Zug gefundene d4 taucht bei den Top-3 nun nicht mal mehr auf)

Trotzt core=1 und jeweils gleicher fester Tiefe werden für verschiedene MV-Einstellungen reproduzierbar(!) andere Zugbewertungen gefunden, die auch Einfluss auf die Zugreihenfolge haben.
"Zeige mit die besten 3 Züge und ihre Werte" und "Zeige mit die besten 5 Züge und ihre Werte"
liefern auch für die besten 3 Züge unterschiedliche Angaben. Das überraschte mich.

Naiv hatte ich vermutet gehabt, wenn für MV=3 das Ergebnis wäre
e4, e3 und Sf3 mit den Werten +0,27, +0,23 und +22
dass dann für MV=2 herauskäme
e4 und e3 mit den Werten +0,27 und +0,23
und für MV=1 (oder MV=aus, wie es bei Arena benannt ist)
e4 mit dem Wert +0,27

Benno
Parent - By ? Date 2014-04-10 06:33
Benno Hartwig schrieb:

...
Naiv hatte ich mir naiv vorgestellt gehabt, dass der beste Zug und der Wert dafür bei allen MV-Werten gleich bleibt.
Und ab z.B. MV=5 würde auch jeder der besten 5 Züge gleich bleiben und gleich bewertet werden.
Ist aber nicht, nicht mal annähern, zumindest bei SF nicht.


OK, single core.

Ich benutze den MV Modus selten, ich lasse lieber mehrere Engines laufen. Finden die den selben Zug ist die Sache klar, sind die unterschiedlicher Meinung ist es interessant. Insofern habe ich mir wenig Gedanken über MV gemacht.
Interessant wäre nun diesesn Test, möglichst mehrmals, als MP durchzuführen um herauszufinden ob sich diese "Wellenbewegung" verstärkt oder abschwächt. Die meisten werden MV wohl als MP laufen lassen; für diese Leute wäre das ein interessantes Experiment.

Gruß
Ingo
Parent - - By Stefan Pohl Date 2014-04-10 07:46
Benno Hartwig schrieb:

Sorry, ich hatte vergessen zu schreiben, dass nur 1 core lief.
Und es war auch nicht Tiefe=16 sondern Tiefe=20

Und dann läuft es absolut reproduzierbar genau so wie es die Tabelle (oder eben die Wellenlieniengrafik) zeigt.
Ich hab eben noch mal überprüft:
MV=1: bester Zug e4 mit Wert +0,37 (genau wie in der Tabelle)
MV=5: beste Züge e4, d4, Sf3, e3, Sc3 mit den Werten +0.22, +0.14, +0.12, +0.12, +0.11 (genau wie in der Tabelle)
MV=20: jeder Zug und jeder Wert genau so wie in meiner Tabelle in der Spalte für MV=20

Mit core=1 sind auch größere MV-Werte deterministisch. Die Analysen lassen sich direkt exakt wiederholen.
Aber für verschiedene MV-Werte ändern sich andauernd die Bewertungen und ziemlich oft sogar auch die Reihenfolgen.
Das finde ich überraschend.

Naiv hatte ich mir naiv vorgestellt gehabt, dass der beste Zug und der Wert dafür bei allen MV-Werten gleich bleibt.
Und ab z.B. MV=5 würde auch jeder der besten 5 Züge gleich bleiben und gleich bewertet werden.
Ist aber nicht, nicht mal annähern, zumindest bei SF nicht.

Benno


Das Thema hatten wir hier doch schon mehrfach erörtert: Im MV-Modus sind die Alpha-Beta-Grenzen logischerweise weiter offen, weil ja nicht der beste Zug mit seiner Bewertung der Maßstab ist, sondern der letzte aus der MV-Liste. Ergo wird im Suchbaum weniger abgeschnitten und daher sind auch die Bewertungen anders. Und es werden ggf. auch Züge/Lösungen gefunden, die im Ein-Variantenmodus übersehen werden. Daher kann auch der beste Zug im MV-Modus ein anderer sein als im normalen Rechenbetrieb.
Das hat nichts mit Stockfish zu tun, sondern betrifft alle Engines, die den Alpha-Beta-Algorithmus nutzen, also de facto alle Engines. Zumindest glaube ich kaum, daß irgendeine Engine ohne den Alpha-Beta-Algorithmus auskommt...

Stefan
Parent - By Peter Martan Date 2014-04-10 08:11
Stefan Pohl schrieb:

Das hat nichts mit Stockfish zu tun, sondern betrifft alle Engines, die den Alpha-Beta-Algorithmus nutzen, also de facto alle Engines.


Ja, aber die einen mehr und die anderen weniger und natürlich stellungsabhängig.
Es kommt drauf an, was für Unterschiede im Suchbaum zwischen primary und non primary variants gemacht werden, zumindest ist meine programmiertechnisch naive Vorstellung, dass der MV Modus einfach mehrere Varianten, von denen alle bis auf eine sonst non primaries wären, zu primaries erhebt.
Parent - - By Benno Hartwig Date 2014-04-10 09:04

> Im MV-Modus sind die Alpha-Beta-Grenzen logischerweise weiter offen, weil ja nicht der beste Zug mit seiner Bewertung der Maßstab ist, sondern der letzte aus der MV-Liste. Ergo wird im Suchbaum weniger abgeschnitten und daher sind auch die Bewertungen anders.


Ich glaube nicht, dass das als Erklärung taugt.

Ein Zugwert, der innerhalb des alpha-beta-Fensters liegt, muss korrekt bestimmt werden, ganz egal, ob alpha-beta sehr eng oder sehr weit um diesen Wert herumliegen.
Und ein Zugwert außerhalb alpha-beta ist mit diesem Fenster gar nicht bestimmbar.
Bestenfalls kann man bei wert<alpha so was sagen wie "der echte Wert kann sogar noch viel kleiner sein!"
oder bei wert>beta eben: "der echte Wert kann sogar noch viel größer sein!"
Solche Werte werden uns aber wohl nie als "der Wert eines Zuges" angeboten.

Ich mutmaße eher, dass mit MV>1 mit spekulatives Cuts anders umgegangen wird.
Warum dann aber verschiedene, größere MV-Werte zu anderen Bewertungen führen, ist mir immer noch vollkommen unklar. Nochmals andauernd unterschiedlicher Umgang mit spekulativen Cuts? Hmmm...

Benno
Parent - By circular Date 2014-04-10 10:33
hi benno,

warum spekulierst du hier? du hast doch programmier kenntnisse. jedenfalls unendlich mehr als ich.

in den quelltexten müssen sich doch eindeutige hinweise dazu finden lassen wie spekulative cuts durchgeführt werden...

der quelltext von stockfish ist doch öffentlich zugänglich. da müsstest du doch fündig werden im gegesatz zu mir.

dann wäre dieses thema vom tisch.
Parent - - By Stefan Pohl Date 2014-04-10 10:57
Benno Hartwig schrieb:

Ich glaube nicht, dass das als Erklärung taugt.

Ein Zugwert, der innerhalb des alpha-beta-Fensters liegt, muss korrekt bestimmt werden, ganz egal, ob alpha-beta sehr eng oder sehr weit um diesen Wert herumliegen.


Eben nicht. Der Alpha-Beta Algorithmus findet nur den besten Zug in einer Stellung,in der Rechentiefe X (sofern sonst keine anderen Pruningarten zum Einsatz kommen), aber nicht unbedingt die bestmögliche Bewertung und auch nicht die bestmögliche Hauptvariante nach diesem ersten Zug. Letzteres wird in Kauf genommen, um eben viele Varianten abschneiden zu können. Das ist ja die Grundidee dieses genialen Algorithmus (habe ich eine Widerlegung gefunden, suche ich nicht nach einer weiteren (diese weitere Widerlegung könnte aber noch besser sein, damit ist klar, daß die Bewertung an dieser Stelle nicht korrekt sein kann)). Damit nimmt man aber in Kauf, daß die Bewertung des Zuges nicht unbedingt korrekt ist und auch die möglichen Fortsetzungen (also die folgenden Züge) nicht.
Für den ersten Zug der Hauptvariante und damit für die angezeigte Bewertung heißt das, daß der reale Stellungswert mindestens so gut ist, wie die angezeigte Bewertung, er könnte aber auch besser sein (schlechter aber natürlich nicht).
Diese mögliche Diskrepanz nimmt der Algorithmus in Kauf, denn er soll ja den besten Zug finden und ausspielen, nicht die bestmögliche und korrekte Bewertung desselben und auch  nicht die optimale weitere Fortsetzung. Das ginge nur ohne den Alpha-Beta-Algorithmus und mit dem kompletten durchrechnen aller möglichen Züge, was aber in der Praxis nicht zur Debatte steht, weil das den Rechenaufwand extrem erhöhen würde.

Stefan
Parent - - By Benno Hartwig Date 2014-04-10 11:37 Edited 2014-04-10 11:58
Obwohl du richtig zkizzierst, dass es im Kern darum geht, Widerlegungen zu finden, ist deine Schlussfolgerung, und da fühle ich mich sehr sicher, falsch.

Die durch den reinen alpha-beta gefundenen Cuts (also nicht Erweiterungen wie Nullmove-Logik etc.) liefern bei vorgegebener Tiefe genau denselben(!) besten Zug und genau denselben(!) Wert für diesen Zug wie das Minimax! Die durchgeführten Beschneidungen bedeuten bei alpha-beta tatsächlich keinen Verlust an Information bzgl. bester Zug und dessen Wert.

Diese Cuts laufen immer wieder auf ein sehr einfaches Prinzip hinaus, auch wenn es auf den ersten Blick komplizierter aussieht:

Beispiel:
- Du hast analysiert, dass du in einer Stellung mit Zug z1 Ausgleich behältst.
- Jetzt willst du gucken, ob z2 nicht ggf. besser ist.
- Du erkennst dass der Gegner auf z2 eine tolle Erwiderung hat, die dir einen Turm raubt.
- Und du weißt damit, dass dich nicht mehr interessiert, ob dein Gegner dir mit einer anderen Erwiderung ggf. sogar die Dame klauen kann. Andere Erwiderungen werden nicht mehr getestet (beta-Cuts)

Du schneidest, und deine Bewertung der aktuellen Stellung ("Ausgleich ") ist dadurch kein wenig unschärfer oder gar fehlerhaft geworden.
Alpha-beta vererbt diese Prinzip dann nur über mehrere Ebenen und regelt, dass es beide Seiten anwenden können.

Benno
Parent - - By Stefan Pohl Date 2014-04-10 12:47
Benno Hartwig schrieb:

Obwohl du richtig zkizzierst, dass es im Kern darum geht, Widerlegungen zu finden, ist deine Schlussfolgerung, und da fühle ich mich sehr sicher, falsch.

Die durch den reinen alpha-beta gefundenen Cuts (also nicht Erweiterungen wie Nullmove-Logik etc.) liefern bei vorgegebener Tiefe genau denselben(!) besten Zug und genau denselben(!) Wert für diesen Zug wie das Minimax! Die durchgeführten Beschneidungen bedeuten bei alpha-beta tatsächlich keinen Verlust an Information bzgl. bester Zug und dessen Wert.

Diese Cuts laufen immer wieder auf ein sehr einfaches Prinzip hinaus, auch wenn es auf den ersten Blick komplizierter aussieht:

Beispiel:
- Du hast analysiert, dass du in einer Stellung mit Zug z1 Ausgleich behältst.
- Jetzt willst du gucken, ob z2 nicht ggf. besser ist.
- Du erkennst dass der Gegner auf z2 eine tolle Erwiderung hat, die dir einen Turm raubt.
- Und du weißt damit, dass dich nicht mehr interessiert, ob dein Gegner dir mit einer anderen Erwiderung ggf. sogar die Dame klauen kann. Andere Erwiderungen werden nicht mehr getestet (beta-Cuts)

Du schneidest, und deine Bewertung der aktuellen Stellung ("Ausgleich ") ist dadurch kein wenig unschärfer oder gar fehlerhaft geworden.
Alpha-beta vererbt diese Prinzip dann nur über mehrere Ebenen und regelt, dass es beide Seiten anwenden können.

Benno


Du hast Recht. Ich hatte den reinen Alpha-Beta mit der (ursprünglich nicht zugehörigen) Erweiterung der aspiration windows durcheinandergeworfen.
Die Betrachtung des reinen Alpha-Betas macht bei der Auswertung der Anzeigen einer modernen Engine sowieso keinen Sinn mehr, weil ja mittlerweile zig andere Verfahren in diese Grundrekursion reingerührt wurden (Nullmove, singular Extensions, LMR etc. etc.).
Generell ist es aber beim MV so, daß eben die Beta-Grenze vom letzten Zug des MV definiert wird, anstatt vom besten Zug. Das bewirkt dann aber, daß der Suchbaum insgesamt weniger beschnitten wird. Und hier kommen dann wahrscheinlich eben die anderen Pruningverfahren ins Spiel. Wenn nun in dem größeren Suchbaum mehr Ruhesuchen, mehr singular extensions etc. stattfinden, können sich eben auch die Bewertungen verändern.

Stefan
Parent - - By Dithyrambus Date 2014-04-10 13:23
Ist es aber nicht so, dass im MV-modus die hashtables teilweise anders gefüllt werden als bei einer hauptvarianten?
So stehen auch für die variante an erster stelle hashwerte aus den berechnungen der 2., 3., 4. ... variante zur verfügung.
So kann dann auch mal eine bewertung in die hauptvariante durchschlagen, die bei nur einer varianten von alpha-beta aussortiert wurde.
Parent - By Stefan Pohl Date 2014-04-10 13:24
Dithyrambus schrieb:

Ist es aber nicht so, dass im MV-modus die hashtables teilweise anders gefüllt werden als bei einer hauptvarianten?
So stehen auch für die variante an erster stelle hashwerte aus den berechnungen der 2., 3., 4. ... variante zur verfügung.
So kann dann auch mal eine bewertung in die hauptvariante durchschlagen, die bei nur einer varianten von alpha-beta aussortiert wurde.


Sicherlich kann auch das eine Rolle spielen. Hatte ich noch gar nicht bedacht. Guter Punkt.

Stefan
Parent - By Benno Hartwig Date 2014-04-10 14:05

> So stehen auch für die variante an erster stelle hashwerte aus den berechnungen der 2., 3., 4. ... variante zur verfügung...


Aber ist es nicht so, dass die 'Variante an erster Stelle' dann entweder diesen Wert dann einfach selbst berechnet
oder aufgrund anderer Erkenntnisse weiß, dass dieser Wer den wert dieser Variante nicht beeinflussen kann ?

Aber OK, es ist schon denkbar: Wenn der Wert in der Hashtable ist, wird er auch hier gefunden und genutzt,
und wenn er dort nicht ist, überlegt die Engine ggf. einen spekulativen Cut, mit der Chance, hier eben einen Fehler zu machen.

Benno
Parent - - By Michael Scheidl Date 2014-04-10 08:33
Abgesehen vom Wellengang-Phänomen als solchem, finde ich hier interessant daß wiederum 1.e3 als guter Beginnzug aufscheint. Das ist nichts neues, aber mir ist keine Eröffnungstheorie zu 1.e3 bekannt. Gibt es hierzu spezifische Quellen?

Ich glaube mich zu erinnern, daß Kasparov einmal in einer Anticomputerpartie mit 1.e3 eröffnete. Bin aber nicht sicher bzw. irre mich vielleicht. Irgendwann hat er es jedenfalls gespielt.
Parent - By Thomas Müller Date 2014-04-10 08:54
habe in der CB-Datenbank 3x Kasparov gegen Fritz 3 gefunden, 5' Partien von 1994
+2 =0 -1
Es gibt sogar einige mehr gegen Shredder, King, Junior und Nimzo von anderen spielern.
Allgemein gibt es tausende partien die mit e3 beginnen, aber dann durch zugumstellung in bekanntes verzweigt.

gruß
thomas
Parent - - By Peter Martan Date 2014-04-10 19:08
Michael Scheidl schrieb:

Abgesehen vom Wellengang-Phänomen als solchem, finde ich hier interessant daß wiederum 1.e3 als guter Beginnzug aufscheint. Das ist nichts neues, aber mir ist keine Eröffnungstheorie zu 1.e3 bekannt. Gibt es hierzu spezifische Quellen?


In der chessbase corr.2013 kommt es an die 60x vor, davon schnell gezählte 50 Schwarzsiege und 2 Remis.
Parent - - By Hauke Lutz Date 2014-04-10 20:27
1. Zug e3 kann in Englisch oder der Meraner-Variante des Damengambits übergehen.
Also ist der Zug nicht so übel.
Parent - By Circular Date 2014-04-10 21:03
Man kann sogar 2. e4 spielen! Überraschung!
Parent - - By Frank Brenner Date 2014-04-10 14:22
Was auffällt ist, dass die Reihenfolge der Züge ( e4, e3, d4, sf3,sc4, c4  ..) so in etwa immer gleich bleibt; und die ist wichtiger als die bewertung.

Stockfish rechnet gar nicht vollständig bis tiefe 20, sondern lässst extrem viel aus, es wird etwa vielleicht nur  ein zehnmillionenstel aller Stellungen berechnet die ein vollständiger ab Durchlauf besuchen würde. Von daher entspricht die Bewertung des besten Zuges nicht der Bewertung eines vollständigen ab Durchlaufs.

Man kann beweisen, dass jedes auslassen auch nur einer einzigen Stellung aus einer vollständigen ab suche das Ergebnis (best zug) dieser so verkürzten suche verfälschen kann.
(Umgekehrt kann man beweisen dass der ab algorithmus exakt die gleiche bewertung und die gleiche hv und den gleichen best zug findet wie eine vollständige minimaxsuche, die quadratisch so viele Stellungen besucht)

Ein gutes Schachprogramm  - besser gesagt eine gute suche - zeichnet sich  dadurch aus, dass es wesentlich weniger Knoten als der ab algorithmus besucht , aber dafür möglichst häufig  der gleiche best-zug gefunden wird. (oder in diesem fall die reihenfolge der n-best züge möglichst identisch ist mit der reihenfolge die ein vollständiger ab durchlauf bringen würde)

Beliebig große Fehler werden von den Programmierern sehr gerne in der finalen Bewertung und in der HV in kauf genommen, da diese informationen irrelevant für die spielstärke sind.
Parent - - By Benno Hartwig Date 2014-04-10 15:13
Na, um so 0,2 Bauerneinheiten schwanken die Bewertungen einzelner Züge schon, und auch die Reihenfolgen ändern sich.
Es wurden auch bereits andere Stellungen hier präsentiert, bei denen eine Lösung (der beste Zug) mit erheblich anderer Bewertung z.B. erst ab MV=3 gefunden wurde.
Der normale Spielmodus scheiterte also, und auch MV=2 konnte nicht sehen, was MV=3 aber erkannte.
Hier, bei der Grundstellung, haben wir das 'Glück', dass e4 trotz aller Schwankungen immer auf dem ersten Platz bleibt, mal knapp, mal deutlich. OK.
Das ist aber wohl oft auch nicht der Fall.

Verstehe mich richtig: darin sehe ich natürlich kein Drama. Der Multivariantenmodus ist sicher kein kriegsentscheidendes Thema.
Ich war nur eben überrascht.
Und vielleicht gucke ich bei Gelegenheit mal, wie z.B. Houdini das handhabt.

Benno
Parent - - By Frank Brenner Date 2014-04-10 15:28

>Es wurden auch bereits andere Stellungen hier präsentiert, bei denen eine Lösung (der beste Zug) mit erheblich anderer Bewertung z.B. erst ab MV=3 gefunden wurde.


Das ist der Preis der extremen selektivität.

Aber unterm Strich ist stockfish besser als die alten engines von vor 20 Jahren die noch einen BF von 6 hatten, der in etwa exakt dem des ab Algorithmus entspricht.

Bei einem BF von unter 6 treten solche effekte stets auf.

Exakte gutachten über einzelne Phänomene sind ohne sehr detaillierte Kenntnisse des Sourcecodes und ohne zusätzliches vertieftes Studium des Phänomens anhand des Sourcde Codes unmöglich und ich bin sicher dass niemand auf der Welt der ein bischen von Stockfish versteht sich die mühe macht das auch noch zu analysieren.
Parent - By Benno Hartwig Date 2014-04-12 07:28

> Das ist der Preis der extremen selektivität.


Es mag ja sein dass das stimmt.
Ich staune dann aber sehr darüber, dass akzeptabel ist, dass die Züge nur auf +-0,1 Bauerneinheiten genau bestimmt sind.

Wenn ich im SF bewusste 'Verstimmungen' (die hier eigentlich gut wirken sollten) einbaute, die jeweils in der Größenordnung0,005(!) Bauern lagen, bekam ich oft schon spürbare Verschlechterungen.
'Verstimmungen' in der Größenordnung 0,03 ließen die Stärke dann meist schon grausam einbrechen.
Und nun tatsächlich irgendwie 'akzeptable Verstimmungen' in dieser noch mal deutlich größeren Stärke?
Womöglich Zugvergleiche in den Knoten, bei dem der eine Zug um 0,1 zu gut und der andere ähnlich stark zu schlecht bewertet wurde? *stirnrunzeln*

Benno
Parent - - By Benno Hartwig Date 2014-04-11 15:31 Edited 2014-04-11 15:35
Mein schönes Wellengang-Bild war weg.
Ich habe noch mal an eine andere Stelle geladen und verlinke es hier erneut.
Stockfish_14030213_32bit, 1 Kern, feste Tiefe 20, für Multivariantenmodus von 1 (ganz rechts) bis 20 (ganz links)
Jeder Zug hat eben hier seinen eigenen Wellengang, und e4 eben den längsten.



Ein munteres Rauf und runter!
Und SF mag sich beispielsweise so gar nicht recht entscheiden, ob eigentlich d4, e3, Sf3 oder auch Sc3 der zweitbeste Zug ist.
Benno
Parent - - By Michael Scheidl Date 2014-04-11 15:39
Etwas mehr Transparenz ließe sich erreichen, wenn Du nur die Top-4 darstellen würdest. Ich blicke hier nicht durch. Wo ist 1.d4?
Parent - By Benno Hartwig Date 2014-04-11 17:03
Ich habe für die Top-5 mal eine 3D-Darstellung generieren lassen.

Die Bewertungen sind halt (erstaunlich?) oft gleich, und die Verbindungslinien liegen dann hintereinander.
In der Grafik oben werden dann viele Abschnitte komplett übermalt.

Hier gewinnt man vielleicht leichter einen Eindruck.

Benno
Parent - - By Dithyrambus Date 2014-04-11 22:26 Edited 2014-04-11 22:32
Anhand dieser grafik verstehe ich jetzt erst, was du mit "wellengang" meintest.
Ist es aber nicht eher ein zickzackkurs um ingesamt doch relativ stabile mittelwerte? Das zeigt sich für mich auch daran, dass die reihenfolge der bewerteten zügen im großen und ganzen gleich bleibt. Sicher, es gibt ein paar sich überschneidende linien, aber nicht in hervorstechendem maße.

Das zickzackmuster ist aber lediglich eine auswirkung des MiniMax-prinzips.
Hat sich bei einer bestimmten rechentiefe ein besonders gutes maximum ergeben, haben im nächsten durchgang die minima viel bessere chancen sich durchzusetzen. Wurden in einer rechentiefe gute widerlegungen gefunden, haben also die minima sich durchgesetzt, kommt im nächsten ply die chance der maxima.
Anders ausgedrückt: Die wahrscheinlichkeit, dass der "gegner" der engine eine bessere erwiderung findet, ist bei hohem maximalwert recht groß. Er drückt das maximum also im neuen halbzug nach unten.
Umgekehrt: Hat der "gegner" die engine in einem halbzug auf einen niedriges maximum gedrückt, besteht eine erhöhte chance, beim nächsten ply eine verbesserte variante mit höherem maximum zu platzieren.

Das würde das schnell aufeinander folgende auf und ab erklären.

ps.
Jetzt komme ich vollkommen ins schleudern: Die x-achse gibt gar nicht die rechentiefe wider?????
Parent - - By Dithyrambus Date 2014-04-11 22:56 Edited 2014-04-11 23:33
Wer lesen kann, ist klar im vorteil. Mist!
MV=1 ist ganz rechts, MV=20 ganz links, also gewissermaßen spiegelbildlich.
Der zweite teil meines obigen beitrags hat also leider nichts mit dem dargestellten diagramm zu tun.
Parent - By Benno Hartwig Date 2014-04-12 07:21

> MV=1 ist ganz rechts, MV=20 ganz links, also gewissermaßen spiegelbildlich.


Ja, die Grafiken entsprechen der Tabelle im Eingangsposting.
Ganz links war MV=20, darum haben eben alle 20 Züge eine konkrete Bewertung erhalten.
Und ganz rechts bleibt dann nur noch der Zug e4 übrig (MV=1).

Benno
Parent - - By Circular Date 2014-04-12 11:15
Sehe ich das so richtig, dass e3 genau so gut wie d4 ist? Und sogar besser als c4?

Da stellen sich mir ein paar Fragen.
Parent - By Tom Paul Date 2014-04-12 12:30
Besser als c4 stimmt schon.
Aber schlechter als d4, Sf3 und e4.
Und wegen der Fragen, die Antwort ist einfach, die Menschen können besser Angreifen als Verteidigen.
Die Engines können beides gleich gut.
Deshalb ist e3 für Engines besser als c4.
Parent - - By Benno Hartwig Date 2014-04-13 09:42

> Sehe ich das so richtig, dass e3 genau so gut wie d4 ist?


Am besten ist das in der Tabelle im Eingangsposting zu sehen. Ziemlich gleich gut sieht SF wohl d4 und e3.
Aber je nach Aufforderung "Ey, zeige und bewerte mal die besten x Züge" beurteilt SF e3 und d4 gern mal unterschiedlich, meistens aber meist werden bei gleichermaßen etwas besser oder schlechter eingestuft.
Benno
Parent - - By Michael Scheidl Date 2014-04-13 13:38
Wenn ich richtig sehe, trat der größte Bewertungsunterschied bei e4 auf: 19 cp. Bei dieser Stockfishversion kann man vermutlich sagen, daß entspricht etwa 10 cp auf einer "normaleren" Bewertungsskala.

Ganz leuchtet mir das nicht ein, wieso die Bewertung desselben Zuges auf derselben Tiefe überhaupt abweicht... Auch wenn es immer heißt, Multi-PV führt zu einem anderen, und wie ich annehme stets breiteren Suchbaum. Doch was kümmert es den 1.e1-Ast, wenn noch andere zusätzlich angelegt werden?
Parent - By Benno Hartwig Date 2014-04-13 15:34

> Ganz leuchtet mir das nicht ein, wieso die Bewertung desselben Zuges auf derselben Tiefe überhaupt abweicht... Auch wenn es immer heißt, Multi-PV führt zu einem anderen, und wie ich annehme stets breiteren Suchbaum. Doch was kümmert es den 1.e1-Ast, wenn noch andere zusätzlich angelegt werden?


Hierüber hatte ich mich auch gewundert.
Zumal auch die Zugreihenfolge dadurch variiert.
Und zumal andere Stellungen mit weit größeren Änderungen (ein und derselbe Zug, bei gleicher Tiefe, 1core) hier gezeigt wurden.
Das motivierte mich zu dieser Testreihe.
Benno
Up Topic Hauptforen / CSS-Forum / SF-Wellengang bei verschiedenen mv-Werten

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill