Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / alternative Evals in % (Gewinnwahrscheinlichkeit)
- - By Michael Scheidl Date 2011-10-19 10:04 Edited 2011-10-19 10:13
Die im Computerschach seit jeher übliche Form der Stellungsbewertung in Bauerneinheiten* beinhaltet Interpretationsprobleme.

*) eine Umsetzung in traditionelle Bewertungssymbole durch eine GUI spielt hierbei nur eine Nebenrolle

Derzeit ist es wie folgt:

1. Man sieht die Bewertung einer zukünftigen (Eventual-)stellung am Ende der Hauptvariante, welche die Engine für die beste Fortsetzung hält.

(Die GUI von "Der Bringer" zeigt zusätzlich die statische Bewertung der Brettposition an, was ich für recht interessant halte.)

2. Positionelle, evtl. dynamische und sonstige nicht direkt materielle Faktoren werden auf einer Materialskala abgebildet, d.h. symbolhaft durch Materialwerte ausgedrückt.

3. Die Größenordnung der Zahlenwerte kann von Engine zu Engine (z.T. sehr) unterschiedlich gehandhabt werden, wodurch z.B. eigentlich übereinstimmende Stellungsbeurteilungen zu sehr unterschiedlichen Bewertungszahlen führen können.

Mein Vorschlag würde zwar an diesen drei Punkten nicht prinzipiell etwas ändern, brächte aber eine Verbesserung der Interpretierbarkeit sozusagen:

neue, zusätzliche oder alternative Stellungsbewertung, ausgedrückt in

Prozent der Gewinnwahrscheinlichkeit


Hierbei schwebt mir vor, daß (a) Engines ihre eigene Umrechnungstabelle enthalten - "intern" würden sie sicherlich bis auf weiteres die Materialskala benützen - und ersatzweise (b) Interfaces eine plausible allgemeine Umrechnungstabelle führen, für Engines die selbst noch keine Gewinnprozent ausgeben.

Den Vorschlag habe ich vor einigen Tagen im CCC gepostet, wo das nur geringes Echo auslöste.

http://talkchess.com/forum/viewtopic.php?&t=40412&topic_view=flat

Der Einwand daß die Gewinnwahrscheinlichkeit bzw. Verwertbarkeit eines bestimmten Vorteils von der Zeitkontrolle (IMO eigentlich von der Rechentiefe) abhängt, was meines Erachtens sicherlich in gewissen Graden stimmt, hat aber wohl nichts damit zu tun ob man eine Bewertung nachher auf % umrechnet oder nicht. D.h. das trifft ja jetzt auch schon zu, und ich kann mir vorstellen daß einige Engines das so machen. Also Bewertungsfaktoren daran anpassen, auf welcher Rechentiefe diese vorgefunden werden, je später desto größer. Aber das ist reinste Spekulation.

Für Rybka 3 und -2 hat L.Kaufman im Rybkaforum folgende Angaben zur Prozentumrechnung gemacht:

http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=73105;hl=expected%20percentage

(Sollte man sicherlich nicht verallgemeinern, wenn die individuellen Engine-Skalen so unterschiedlich sind wie es jüngst beobachtet wurde.)
Parent - - By Michael Scheidl Date 2011-10-19 10:21
(Ich führe den letzten Punkt noch etwas genauer aus.)

Für Rybka 3 und -2 hat L.Kaufman im Rybkaforum folgende Angaben zur Prozentumrechnung gemacht:

http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=73105;hl=expected%20percentage

Also das wäre für Rybka 3: 50% + 100*E/3 (aber für Rybka 2 eher: 50% +100*E/2)

Wobei er meinte, daß das nur innerhalb +/- 1,00 recht genau ist, und über 1,50 rechnerisch sinnlos, da >100% wird. - Sollte man sicherlich nicht verallgemeinern, wenn die individuellen Engine-Skalen so unterschiedlich sind wie es jüngst beobachtet wurde.
Parent - - By Peter Martan Date 2011-10-19 11:35 Edited 2011-10-19 11:37
[quote="Michael Scheidl"]
Also das wäre für Rybka 3: 50% + 100*E/3 (aber für Rybka 2 eher: 50% +100*E/2)

Wobei er meinte, daß das nur innerhalb +/- 1,00 recht genau ist, und über 1,50 rechnerisch sinnlos, da >100% wird. - Sollte man sicherlich nicht verallgemeinern, wenn die individuellen Engine-Skalen so unterschiedlich sind wie es jüngst beobachtet wurde.
[/quote]

Aber deckt sich eigentlich schon mit dem, was chessbase- Nomenklatur halt so ist, über 1.40 +-.
Ich glaube halt, Michael, wie auch immer du das umrechnest oder umrechnen lässt, die Bewertung, die die engine intern hat, wird immer dieselbe mehr oder weniger verlässliche sein.
Nun sind wir CSler wenigstens schon gewöhnt daran, bei bestimmten engines bestimmte Zahlenwerte zu interpretieren, das könnte uns einerseits ein GUI feature abnehmen, dann müsste das GUI aber wieder wissen, welche engine das ist und dementsprechend nacheichen.


Mich stört immer am meisten, dass zwar, wie du auch schreibst, die eval für eine bestimmte als HV im output angezeigte Variantenlänge gilt, man könnte also der Meinung sein, an deren Ende, ist die aber etwas länger, wird die Chance, dass die eval nach dem Einfügen der ganzen HV noch annähernd dem entspricht, was da in der Daueranalyse am Anfang steht, immer kleiner.
Automatisch wird das ja auch in der backward analysis von den meisten GUIs ans Ende der ausgedruckten Alternativvariante geschrieben, stimmt auch bei den wenigsten engines mit dem überein, was im Dauerrechnen am Anfang erzählt wird.
Tatsächlich kann die engine im Analysemodus ja auch nur den ersten Halbzug halbwegs korrekt bewerten, sie sollte also entweder nicht so tun, als würde sie sich auf die gesamten HV- Halbzüge verlassen, oder weniger HZ HV angeben.
Ist etwas sophisticated aber nicht ganz egal, ich versuch's andersrum:

Es ist auch wieder je nach engine sehr verschieden, Rybka z.B. hält sich am Ehesten an das, was er verspricht, mit anderen Worten, gibt keine Halbzüge als HV aus, die er nicht schon halbwegs sicher bewerten kann, andere wie Stockfish konfabulieren gerne Züge herunter, vor denen ihnen selbst sofort graust bewertungsmäßig, wenn sie sie selber ausgespielt haben.

Was ich mir also wünschen würde, wäre mehr output- Disziplin sozusagen, was die HV- Länge angeht und die zahlenmäßigen evals.
Die output- Varianten sind natürlich auch davon stark abhängig, wo mehr statische und wo mehr dynamische Werte zählen, wie taktisch oder positionell die Stellung ist.
In Fällen von fail high oder low dauert ohnehin bei allen die HV oft lang, sowas auch bei positionell stark schwankenden Bewertungen ab dem Knoten, ab dem es auffächert, wäre eine zusätzliche Aussage, die die Bewertungen besser relativieren ließe.
Eine Bewertung der Bewertung durch den Menschen wird ohnehin immer notwendig sein.
Parent - By Peter Martan Date 2011-10-19 11:55
[quote="Peter Martan"]
Automatisch wird das ja auch in der backward analysis von den meisten GUIs ans Ende der ausgedruckten Alternativvariante geschrieben,
[/quote]
Ooops, stimmt ja gar nicht, im Shredder GUI steht das am Anfang der automatisch ausgeworfenen backward analyisis- Varianten, nach dem ursprünglichen und nach dem ersten HZ der Alternativvariante. Find ich realistischer.
Parent - - By Benno Hartwig Date 2011-10-19 16:58
[quote="Michael Scheidl"]Prozent der Gewinnwahrscheinlichkeit[/quote]Ich vermute, du meinst damit aber nicht, die Wahrscheinlichkeit für einen Gewinn, richtig?
Die fänd ich auch gar nicht so toll, denn eine  bestimmte positionelle Verbesserung bei recht guter Stellung würde wohl eine größere Differenz ergeben als eine entsprechende Verbesserung bei schlechter Stellung (weil die Chance auf einen echten Partiegewinn hier gleichwohl nur wenig über 0% liegen).
Ich denke, du meinst eher sowas wie einen Erwartungswert auf die Punktausbeute in dieser Partie, gern in % ausgedrückt.

Man wird festlegen müssen, gegen wen diese Erwartung gelten soll, vermutlich gegen die Engine selbst. Richtig?

Benno
Parent - - By Michael Scheidl Date 2011-10-19 17:27 Edited 2011-10-19 17:31
Zitat:
Ich vermute, du meinst damit aber nicht, die Wahrscheinlichkeit für einen Gewinn, richtig?

Doch, genau das - warum auch nicht? Die jeweiligen Programmierer können sich darüber eine Meinung bilden, und das eventuell auch auf statistische Weise auf Testpartien gründen. Wieviel ein bestimmter positioneller oder sonstiger Faktor jeweils, in Abhängigkeit von der Gesamtsituation, Wert ist kann sich die Engine ohnehin selber ausknoblen wie schon bisher. Daran würde sich ja gar nichts ändern müssen.

