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?
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
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.