Den Gegner würde ich nicht miteinbeziehen, dann das ist spekulativ und die Engines haben im allgemeinen auch keine Information darüber, wenn sie nicht explizit dafür Programmiert sind*. Normalerweise sollte eine Engine einen "perfekten" Gegner annehmen; welche Züge von diesem zu erwarten sind kann diese natürlich nur innerhalb des eigenen Erkenntnishorizontes annehmen.

*) Das gab es u.a. seinerzeit bei WinBoard-Nimzo; irgendwelche deutliche Auswirkungen oder bemerkenswerte Beobachtungen mit diesem Gegnertyp-Setting sind m.W. nicht bekannt geworden. Ein anderes Beispiel wäre der "Lucky punch mode" von Hossa, um zu Gunsten von eventuellen Glücktreffern in an sich verlorenen Positionen vom "perfekter Gegner"-Prinzip abzuweichen und diesem mehr Gelegenheit für Fehler zu geben soweit ich das verstanden habe, aber auch davon habe ich keine Beispiele zur Hand.
Parent - - By Peter Martan Date 2011-10-19 18:35
[quote="Michael Scheidl"]
Die jeweiligen Programmierer können sich darüber eine Meinung bilden, und das eventuell auch auf statistische Weise auf Testpartien gründen. Wieviel ein bestimmter positioneller oder sonstiger Faktor jeweils, in Abhängigkeit von der Gesamtsituation, Wert ist kann sich die Engine ohnehin selber ausknoblen wie schon bisher. Daran würde sich ja gar nichts ändern müssen.
[/quote]

Wenn aber dann die interne Stellungsbewertung eines Zuges zum Unterschied des nächst schlechter sortierten erst wieder nur so wie bisher funktioniert, Michael, finde ich eine Umrechnung in prozentuelle Gewinnwahrscheinlichkeit schon etwas viel verlangt, oder es ist erst wieder nur ein anderer Zahlenwert, der herauskommt, der meiner Meinung nach auch nur soviel aussagt, wie man ihn interpretiert.

Was ich optimal fände, wäre eine Aufschlüsselung der Bewertung nach Kriterien, nach denen die engine selbst evaluiert, materielle und positionelle. Sowas müsste man immer noch interpretieren, aber man hätte mehr Anhaltspunkte über das, was die engine rechnet und wie sie zu ihrem Ergebnis kommt.
Kann aber natürlich sein, dass das ein Programmierer nicht gern sähe, wenn man die Bewertung zu genau nachvollziehen könnte, andererseist in Zeiten, in denen es ohnehin keine code- Geheimnisse mehr gibt...

Verbale Stellungsbeurteilung wäre natürlich überhaupt ein Fernziel, insbesonders vom Schachpädagogischen her. Ich kenne ja jemanden, der arbeitet an sowas, hab übrigens lang nichts mehr gehört von ihm, falls er mitliest, das letzte Mail ist unbeantwortet geblieben, vielleicht stimmt die Adresse nicht mehr?
Parent - By Michael Scheidl Date 2011-10-19 18:49
Zumindest hätten wir (zusätzlich, oder alternativ) Bewertungen, die sich alle innerhalb derselben Bandbreite von -100%...+100% befinden müßten.

Die Idee, die erwartete Materialbilanz am Ende der berechneten Hauptvariante darzustellen, halte ich für sehr gut! Das kann für den User sehr aufschlußreich sein, etwa bei spannenden kombinatorischen Fortsetzungen wo die Gesamtbewertung deutlich positiv aber die Materialbewertung negativ ist, usw.usf.

In den Interfaces ist sicherlich dafür Platz, wenn man das konfigurierbar macht. Auf Hashauslastung z.B. kann ich verzichten. Das, sowie auch die CPU-Auslastung könnte man auch nur zum Abschluß der Berechnung beim Engineoutput auswerfen; die brauchen nicht unbedingt ein eigenes Feld.
Parent - - By Benno Hartwig Date 2011-10-19 19:51 Edited 2011-10-19 19:53
[quote="Michael Scheidl"]
Zitat:
Ich vermute, du meinst damit aber nicht, die Wahrscheinlichkeit für einen Gewinn, richtig?
Doch, genau das - warum auch nicht?
Weil ich die Aussagekraft der reine Wahrscheinlichkeit auf Gewinn unbefriedigend finde.
Extremes Beispiel (und du wirst sicher praxisnähere erdenken können):

a)
Ich stehe besser: König+Turm gegen König+Läufer --> irgendeine Gewinnwahrscheinlichkeit kleiner als 100%, Vielleicht auch nur 0%, ganz nach deinem Geschmack.
Nun gelingt mir eine Abwicklung zu König+Turm gegen König --> Gewinnwahrscheinlichkeit 100%
Wohl ein großer Bewertungszuwachs. Juchu!

b)
Ich stehe schlechter König+Läufer gegen König+Turm --> Gewinnwahrscheinlichkeit 0% (oder würdest du mir mehr geben?)
Nun raubt mir mein Gegner auch noch den Läufer, und ich befürchte, dass meiner Chancen dadurch nicht gewachsen sind.
Bewertungsverschlechterung=0%

Also zwei völlig symmetrische Situationen, mit höchst unterschiedlichen Bewertungsveränderungen.
Mir gefällt sowas nicht. Gefällt es dir?

c)
Und noch schlimmer:
König gegen König+Turm --> Gewinnwahrscheinlichkeit 0%
"Juchu, der Gegner macht einen Fehler, ich kann seinen Turm rauben! "
--> König gegen König, Gewinnwahrscheinlichkeit 0%, die Bewertung verbesserte sich nicht.
Findest du das passend?

Ich meine, solch eine Wahrscheinlichkeiten-Idee kann nur befriedigend weiterentwickelt werden, wenn zumindest die Wahrscheinlichkeit auf Remis ebenfalls berücksichtigt wird.

Darum schlage ich den

        Erwartungswert der Gewinnausbeute (p_verlust*0 + p_remis*0.5 + p_gewinn*1)

als Evaluierungswert vor. p_gewinn allein taugt meiner Meinung nach überhaupt nicht.

Zitat:
Den Gegner würde ich nicht miteinbeziehen, dann das ist spekulativ und die Engines haben im allgemeinen auch keine Information darüber, wenn sie nicht explizit dafür Programmiert sind*. Normalerweise sollte eine Engine einen "perfekten" Gegner annehmen;
Das haut wohl nicht hin.
Eine  Engine z.B. auf Fritz-1-Niveau würde wohl auch mit einem Bauern Vorsprung kaum gegen Houdini gewinnen, gegen einen perfekten Gegner schon gar nicht. Houdini könnte die Situation im Spiel gegen sich selbst abschätzen, und würde auch mit Bauernvorsprung gegen den perfekten Gegner meist verlieren. Und gegen Fritz-1 meist gewinnen, auch wenn Houdini 1 Bauern hinten liegt.
Nein, wir müssen was sehr Konkretes zum Gegner sagen. Darum schlug ich vor: Jede Engine bewertet die mit der Stellung verbundenen Wahrscheinlichkeiten unter der Annahme, dass sie sie gegen sich selbst spielt.
Der Wert soll ja auch eine Stellungsbewertung sein und nicht die Abschätzung der Enginespielstärke gegen eine hypothetische perfekte Maschine, zumal deren Eigenschaften auch erstmal definiert werden müssten.

Benno
Parent - - By Michael Scheidl Date 2011-10-19 20:25 Edited 2011-10-19 20:29
Zitat:
Nein, wir müssen was sehr Konkretes zum Gegner sagen. Darum schlug ich vor: Jede Engine bewertet die mit der Stellung verbundenen Wahrscheinlichkeiten unter der Annahme, dass sie sie gegen sich selbst spielt.

Das ist doch genau dasselbe wie einen "perfekten" Gegner zu erwarten. Denn über diesen kann ja eine Engine nichts besseres wissen, als was sie selbst als bestmögliche Gegenzüge zu ermitteln in der Lage ist.

Mit anderen Worten, die Engine rechnet mit einem Gegner der genausoviel sieht wie sie selbst, und rechnet nicht mit einem Fehler (Spezialfälle wie "Lucky Punch" ausgenommen).

Zu Deinen anderen Beispielen kann ich nur sagen: Wenn ein Endspiel remis war und durch Veränderung des Materialverhältnisses remis bleibt, was ist dann daran falsch daß sich die Gewinnwahrscheinlichkeit von 0% nicht geändert hat? Und wenn sie vorher 100% war (bei KT-KL gibts dazwischen sinnvollerweise nichts) dann hat eben entweder die Turmseite irgendwann einen Gewinn verschenkenden Fehler gemacht, oder die 100%-Bewertung der Engine war zuvor irrig. Aber in beiden Fällen ist der Bewertungssprung nicht unlogisch nach Erkenntnisfähigkeit der Engine. "Äußere" Kriterien fließen hier nicht ein, denn wir reden von Gewinnwahrscheinlichkeiten laut Bewertung der Engines, mit der ganzen Fehlerbandbreite die es halt gibt...

(Letzteres ist natürlich ein vereinfachtes Beispiel, das die Tablebases ignoriert. Normalerweise wird die Logik nur früher greifen und spätestens bei Tbs.-Material obsolet sein.)
Parent - - By Benno Hartwig Date 2011-10-19 23:19 Edited 2011-10-19 23:23
Zitat:
Das ist doch genau dasselbe wie einen "perfekten" Gegner zu erwarten.
Gewinnaussichten gegen sich selbst und gegen den perfekten Gegner ist 'dasselbe'? Wow! Naja, wir müssen das ja nicht gleich sehen.
Hauptsache, wir sehen gemeinsam, dass die eigenen Bewertung für beide Seiten das Maß sein kann.

Zitat:
Wenn ein Endspiel remis war und durch Veränderung des Materialverhältnisses remis bleibt, was ist dann daran falsch daß sich die Gewinnwahrscheinlichkeit von 0% nicht geändert hat?

So war mein Beispiel ja nicht.
remis wurde mit 0% gewertet, verlust mit 0%, gewinn mit 100%
Der wechsel von remis zu verlust brachte keine Bewertungsänderung, der von remis zu gewinn aber schon.
Sowas unsymmetrisches empfinde ich als Stellungbewertung gänzlich untauglich. Dafür brachte ich das Beispiel.
Der Schluß bleibt auch ganz ähnlich, wenn jemand für K+T versus K+L etwas anderes als 0% ansetzt.

BTW:
Ich hatte es mit einem so einfach Beispiel geschrieben. Klar.
Ein wenig hatte ich schon versucht an die Phantasie zu appelieren, die das auf realistischere Szenarien hebt. Stellungen, in denen sich alles zwischen verlieren und remis abspielt (ohne realistische Gewinnchance, egal ob remis oder verlust), und dieselben Stellungen von der anderen Seite aus betrachtet, bei der sich alles zwischen remis und gewinn abspielt, mit sehr erheblichen Bewertungsunterschieden im Bereich des Möglichen.
Zahlenmäßige Einschätzungen der Gegner, die sich kaum miteinander in Verbrindung bringen lassen, da sie gänzlich andere Dinge beschreiben. Denn jeder beschreibt seine eigene Gewinnwahrscheinlichkeit, und damit aus seiner Sicht die Verlustwahrscheinlichkeit des Gegners.

p_gewinn allein ist meiner Meinung nach daher völlig untauglich für eine Bewertung.
Viel lieber sollte über sowas wie

     p_verlust*0 + p_remis*0.5 + p_gewinn*1  (mit Werten zwischen 0 und 1)

nachdenken, oder besser formuliert:

     p_remis*50 + p_gewinn*100 %   (dann mit Werten zwischen 0% und 100%)

50% kann dann bedeuten
"Die Engine erkennt das sichere Remis!" oder
"Die Engine erkennt, dass gewonnen oder verloren wird, mit gleichen Chancen, remis ist unmöglich!" oder
"Die Engine meint, mit 50%-Wahrscheinlichkeit wird es remis, Sieg oder Niederlage kommen mit je 25%!" oder
...
Das könnte aus meiner Sicht Sinn machen.

Benno
Parent - - By Michael Scheidl Date 2011-10-20 00:16
Ach so; ich glaube das ist einfacher: Praktisch sicherer Verlust für Weiß ist -100% - also +100% für Schwarz - und remis ist 0% (entsprechend 0.00). Ich schreibe ja schon dauernd, die Skala wäre -100%...+100%, nicht 0%...100%. Negative Werte zu Ungunsten von Weiß entsprechen ja auch der bisherigen Bewertungslogik. Also gibts überhaupt kein Problem remisliche Bewertungen von Verlustbewertungen zu unterscheiden.
Parent - - By Benno Hartwig Date 2011-10-20 07:11 Edited 2011-10-20 07:17
[quote="Michael Scheidl"]-100% - also +100% für Schwarz - und remis ist 0% [/quote]Sorry, da hatte ich dich dann falsch verstanden.
Klar, so macht das wohl Sinn. und -100%...+100% ist vermutlich auch anschaulicher als mein 0%...100%
Wie würdest du diesen Zusammenhang sehen wollen zu p_verlust, p_remis und p_gewinn?
Vielleicht sowas wie: p_verlust*(-100%) + p_remis*0% + p_gewinn*(+100%) = 100%*(p_gewinn - p_verlust)
Benno
Parent - - By Peter Martan Date 2011-10-20 09:07 Edited 2011-10-20 09:16
[quote="Benno Hartwig"]
[quote="Michael Scheidl"]-100% - also +100% für Schwarz - und remis ist 0% [/quote]Sorry, da hatte ich dich dann falsch verstanden.
Klar, so macht das wohl Sinn. und -100%...+100% ist vermutlich auch anschaulicher als mein 0%...100%
Wie würdest du diesen Zusammenhang sehen wollen zu p_verlust, p_remis und p_gewinn?
Vielleicht sowas wie: p_verlust*(-100%) + p_remis*0% + p_gewinn*(+100%) = 100%*(p_gewinn - p_verlust)
[/quote]

Mach's für mich mal wieder lieber nicht zu kompliziert, Benno, mir geht auf der rechten Seite deiner Gleichung einfach das p_remis*0% von der linken Seite ab, wo ist das unterwegs hingekommen?
Oder meinst du, es spielt deshalb keine Rolle, weil's mal 0% ist?

Und nur, weil wir gerade darüber reden, wie siehst du den Zusammenhang mit eval am Anfang und eval am Ende einer Analyse- output-HV?

Natürlich sieht die engine keine besseren Züge zur Bewertung der Ausgangsstellung als die, die sie als HV hinschreibt (mal von fail low oder high abgesehen, in der Übergangszeit, bis es aufgelöst ist, und sich dann erst die HV ändert), hat also keine bessere Handhabe zur Bewertung als das Ende der HV.

Wie sicher sie aber die einzelnen Züge als best moves sieht, das könnte doch noch irgendwie eingehen.
Rybka macht da im Fritz-GUI gern diese kleinen Quadrate hinter den Zügen, die normaler Weise "einziger Zug" in der Kommentarpalette heißen.
Sowas hieße doch genau das: die Bewertung nach diesem Zug ist genau gleich der davor, oder?
Ein Maß für ein Ausmaß an zwingend einer Bewertung vor einem Zug.
Wäre eine Stellung unmittelbar vor einem solchen Zug zu bewerten, könnte die engine unmittelbar hinter diesem Zug, den sie für eine solchen "einzigen" hält, das entsprechende Symbol schreiben, wie Rybka das ja sogar tut, zum Unterschied davon ein Istgleich als Zeichef für "äquivalent ist", beides vielleicht sogar eher vor den Zug?
Dann wüsste man, gut, HV, aber nur bis hierher oder gar nicht forciert, ab da oder von Anfang an reines Rätselraten.

Ich will ja nicht so weit gehen, mir zu wünschen, dass außer den Bewertungskriterien auch noch nach jedem HV- Zug eine eigene eval stehen sollte, vielleicht noch eine Zahl der in einer bestimmten range von sagen wir 50cp rangierenden Alternativzüge...
Könnte ich mir aber was wünschen, dann sowas.
Hätte man überhaupt bei jedem HV- Zug auch gleich eine Liste der innerhalb der (fei wählbaren ) eval- Abstände gelisteten Alternativzüge, das wär ein Analyse- output, hmh?
Parent - - By Benno Hartwig Date 2011-10-21 10:19 Edited 2011-10-21 10:24
Zitat:
Oder meinst du, es spielt deshalb keine Rolle, weil's mal 0% ist?
Ja. Beide Ausdrücke liefern dasselbe. Der erste ist übersichtlicher, der zweite kürzer.

Zitat:
wie siehst du den Zusammenhang mit eval am Anfang und eval am Ende einer Analyse- output-HV?
Was meinst du damit?
Während der Analyse wird die HV ständig aktualisiert, und sie hat jeweils eine einzige Bewertung. (zu diesem Zeitpunkt eben "eval am Ende")
Nur was meinst du mit "eval am Anfang"?

Zitat:
Rybka macht da im Fritz-GUI gern diese kleinen Quadrate hinter den Zügen, die normaler Weise "einziger Zug" in der Kommentarpalette heißen. Sowas hieße doch genau das: die Bewertung nach diesem Zug ist genau gleich der davor, oder?

Nein, das denke ich nicht. Damit hat es nichts zu tun. Die Bewertung eines Zuges änderts sich im Allgemeinen mit jeder Suchtiefenänderung. Ganz egal, ob nur ein Zug legal ist, ob nur ein Zug vernünftigerweise in Frage kommt, oder ob ganz viele ungefähr gleichgute Züge da sind.

Was soll das 'einziger Zug' denn bedeuten?
(I) Dass nur ein legaler Zug möglich ist?
(II) Oder dass nur einer in Frage kommt, weil alle anderen wirklich Mist sind?

(II) würde bei vollständigem Minimax direkt daran erkannt werden, dass der beste Zug deutlich besser ist als jeder andere.
Wir haben aber tatsächlich immer eine alpha-beta-Variante, und da ist es ggf. schwieriger (dafür aber deutlich schneller )
Ein beta-cut wird durchgeführt, sobald ein Zug wenigstens etwas nach oben aus dem alpha-beta-Fenster hinausführt ("zu gut ist"). Ob ein anderer noch viel weiter hinausführen würde wird dann nicht mehr geprüft.

Beispiel:
Annahme: zwei Züge z1 und z2 sind legal
z1 führt ungefähr zu einer ausgeglichenen Stellung.
z2 ermöglich dem Gegner mit Antwort a1 für ihn leichten Vorteil zu erreichen. --> beta-cut, ohne Prüfung weiterer Antwortzüge wird z1 als besser als z2 erkannt!
Da aber ggf. ein weiterer Antwortzug a2 auf z2 existiert, der dem Gegner sogar einen großen Vorteil bringt, bleibt in diesem Beispiel völlig unklar, ob z1 ggf. der einzige vernünftige Zug war.
Nur wenn die wenigen untersuchten Antwortzüge schon glücklicherweise jeweils eine sehr deutliche Widerlegung gebracht hätten, hätte ich auch bei alpha-beta bereits erkannt, dass z1 der einzige vernünftige Zug ist. Dank der Zugsortierung (Erfolgversprechendes zuerst!) gelingt dies ggf. aber auch recht oft.

Die Betrachtung der jeweils ausgegebenen Hauptvarianten mit ihren Bewertungen gestattet solch einen Schluss aber nicht!

Benno
Parent - - By Peter Martan Date 2011-10-21 11:24 Edited 2011-10-21 11:28
[quote="Benno Hartwig"]

Zitat:
wie siehst du den Zusammenhang mit eval am Anfang und eval am Ende einer Analyse- output-HV?
Was meinst du damit?
Während der Analyse wird die HV ständig aktualisiert, und sie hat jeweils eine einzige Bewertung. (zu diesem Zeitpunkt eben "eval am Ende")
Nur was meinst du mit "eval am Anfang"?


Bevor der erste HZ der HV ausgeführt wird, also einfach genau dort, wo der output ausgeputtet wird.

[quote="Benno Hartwig"]
Zitat:
Rybka macht da im Fritz-GUI gern diese kleinen Quadrate hinter den Zügen, die normaler Weise "einziger Zug" in der Kommentarpalette heißen. Sowas hieße doch genau das: die Bewertung nach diesem Zug ist genau gleich der davor, oder?

Nein, das denke ich nicht. Damit hat es nichts zu tun. Die Bewertung eines Zuges änderts sich im Allgemeinen mit jeder Suchtiefenänderung. Ganz egal, ob nur ein Zug legal ist, ob nur ein Zug vernünftigerweise in Frage kommt, oder ob ganz viele ungefähr gleichgute Züge da sind.

Was soll das 'einziger Zug' denn bedeuten?
(I) Dass nur ein legaler Zug möglich ist?
(II) Oder dass nur einer in Frage kommt, weil alle anderen wirklich Mist sind?


II

[quote="Benno Hartwig"]
(II) würde bei vollständigem Minimax direkt daran erkannt werden, dass der beste Zug deutlich besser ist als jeder andere.
Wir haben aber tatsächlich immer eine alpha-beta-Variante, und da ist es ggf. schwieriger (dafür aber deutlich schneller )
Ein beta-cut wird durchgeführt, sobald ein Zug wenigstens etwas nach oben aus dem alpha-beta-Fenster hinausführt ("zu gut ist"). Ob ein anderer noch viel weiter hinausführen würde wird dann nicht mehr geprüft.

Beispiel:
Annahme: zwei Züge z1 und z2 sind legal
z1 führt ungefähr zu einer ausgeglichenen Stellung.
z2 ermöglich dem Gegner mit Antwort a1 für ihn leichten Vorteil zu erreichen. --> beta-cut, ohne Prüfung weiterer Antwortzüge wird z1 als besser als z2 erkannt!
Da aber ggf. ein weiterer Antwortzug a2 auf z2 existiert, der dem Gegner sogar einen großen Vorteil bringt, bleibt in diesem Beispiel völlig unklar, ob z1 ggf. der einzige vernünftige Zug war.
Nur wenn die wenigen untersuchten Antwortzüge schon glücklicherweise jeweils eine sehr deutliche Widerlegung gebracht hätten, hätte ich auch bei alpha-beta bereits erkannt, dass z1 der einzige vernünftige Zug ist. Dank der Zugsortierung (Erfolgversprechendes zuerst!) gelingt dies ggf. aber auch recht oft.

Die Betrachtung der jeweils ausgegebenen Hauptvarianten mit ihren Bewertungen gestattet solch einen Schluss aber nicht!


Eben, das kritisiere ich ja.

Du hast mich schon richtig verstanden, das Kommentierungssymbol "einziger Zug" heißt ja bekanntlich schachlich nicht, dass hier nur ein Zug legal möglich ist, sondern dass es ein forcierter Zug ist.

Dass die engines das intern sehr wohl auch nur anhand des Bewertungsunterschiedes erkennen und wie sie dann weiter damit umgehen, hast du schön erklärt, danke.
Dass sich die Bewertung ständig mit der Suchtiefe ändert, daher auch mit jedem HZ, der tatsächlich ausgeführt wird, ist eben das, was ich im output zwar an der Stellung, der Zugzahl und der ausgewiesenen Berechnungstiefe (so sie denn stimmt und je nachdem wie sie das sei's ehrlicher Weise zählt ) ablesen kann, was die engine nicht angibt, außer im MV- Modus und auch da nur für die Gesamt- HV, ist, wie sehr die jeweil nächst niedriger bewerteten Züge davon differieren.

Das wäre aber gerade im single variant mode interessant, weil da wüsste ich dann, wo sich MV eventuell lohnt, oder wo ich überhaupt Verdacht haben könnte, hier geht die engine mehr oder weniger selektiv zu Werk.

Das ist wohl auch der Grund, warum Rybka dieses "einziger Zug"- Symbol, das kleine Quadrat der Fritz- Kommentierungspalette, in der HV hinschreibt, man kann daran ablesen, hier gibt es kaum annhähernd gleichwertige Alternativen.

Was das Ende und den Anfang der im Analyse- output gebotenen HV angeht, ist es dasselbe Problem.
Natürlich gilt die Bewertung für alle Züge, die die engine in ihrer Bewertung für die besten einer besimmten Suchtiefe hält. Das müssen aber absolut nicht gleich viele HZe sein, wie sie in der HV angibt, insbesonders bei fail high oder low reduziert sich die HV meistens auf einen einzelnen HZ, weil die weiteren im gerade Neubewerten ständig wechseln.
Hat sich die Suche und die Bewertung wieder stabilisiert, kommt wieder eine längere HV, das ! oder der rote oder grüne Punkt verschwindet, oder die Farbe der ganzen HV ändert sich, all das je nach GUI und deshalb eingeführt und hilfreich ganz in meinem Sinn, weil es eben auch genau das anzeigt:
Züge der HV, vielleicht auch der erste HZ davon schon, sind in Schwebe, die engine schwankt in ihrer Bewertung der jeweils zu entsprechenden Suche passenden best moves der HV und gibt das auch bekannt, warte mal, jetzt wird's grad interessant.

Hätten wir das, was die engine da intern sowieso dauernd machen muss, auch wenn sie gerade nicht so stark schwankt, in jeder HV als irgendwie ablesbares Kriterium, wieviele Züge der HV gerade wie sehr in der Bewertung von Alternativzügen unterschieden werden, wäre das für mich sehr hilfreich:

Es steht nicht nur eine einzelne Bewertung der Gesamt- HV da, sondern hinter jedem HZ davon ein weiterer Wert.

Hast du mal probiert, die HV der Analyse einfach im Stück zu übernehmen, STRG- Einfügen bei Shredder z.B.?
Du hast sofort eine andere Bewertung als in der Ausgangsstellung, je nach Stellung, engine und Länge der HV verschieden stark.
Wie kann das sein, wenn doch die Bewertung die des Endes der HV sein soll?

Ganz einfach, wir wissen es ja beide, die engine ändert ihrer Bewertung laufend mit der Suchtiefe, und mit jedem HZ der HV, den du ausführst, änderst sich auch die.
Die Bewertung ist also im Standrechnen zwar eine der (mehr oder weniger weit ausgewiesenen) HV, wie verlässlich die aber ist, sowohl die Bewertung, als auch die HV, das weißt du erst, wenn du alle Züge vorgespielt hast, wie verlässlich sie an der Ausgangsstellung war, erst, wenn du wieder zu der zurückgegangen bist mit den Zügen der HV und der zusätzlichen Suchtiefe nach dem Vorspielen im hash und dann vergleichst.
Genau genommen ist also die Bewertung der HV nur eine der Ausgansgstellung unter der Voraussetzung, die HV wird ausgespielt, und auch dann stimmt sie automatisch nicht mehr, wenn sie ausgespielt wird, weil sich der Horizont verschiebt.

Würde die engine das bei jedem Zug der HV wenigstens dadurch kennzeichnen, dass sie, wie Rybka diejenigen, die (in einer definierbaren range) keine ähnlich gut bewerteten Alternativzüge haben, markiert, wäre das schon eine zusätzliche Hilfe.
Gibt es also auch schon, bedarf nur so wie die ganze Bewertungsfrage nur klarer Definition, was es heißt.
Am einfachsten wäre auch hier bei dem zu bleiben, was wir schon haben, cp.
Du müsstest einfach definieren, kleines Quadrat hinter dem Zug heißt soundsoviel cp Abstand zum nächstschlechteren Zug und aus.

Soweit klar?

Hättest du jetzt gleich hinter jedem Zug der HV einen cp- Wert als Abstand zum nächst schlechter sortierten der HV, die die engine ja sowieso HZ für HZ bewertet, wäre das meiner Meinung nach ein sehr viel besserer Analyse- output als der jetzige und man müsste an den bekannten und gewohnten Schreibweisen und den Dimensionen oder Namen der Zahlenwerte gar nichts ändern.
Parent - - By Benno Hartwig Date 2011-10-21 14:33 Edited 2011-10-21 14:35
Code:
Du müsstest einfach definieren, kleines Quadrat hinter dem Zug heißt soundsoviel cp Abstand zum nächstschlechteren Zug und aus.
Eben diese Feststellung wird die Engine im normalen Spiel nicht immer machen können, da sie dann nur darauf getunt ist, den stärksten Zug zu finden und den korrekt zu bewerten. Es genügt ihr dann, bei allen anderen zu erkennen, dass sie nicht besser sind (eine Widerlegung zu finden). Wohl die meisten Knoten im Suchbaum durchforstet die Engine nur auf der meist erfolgreichen Suche nach Widerlegungen. Wollte man stets die Differenz wirklich ermitteln, würdest du die riesigen Vorteile des alpha-beta-Algorithmus ein gutes Stück weit wieder herschenken müssen.

Mit jeder Suchtiefensteigerung bleibt ja oft der beste gefundene Zug derselbe, der dann immer zu Beginn analysiert wird.
Und über den Daumen gepeilt dauert die Analyse dieses ersten Zuges dann genau so lange wie die Analyse sämtlicher anderen Züge. Diese so schnelle Analyse dieser weiteren Züge gelingt, weil nur noch nach Widerlegungen gesucht wird.
(Dieses volle Analysieren oder auf Widerlegungen reagieren macht alpha-beta dann automatisch so, wie es richtig ist.)

Benno
Parent - - By Peter Martan Date 2011-10-21 16:05
Ach schade!
Naja, ich hatte schon sowas vermutet.
Aber wenn jetzt die engine auch nur den ersten HZ wirklich in cp gegen die anderen Alternativen berechnet, dann ist diese Bewertung ja doch auch nur für den ersten HZ gültig?
Darauf wollte ich ja hinaus.
Und wieviele Alternativzüge sie pro HZ der HV wegpruned oder mitrechnet, das könnte sie doch hinschreiben, oder?
Sonst könnte Rybka ja auch kein "einziger Zug" angeben mitten in der HV?
Parent - - By Benno Hartwig Date 2011-10-21 17:43
Zitat:
Aber wenn jetzt die engine auch nur den ersten HZ wirklich in cp gegen die anderen Alternativen berechnet, dann ist diese Bewertung ja doch auch nur für den ersten HZ gültig?
Was heißt hier 'gültig'?
Die Engine hat für Tiefe T halt vielleicht erstmal einen Zug Z bewertet und ihm (für diese Tiefe) einen Wert W gegeben.
Dann werden z.B. alle statt Z möglichen Züge mit diesem beta-Wert analysiert (der aber auch noch wachsen kann): Wenn der Gegner mich in einer Stellung unter diesen Wert drücken kann, dann werde ich diese Stellung nicht zulassen (beta-cut). Und das greift auch noch in größeren Tiefen des Baumes. Dieser beta-Wert lebt gewissermaßen während der Suche. Und sein Gegenstück alpha auch.

Zitat:
Und wieviele Alternativzüge sie pro HZ der HV wegpruned oder mitrechnet, das könnte sie doch hinschreiben, oder?
Wie es realisiert ist, weiß ich nicht.
Sicher kann man einfach nach Widerlegungen suchen, wie ich es beschrieb, und dabei die 'Heftigkeit' der Widerlegungen betrachten.

Beispiel:
z1 liefert ungefähr Ausgleich, und das habe die Engine bereits erkannt.
z2 ermöglicht dem Gegner, ungestraft meinen Turm zu nehmen. --> Wiederlegung, beta-cut, weitere Erwiederungen auf z2 werden nicht untersucht.
"z2 bedeutet Turmverlust oder sogar noch schlimmeres!" ist also die Erkenntnis der Engine.
Und ob der Gegner auch noch andere Widerlegungen hat (Damenraub, oder gar matt in 2) wird vernünftigerweise nicht untersucht.
Zumindest wenn alle Alternativzüge so deutliche Widerlegungen liefern, kann die Erkenntnis "Einziger vernünftiger Zug!" gelingen.
Das lässt sich auch programmieren.

Und so selten ist das vielleicht ja auch nicht, denn es wird immer versucht, die besonders guten Züge zu erraten und zuerst zu bewerten (und damit auch die heftigen Widerlegungen) Man tut das um der Performance willen, denn nur wenn du sehr schnell gute Züge bewertet hast, können die nachfolgenden wegen Widerlegung schneller als schlecht erkannt werden.

Benno
Parent - - By Peter Martan Date 2011-10-21 18:13 Edited 2011-10-21 18:16
[quote="Benno Hartwig"]
Zitat:
Aber wenn jetzt die engine auch nur den ersten HZ wirklich in cp gegen die anderen Alternativen berechnet, dann ist diese Bewertung ja doch auch nur für den ersten HZ gültig?
Was heißt hier 'gültig'?
Die Engine hat für Tiefe T halt vielleicht erstmal einen Zug Z bewertet und ihm (für diese Tiefe) einen Wert W gegeben.
Dann werden z.B. alle statt Z möglichen Züge mit diesem beta-Wert analysiert (der aber auch noch wachsen kann): Wenn der Gegner mich in einer Stellung unter diesen Wert drücken kann, dann werde ich diese Stellung nicht zulassen (beta-cut). Und das greift auch noch in größeren Tiefen des Baumes. Dieser beta-Wert lebt gewissermaßen während der Suche. Und sein Gegenstück alpha auch.


Ja, aber wir reden ja von den ominösen cp in der Bewertung, Benno.
Die sind, wenn wir denn überhaupt an ihnen festhalten wollen, und was wirklich besseres ist uns vielleicht doch auch noch nicht eingefallen, ein Wert, den die engine für die Stellung ausgibt, an der sie gerade rechnet und alles andere, was sie dann noch an HV zusammenpfriemelt, dort ein bisschen mehr und da ein bisschen weniger cut, wie du mir so schön erklärst, ist doch nur noch die Begründung für die Bewertung des einen und einzigen Halbzuges, den sie mit soundsoviel cp bewertet und vor dem sie noch dazu erst steht, nicht einmal für den selbst, sondern für die Stellung davor.
Auch wenn sie hinschreibt, Matt in X Zügen an der Stelle, an der sie das tut, heißt das ja auch nicht, es wird dann vielleicht in soundsoviel Halbzügen nach meiner HV ein Matt in X sein, sondern jetzt, hier, sofort, egal, was der Gegner macht.
Entweder das stimmt dann an der Stelle, wo's steht, oder halt nicht.
Überprüft wird durch Ausspielen, gelten muss es wenigstens für den Anfang, oder man schenkt es sich ganz.
Ich bin sehr pöse auf die Bewertungen der engines.
Parent - - By Michael Scheidl Date 2011-10-21 19:07
Die Mattbewertung ist eine Ausnahme, denn sie fängt sinnvollerweise an der Brettstellung an, zu zählen. Aber ansonsten sehen wir "Endbewertungen" vom Ende der Hauptvarianten, wo die Engine nicht mehr weiter gerechnet hat. Nach dem Motto, irgendwo muß Schluß sein, hier höre ich jetzt auf zu rechnen denn das ist die vorläufige Schlußstellung der meiner Meinung nach optimalen Fortsetzung. Wir sehen davon dann die statische Bewertung, eingeblendet x Halbzüge früher.

(Welche Rolle an dieser Stelle Ruhesuche und/oder SEE noch spielen, muß man einen Programmierer fragen. Ich kenne mich ja nicht aus. )
Parent - - By Peter Martan Date 2011-10-21 19:51 Edited 2011-10-21 19:59
Eigentlich finde ich mehr und mehr, dass auch das reine Interpretaionsfrage ist, Michael, genau so wie die ganze übrige Bewertungsfrage.
Zu meiner Sicht könnte ich auch nochmals, wie schon ganz am Anfang, die Schreibweise vom Shredder- GUI anführen, in der automatischen backward analysis die Bewertung der Alternativvariante, die sie besser findet als die Originalpartiefortsetzung, nicht am Ende, wie Fritz, sondern am Anfang hinschreibt.
Wie dem auch sein, akademische Frage sage ich immer dann, wenn ich's eigentlich wurscht finde.
Viel mehr würde mich interessieren, ob es wirklich so schwierig wäre, das Wieviel an Alternativzügen, das in der ausgegebenen HV des Analyse- outputs von der engine berechnet wurde, irgendwie kenntlich zu machen, im Prinzip wie in der Rybka-artigen Schreibweise.
Könnte man beispielsweise auch nur als user einstellen, ab wann dieses "einziger Zug"- Symbol zum Ausdruck käme, wäre das auch schon ein wesentlicher Vorteil für mich.
Sagen wir, ich will wissen, wo gibts in der HV mehr als einen Zug in ungefähr gleich weit zu verfolgender Fortsetzung, sagen wir innert einer range von 10 HZen zum jeweils best gereihten, nur dann soll das kleine Quadrat dort nicht stehen, sonst schon.
Würde doch auch schon was sagen, nein?
Nein, weil das natürlich nicht hieße, dass die 10 HZ weniger weit untersuchte Alternativfortsetzung deshalb so weit früher abgeschnitten wurde, weil sie soviel weniger gut bewertet wurde, oder einfach nur, weil sie soviel schneller zu nicht näher zu untersuchenden Stellungen geführt hat, was auch immer das für welche gewesen wären.
Wie ich's auch drehe und wende, mehr Info als wir haben, wird's nicht, jedenfalls nicht in der Art der Daueranalyse, über die wir reden.
Automatische Stellungsanalyse mit einstellbarer Variantenzahl, -Tiefe und cp- Range gibt's im Fritz ja auch noch und ist eh ungefähr das, was ich meinte.
Kombination von MV- und single variant, nach der Durchsicht der Alternativen Neubewertung der besten HV.
Manuell vor und zurück bleibt einem sowieso nicht erspart, wenn man Eigenes oder Varianten anderer engines auch beurteieln (lassen) will.
Parent - By Peter Martan Date 2011-10-21 20:08 Edited 2011-10-21 20:13
Wieder Editierzeit aus.
Das wär aber sowieso für mich die Zukunft der Stellungsanalyse: echte shared analysis mehrerer engines, so wie Fritz das im obengenannten feature der automatischen Stellungsanalyse für das Hintereinander mehrerer engines eh auch kann, aber unter Austausch des hashes der einen mit dem der anderen, könnte ja ruhig auch nacheinander sein, es müsste einfach die eine engine außer den eigenen Varianten auch immer noch die der anderen nachspielen.
Ein bisschen hatte ich auf sowas eben bei Let's Check gehofft, bin aber spätestens, als die Diskussionen um das kam, was der server automatisch am user- PC abfragen darf, ernüchtert worden.
Was das angeht, kann ich nur wieder vorschlagen, die Einträge dort sollten nicht nur nach Rechenzeit und hardware, sondern auch nach dem Maß an backward analysis der eintragenden engine, eventuell auch im Beurteilen schon vorhandener "Konkurrenz"- Einträge vom server bewertet werden.
Parent - By Benno Hartwig Date 2011-10-21 23:23
Zitat:
...ist doch nur noch die Begründung für die Bewertung des einen und einzigen Halbzuges, den sie mit soundsoviel cp bewertet und vor dem sie noch dazu erst steht, nicht einmal für den selbst, sondern für die Stellung davor.
Nein, es ist die Bewertung des gesamten Suchbaumes bei der gegebenen Suchtiefe.
Ok, bei dieser Bewertung kommt auch die HV heraus und da insb. der erste Halbzug.
Und ein Suchbaum einer anderen Tiefe gibt i.A. eine andere Bewertung und ggf. eine andere HV.

Zitat:
Auch wenn sie hinschreibt, Matt in X Zügen an der Stelle, an der sie das tut, heißt das ja auch nicht, es wird dann vielleicht in soundsoviel Halbzügen nach meiner HV ein Matt in X sein, sondern jetzt, hier, sofort, egal, was der Gegner macht.
Es bedeutet, dass die Engine in ihrem Suchbau zwingend das Matt sieht. Egal, wie sich der Gegner wehrt, er wird in spätestens X Zügen mattgesetzt, ausgehend von der aktuellen Stellung.

Benno
Parent - - By Christian Schmidt Date 2011-10-19 18:03
[quote="Michael Scheidl"]

Für Rybka 3 und -2 hat L.Kaufman im Rybkaforum folgende Angaben zur Prozentumrechnung gemacht:

http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=73105;hl=expected%20percentage


Frage:
Zitat:
Does this hold well in all phases of the game?


Antwort:
Zitat:
Well, in theory a given eval is supposed to represent a constant winning expectancy, but I doubt that it holds up very well; this is not a priority for us. It's only in the opening that I have statistics for exact positions, so no easy way to tell how well this works after the opening.


Das hört sich doch noch alles sehr vage an, wenn ich Kaufman richtig verstehe.
Parent - - By Gabriel Seiferl Date 2011-10-19 19:14
Die "Gewinnwahrscheinlichkeit" ist unbrauchbar als Kriterium für eine Positionsbewertung im Schachspiel, weil die Gewinnwahrscheinlichkeit eine Funktion der Spielenden selbst ist. Z.B. ist die Gewinnwahrscheinlichkeit in der Grundposition also noch vor dem ersten Zug einer Schachpartie für die weisse Seite gleich 1 und für schwarz gleich 0, wenn die weissen Steine vom Schachweltmeister bewegt werden, während auf der schwarzen Seite ein Schachanfänger zieht.
Parent - - By Michael Scheidl Date 2011-10-19 20:34 Edited 2011-10-19 20:39
Die Gewinnwahrscheinlichkeit ist natürlich bezogen auf das Ergebnis zwischen gleich starken, theoretisch - nach jeweils bester Erkenntnismöglichkeit der jeweiligen Engine - perfekten Gegnern gedacht.

Für Partien zwischen Schachweltmeister und Anfänger wäre die jetzt übliche Stellungsbewertung nicht sinnvoller als die Gewinnwahrscheinlichkeit. Dieser Punkt scheint nicht so leicht einzleuchten. Ich will überhaupt nichts fundamental neues, sondern ich schlage nur vor die ganz normalen, jetzt überall vorhandenen Stellungsbewertungen auf einer Gewinnwahrscheinlichkeits-Skala abzubilden, und das als zusätzliche oder alternative Bewertung anzuzeigen. Wie das gehen kann hat ja Larry Kaufman in obigem Zitat dargelegt. Also man braucht nicht mir zu widersprechen, wer's will möge bitte qualifiziert der Computerschachlegende Larry Kaufman widersprechen.

Viel Glück damit.
Parent - By Gabriel Seiferl Date 2011-10-20 05:38
Hallo,
Die Gewinnwahrscheinlichkeit ist natürlich bezogen auf das Ergebnis zwischen gleich starken, theoretisch - nach jeweils bester Erkenntnismöglichkeit der jeweiligen Engine - perfekten Gegnern in der Grundposition, also noch vor dem ersten Zug recht genau 33,3% .  Da braucht nicht viel gerechnet werden.

Zitat: Also man braucht nicht mir zu widersprechen, wer's will möge bitte qualifiziert der Computerschachlegende Larry Kaufman widersprechen. Zitat Ende

Hmmm... Herr Scheidl mir war nicht klar, das Sie sich Ihre Intelligenz und damit auch Ihre Argumente von Kaufman geliehen hatten. Wenn es Ihnen selber - Herr Scheidl - an Intelligenz zum argumentieren mangelt, dann bitte nix mehr weiter antworten  Danke !
Viele Grüsse
Gabriel
Parent - - By Frank Brenner Date 2011-10-19 20:47
Jede Art der Compilierung der Enginebewertung in eine andere Skala führt zur einer Vergrößerung des Fehlers, denn sonst hätte der Programmierer diese Umwandlung selber in seinem Programm integriert und sein Progamm würde dadurch dann besser spielen.


Der Ausdruck "Gewinnwahrscheinlichkeit" birgt auch einen Interpretationsfehler, so zeigt mein MM2 z.b. sehr gerne in Partien +3 oder +4 an, was ja eigentlich mehr als 99% Gewinn sein sollte (mindestens), dennoch verliert er stets gegen Rybka.

Parent - By Peter Martan Date 2011-10-20 06:50 Edited 2011-10-20 06:55
[quote="Frank Brenner"]
Jede Art der Compilierung der Enginebewertung in eine andere Skala führt zur einer Vergrößerung des Fehlers, denn sonst hätte der Programmierer diese Umwandlung selber in seinem Programm integriert und sein Progamm würde dadurch dann besser spielen.


Der Ausdruck "Gewinnwahrscheinlichkeit" birgt auch einen Interpretationsfehler, so zeigt mein MM2 z.b. sehr gerne in Partien +3 oder +4 an, was ja eigentlich mehr als 99% Gewinn sein sollte (mindestens), dennoch verliert er stets gegen Rybka.
[/quote]

Entschuldige, Frank das ist aber kein Interpretationsfehler, da müssen wohl irgendwo Fehler in der Zugsortierung zugrunde liegen.
Das liegt nicht an der zahlenmäßig absoluten Höhe, sondern an den Relationen der Bewertung einzelner in Frage kommender Züge.

So wie ich Michael verstehe, will er nicht den engines das Rechnen neu beibringen und er erhofft sich auch nicht, dass sie mehr wissen als bisher.
Würden Sie sich einfach noch nachvollziehbarer und klarer in ihrer Aussage, wie sie die Stellung beurteilen dazu äußern müssen, weil halt ein Vorteil von jetzt (bei vorsichtig niedriger Beurteilung) 1.5 Bauerneinheiten schon in fast 100 prozentiger Gewinnwahrscheinlichkeit ausgedrückt werden, könnte man noch genauer als jetzt im weiteren Verlauf der Partie und der Bewertungen die trotzdem nicht gewinnende engine darauf festnageln, dass und ab wo sie sich wie sehr geirrt hat.

Das Dilemma, dass jede Bewertung, je weiter sie noch vor einem forcierten Remis oder anderen Ende der Partie abgegeben wird, umso stärker relativiert werden muss, lässt sich dadurch nicht verbessern, es wird nur vielleicht wirklich irgendwie deutlicher angesprochen.

Wenn ich Larry Kaufmann da aber richtig verstehe, meint er gerade in der Eröffnungsphase bessere Aussagen durch dieses Gewinnwahrscheinlichkeit Bewerten zu bekommen, weil er da statistische eröffnungstheoretische Grundlagen dafür hätte, das scheint mir zwar auch logisch, aber halt wieder sehr empirisch. Mag sein, dass das immer noch der beste Weg in der Eröffnung ist, sehr explorativ kommt es mir halt nicht vor.

http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=73433#pid73433

Und da  spricht er an, dass die Bewertungen, je näher sie dem Endspiel oder gar dem sudden death kommen, umso genauer werden sollten, definitiv werden sie aber in komplizierten Endspielen selbst mit tbs mangels grundlegender Kenntnisse immer wieder das Gegenteil, nämlich nachweislich falsch. Ebenso, wenn auch seltener, wenn eine taktische Drohung oder eine raffinierte positionelle Falle zur Abwicklung in einen Mattangriff oder ein übersehenes oder falsch bewertetes Endspiel die Bewertung mitsamt der Zugsortierung ruiniert.
Man sieht einfach immer wieder, dass Bewertungen von +2 und mehr abgegeben werden bei Endspielen mit dem falschen Läufer, mit Festungen und mit Zugzwangdrohungen, (auch mal den wirklich seltenen Ausnahmen durch Unterverwandlung), die den vermeintlichen Gewinn in ein Remis verwandeln und umgekehrt.

Da wäre so eine neue Gewinnwarnung () anstelle einer cp- Bewertung erst recht blamabel, würde aber helfen, zu zeigen, wo man den Maschinchen halt doch immer noch nicht absolut trauen kann.

Kurzum, warum nicht, hic rhodos hic salta, du meinst, du hast in Summe deiner Kriterien und Berechnungen eineinhalb Bauern Vorteil, dann sag auch gleich dazu, dass du damit eigentlich gewinnen müsstes, wenn du dich nicht in deinem Gegner geirrt hast.
Parent - - By Werner Mueller Date 2011-10-19 20:52
@Michael Scheidl

Im Grunde ist ja Dein Problem (bzw. ein Problem von Let's Check - Interpretationen), dass verschiedene Engines mitunter verschiedene Bewertungen bzw. Werte für eigentlich übereinstimmende Stellungsbeurteilungen *) ausgeben.

Und wie eine Engine, die durch ein paar Schachs eine Unannehmlichkeit jenseits ihres Rechenhorizonts schiebt, hast Du nun die Idee durch Verwursten dieser Bewertungen zu Gewinnwahrscheinlichkeiten irgendwie weiterzukommen. Wie für die Engine gilt aber auch für Dich: entweder Du löst das Problem an dieser Stelle oder gar nicht.

*) eigentlich übereinstimmende Stellungsbeurteilungen gibt es eigentlich nur, wenn mindestens eine der Engines 'lügt'. 
Parent - - By Michael Scheidl Date 2011-10-19 22:31
Ich kann mich nicht verständlich machen.

Ein wesentlicher Teil der Idee ist, davon wegzukommen daß nicht-materielle, also positionelle, dynamische oder was weiß ich sonst noch für welche Bewertungsfaktoren auf der Materialskala abgebildet werden. Daß offensichtlich das vielen normaler vorkommt als eine Gewinnwahrscheinlichkeits-Skala, ist nur reine Gewohnheit. Weil es halt immer schon so gemacht wurde. Logischer ist es aber meines Erachtens nicht, eher umgekehrt. Eigentlich gilt dasselbe auch für einen soliden Materialvorteil (ohne Kompensation): Sein Wert bemißt sich daran, mit welcher Wahrscheinlichkeit er zu einem Gewinn verwertet werden kann.

Natürlich würde ich gerne, spätestens sobald eine Gewinnwahrscheinlichkeit 100% erreicht (im L.K. Beispiel schon bei 1,50 für R3) dann trotzdem die herkömmlichen Bewertungen sehen, denn selbst dann gibt es ja immer noch große Qualitätsunterschiede zwischen diversen "ergebnisbehaltenden" Zügen, auch des Verteidigers.

Ich rede vom Output den eine Engine und/oder eine GUI alternativ, oder zusätzlich darstellt. Warum soll da die Materialskala besser sein als eine Gewinnwahrscheinlichkeitsskala? Die Materialskala ist absolut treffend für Material, aber nur eine Behelfslösung für positionelle etc. Faktoren. Dasselbe gälte für die Gewinnwahrscheinlichkeit, aber mit dem Vorteil das diese immer zwischen -100% und +100% liegt.

Niemand kann wirklich schlüssig beschreiben, was eine Bewertung von +0.78 aussagt.

Lautet diese hingegen z.B. 76% Gewinnwahrscheinlichkeit, ist das schon wesentlich greifbarer.

Ich glaube, mehr fällt mir dazu nicht mehr ein.
Parent - - By Gabriel Seiferl Date 2011-10-20 00:46
Ich finde, das z.b. die Aussage +1,0 ganz (be)greifbar ist. Sagt es doch einfach, das eine Seite (etwa) einen Bauern eingestellt hat. In wie fern ein solcher Vorteil nun zum Gewinnen der Partie (mit welcher Wahrscheinlichkeit) ausreicht, hängt dann von vielen anderen Randbedingungen ab. z.b. von der Spielstärke der beiden Spieler. Selbst wenn diese als gleichstark angenommen wird, bleiben genügend andere Randbedingungen übrig, wie z.b. die aktuelle Position selbst auf dem Brett. Soll  alles korrekt eingerechnet werden, was auch nur für diese eine bestimmte Brettposition möglich wäre, dann würde eine Engine sehr lange Rechenzeit benötigen. Andernfalls wäre das Ergebnis illusorisch. Weniger illusorisch und auch sehr schnell ist die Bewertung in Bauerneinheiten durchführbar, denn einen Materialvorteil von einem Bauern lässt sich selbst per Augenschein auf dem Brett erkennen. Eine Engine erreicht die Bewertung durch simpeles Abzählen. Das Ergebnis ist dann keinesfalls illusorisch.     
Parent - - By Chetan Reinhard Date 2011-10-20 11:56
Völlig richtig Gabriel ! Gratulation für deine Argumentation !
Kleine Anmerkung dazu:
Statt "illusorisch" behagt mir der Ausdruck "fiktiv" besser. Übrigends ist die Gewinnwahrscheinlichkeit bei gleichstarken Spielern zu Speilbeginn und dann weiter während des gesamten Spielverlauf konstant 1/3 also 33,33% . Lediglich ab der Position welche gegen Spielende dann einer vollständigen Analyse zugänglich ist, ändert sich diese Bewertung sprunghaft von 33,33% auf einen der beiden Konstanten 100% oder 0% . Das bleibt dann so bis zum letzten Spielzug.  
Viele Grüsse
Chetan Reinhard
Parent - - By Thomas Mayer (Quark) Date 2011-10-20 17:52
Hi Chetan,

wobei ich die initiale Gewinnwahrscheinlichkeit als nicht endgültig geklärt halte. Für Weiß dürfte sie dennoch am Anfang höher als 33 1/3 % liegen. Sollte Schach ein für Weiß gewonnenes Spiel sein (trotz allem durchaus im Bereich des möglichen) dann wäre die anfängliche Gewinnwahrscheinlichkeit für Weiß sogar 100%. Computertechnisch würde da wahrscheinlich nichts anderes herauskommen als das man die internenen Bewertungen irgendwie in %te fassen würde, evtl. abhängig vom noch vorhandenen Material. Ich glaube auch nicht daran, daß dies wirklich eine sinnvolle Bewertung ist, +1.00 klingt für mich da plausibler. Aber darüber nachzudenken macht schon Sinn.

Gruß, Thomas

P.S.: Schön, auch mal von Dir wieder was zu lesen !
Parent - - By Chetan Reinhard Date 2011-10-20 20:38
Hi Thomas,

mit fortschreitendem Lebensalter beginne ich mich tatsächlich wieder etwas für mein altes Jugendhobby Schach zu interessieren
Noch immer lese ich viele mir gut bekannte Namen hier  Schön das es euch und das CSS Forum noch mit unverminderter Aktivität gibt.   Sehr nett ! Ich habe allerdings kaum vor, viel zu schreiben. Nur manchmal einen Blick reinwerfen und wenn es mich reizt, mal ausnahmsweise einen Kommentar schreiben.

Gewinnwahrscheinlichkeiten für Schachpositionen abzuschätzen finde ich zwar auch interessant, aber wie schon gesagt ist das wohl eher was für Schachspieler aus Fleich und Blut im realen Spiel. Es wird wohl jeder Vereinsspieler seine Gewinnaussichten versuchen abzuschätzen. Allerdings geht es dabei vermutlich tatsächlich mehr um die Spielstärke seines Gegenüber im Vergleich zur eigenen Spielstärke.

Dazu eine kleine Anekdote: Vor etwa 30 Jahren hatte ich mal bei einer Simultanvorstellung des Großmeisters Uhlmann in einem kleinen Schachverein in Düsseldorf teilgenommen. Am Ende hatte Herr Uhlmann gegen alle Teilnehmer gewonnen, nur die Partie mit mir war noch nicht zu Ende gespielt. Also setze sich Herr Uhlmann dann zu guter letzt mir alleine gegenüber, um diese eine letzte Partie noch zu ende zu bringen. Nun gut, Herr Uhlmann hatte seine Kräfte wohl am Anfang der Simultanvorstellung auf die sehr starken Spieler konzentriert und mich wohl etwas unterschätzt. Jedenfalls waren auch stärkere Spieler als ich  schon besiegt. Aber so hatte ich wohl Glück und positionell war dieses letzte Spiel ein praktisch gewonnenes Endspiel für mich. So habe ich es in Erinnerung.

Es war ein schon fortgeschrittener Abend und Herr Uhlmann wollte wohl noch mit Freunden durch die Düsseldorfer Altstatt ziehen. Und so bot er mir nach einigen weiteren Zügen ein Remis an. Natürlich war ich stolz, von einem Grossmeister ein Remis angeboten zu bekommen, aber ich hatte einen oder sogar zwei Bauern mehr im Endspiel,wenn ich mich recht erinnere,  und so lehnte ich das Remisangebot ab. Denn ich schätzte meine Gewinnwahrscheinlichkeit in diesem Endspiel auch gegen einen Grossmeister als recht hoch ein. Allerdings bin ich dann doch noch kläglich unter gegangen und Herr Uhlmann hatte am End alle Partien dieser Simultanvorstellung gewonnen.  An diesem Abend ist mir jedenfalls klar geworden, das abschätzen von Gewinnwahrscheinlichkeiten sehr trügerisch sein kann

Grüsse
Chetan       
Parent - - By Stefan Brettschneider Date 2011-10-20 23:04
Vielleicht geht es mit drei bis fünf "Tachos"?
1. Gewinnchancen Weiß
2. Remistendenz
3. Gewinnchancen Schwarz
(sowie ggf. noch
4. Verlustrisiko Weiß
5. Verlustrisiko Schwarz)

Damit könnte man auch Stellungen wie Dame gegen Springer und Läufer darstellen. Beide Seiten haben noch Gewinnchancen, wobei die für die Seite mit Dame deutlich höher liegen (bei objektiv gewonnener Stellung). Andererseits kann mit Springer und Läufer durchaus noch gewonnen werden.
4. und 5. wären aber entbehrlich, da sie mit den Gewinnchancen der Gegenseite korrespondieren. Zeiger, die in Richtung Weiß oder Schwarz ausschlagen (oder in der Mitte liegen), visualisieren das gut.

In einer "normalen" gewonnenen Stellung D vs. L+S wären das eine deutliche Gewinnwahrscheinlichkeit für die Dame bei einer sehr kleinen Gewinnwahrscheinlichkeit für S+L und einer kleinen Remistendenz.

Wie gemein das ist, kann man auch an dem Klassiker der Endspieldatenbanken zeigen: D vs. T ist zumeist für die D gewonnen, freilich kann man schlimmstenfalls sogar noch verlieren, die Remisbreite ist in den meisten Stellungen eher klein. Je schmaler der Pfad zum Gewinn wird, um so größer wird die Remistendenz und um so kleiner die Gewinnwahrscheinlichkeit. Relativ konstant klein dürfte die Gewinnwahrscheinlichkeit für den Turm bleiben, die sozusagen nur steil auf nahe 100 % steigt, wenn ein (ganzer) Damengewinn (ohne Turmerlust) ermöglicht wird. Spielt man mit der Dame gegen die "Datenbank", wäre so ein Bewertungstacho mit nach und nach sinkender Gewinnwahrscheinlichkeit genauso deprimierend wie die Anzeige der Züge bis zum sicheren Gewinn (die typischer Weise - je nach Stärke und Kenntnis von diesem Endspiel) um 20 herum stagniert.
Parent - - By Stefan Brettschneider Date 2011-10-20 23:20 Edited 2011-10-20 23:23
Nachtrag (Editierzeit war abgelaufen):

Ob damit viel gegenüber der etablierten Anzeige in "Bauerneinheiten" gewonnen ist, bleibt fraglich. Allerdings könnte man mit solchen Tachos gut zeigen, dass nur noch eine Seite Gewinnchancen hat. Bei objektiver Beurteilung kann eine Engine in echten Remisstellungen nur 0.00 anzeigen. Die "hohe Remistendenz" brächte dies in der beschriebenen alternativen Anzeige zum Ausdruck. Man könnte zusätzlich sofort ablesen, dass nur noch eine Seite Gewinnchancen hat, was gerade schwächeren Spielern helfen könnte. Auch in objektiven Remisstellungen mit praktischen Chancen für beide Seiten könnten entsprechende Tachoanzeigen helfen. Weiß hat Angriff, objektiv aber nur Dauerschach. Hohe Remistendenz und z.B. bei vielen Varianten, in denen Weiß gewinnt - anders ausgedrückt bei vielen Stellungen, in denen Schwarz "einzige" Züge finden muss - werden Weiß Gewinnchancen angezeigt.

Vermutlich wäre ein solches Bewertungssystem außerhalb von Datenbankstatistiken nur schwer umzusetzen (in bekannten Eröffnungsstellungen und in den bereits "erschlossenen" Endspielstellungen könnte man die Statistiken der Datenbanken heranziehen).

Ich könnte es mir eher als Ergänzung vorstellen, quasi eine Erweiterung der Bewertungstachos seit Fritz 12.
Parent - - By Werner Mueller Date 2011-10-21 09:40
[quote="Stefan Brettschneider"]
...
Ich könnte es mir eher als Ergänzung vorstellen, quasi eine Erweiterung der Bewertungstachos seit Fritz 12.
[/quote]
Dort wäre die Sache zumindest gut aufgehoben.
Parent - - By Peter Martan Date 2011-10-21 10:30
Hallo Werner!

Gar so uninteressant finde ich das Thema aber eigentlich wirklich nicht.
Ingo Bauers statement, alles außer +- und = ist Quatsch, trifft es nicht ganz, weil auch dort, wo jetzt die eine engine gerade mal +1.40 schreibt und das Fritz-GUI ein +- daraus macht und die andere ein 1.39 und damit hieße es +/-, also nach Ingos Definition =, werden Züge aufgrund dieses 0.01 sortiert (die interne Bewertung der engine muss ohnehin noch kleinere Einheiten haben, sonst könnten Züge, die auch immer wieder mal denselben cp- Wert haben, gar nicht sortiert werden) und die Frage, wie weit ist der nächst schlechter gereihte Alternativzug in der Bewertung weg, ist die einzige Handhabe des Betrachters, nachzuvollziehen, warum gerade dieser Zug und nicht der andere, abgesehen von den weiteren in der HV gezeigten Zügen, die man natürlich vor- und zurückspielen kann und schauen, ob's bei ihnen bleibt, und wie sich die eval ändert, ist aber auch unbeliebt bei eng-eng- Fans.

Entweder man glaubt nur mehr den engines, weil man es als Mensch ohnehin nicht mehr besser wissen darf, dann sollten sich die Dinger ein bisschen einigen auf eine halbwegs einheitliche Bewertung, möglichst vielleicht noch ein bisschen was aus ihrem ja meistens doch viel reicheren Kriterienschatz, als es die eine einzelne Zahl, die herauskommt, vermuten ließe, bekanntgeben, oder gar nichts zum Besten geben, wie es Dinger wie z.B Thinker tun, auch eine klare Haltung.

Hat auch den Vorteil, dass man sie schlechter gegen andere vergleichen kann und das ist ja heutzutage schon vielleicht das Wichtigste überhaupt.

Nützt aber als Verschleierungskriterium auch nix, ponder hits bleiben ponder hits.
Parent - By Ludwig Bürgin Date 2011-10-21 15:30
Hallo Peter

Deine Ansicht kann ich voll bestätigen

Für Buchtuner ist die Plus,Gleich, Minus Anzeige nicht zu gebrauchen.
Die 0,00 Anzeige einer Engine bringt bei längerem Gebrauch schon eine gute Aussage über die Möglichkeiten beim Spiel und Analyse.
Wenn man ihre Schwankungen einigermaßen bewerten kann, sind sie schon eine große Hilfe.
Schade ist,dass hier  im Forum so gut wie keine Leute ,die im Maschinenraum spielen,über ihre Erfahrungen mit Engines berichten.

Gruß Ludwig
Parent - By Benno Hartwig Date 2011-10-21 10:32
[quote="Stefan Brettschneider"]Vielleicht geht es mit drei bis fünf "Tachos"?
1. Gewinnchancen Weiß
2. Remistendenz
3. Gewinnchancen Schwarz
(sowie ggf. noch
4. Verlustrisiko Weiß
5. Verlustrisiko Schwarz)[/quote]Eigentlich braucht es doch nur zwei Werte, die gern hübsch in 3 Tachos dargestellt werden können

1. Gewinnchancen_Weiß (= Verlustrisiko_Schwarz)
2. Gewinnchancen_Schwarz (= Verlustrisiko_Weiß)

3. Remiswahrscheinlichkeit = 100% - (Gewinnchancen_Weiß + Gewinnchancen_Schwarz)

Man könnte auch an folgende zwei Tachowerte denken, die letztlich wohl dieselbe Aussagekraft enthalten:
Gewinnerwartung (ganz egal ob zwischen 0..1 oder 0% und 100% oder am besten: -100%..+100%)
Remiswahrscheinlichkeit (entsprechen zwischen 0..1 oder 0%..100%)

Gewinnerwartung = 0% für sich könnte dann ja bedeuten:
"remis sicher erkannt" oder "vollkommen offen, wie es ausgeht, bei gleichen Chancen"
und da würde die Remiswahrscheinlichkeit schon weiterhelfen, um die Situation genauer zu beschreiben.

Benno
Up Topic Hauptforen / CSS-Forum / alternative Evals in % (Gewinnwahrscheinlichkeit)

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill