Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Computerschach Engine Raum Schach DE
- - By Willi Prinz Date 2017-02-01 13:07
Wenn man dort spielt was ist besser ,mit Ponder on oder ohne Ponder zu spielen.
Gruß Willi
Parent - - By Benno Hartwig Date 2017-02-01 14:04
Ponder on
Dann rechnet dein Rechner auch während der Bedenkzeit des Gegners.

Mit recht guter Wahrscheinlichkeit hat er den Antwortzug richtig vermutet gehabt und so reichlich Denkzeit gewonnen.
Oder er lag eben daneben und fängt nun neu an zu rechnen. Dann hat er immerhin keinen Nachteil durch dieses Pondern.

Benno
Parent - - By Guenter Stertenbrink Date 2017-02-04 06:00
der konzentriert sich auf einen Zug ? Ich denke
der rechnet eben alle Varianten durch, wie sonst auch
Parent - - By Benno Hartwig Date 2017-02-04 06:52 Edited 2017-02-04 06:56
Die Implementierungen mögen auch unterschiedlich sein.
Häufig wird aber wohl immer noch so verfahren:
.

Engine ermittelt (ggf. auf eigene Zeit) einen besten Zug z1 und sie erhält (Pflege der Hauptvariante) auch eine Schätzung, was darauf wohl der beste Antwortzug a1 ist.

Nun führt sie z1 aus, der Gegner beginnt zu überlegen. Die Engine führt nun bei "ponder on" intern sofort a1 aus und beginnt einen Antwortzug darauf zu errechnen, während der Gegner auf seine Zeit denkt.

Wenn der Gegner seinen Zug nun etwas später ausführt, ist das
- entweder a1, dann hat die Engine die Zeit ja ideal genutzt, kann ggf. sofort antworten.
   Wenn der Gegner sehr lange nachdachte, kann die Engine nun sofort einen sogar besonders gründlich analysierten Zug ausführen.
   (Das gilt auch, wenn ich der ponder-on-Engine nut 1 Sekunde pro Zug geben will, selbst aber gerade 1 Minute grübelte!!)
- Wenn der Gegner einen anderen Zug wählte, fängt die Engine eben neu an zu rechnen,
   so als wäre "ponder off" eingestellt.

Einzelne Engines gab (gibt?) es noch, die bei sehr langen Wartezeiten beginnen, auch mehrere recht wahrscheinliche Gegnerzüge vorab mit einer möglichen Antwort zu bedenken.

Benno
Parent - - By Guenter Stertenbrink Date 2017-02-04 07:37
das macht doch keinen Sinn. Die/der engine versteift sich ja , wenn am Zug , auch nicht auf
die erste "Idee", sondern checkt auf tieferer Stufe auch weiterhin alle Moeglichkeiten.

Die Wahrscheinlichkeiten des Antwortzuges veraendern sich ja auch mit zunehmender Rechenzeit,
warum sollte dann bei veraenderter Wahrscheinlichkeit an der ersten Wahl festgehalten werden ?

Der Mensch macht einen Zug und stellt dann fest, dass er etwas uebersehen hat.
Sofort rechnet er die kritische Variante durch, und nicht etwa das was er zunaechst
erwartet hatte.
Parent - - By Benno Hartwig Date 2017-02-04 08:47
Wie oft mag der so erwartete Antwortzug passen?
Vielleicht gibt es Statistiken, ich rate mal 50%
Damit gewönne die pondernde Engine im Durchschnitt 50% an Zeit dazu (wenn der Gegner gleich viel Zeit hat).
Soo viel "Sinn" macht dieses Vorgehen denn doch!

Und deine These?
Wenn also die Engine nicht ihre Zeit nur für diesen wahrscheinlichsten Antwortzug sondern auch für unwahrscheinlichere einsetzt? Beispielsweise zur zur Hälfte für den wahrscheinlichsten und zur Hälfte für den zweitwahrscheinlichsten.
Wie willst du argumentieren, dass die Engine dann damit mehr als 50% Zeit hinzu gewinnt???
Ich denke, da kommst durchschnittlich auf ggf. deutlich kleinere Zeitgewinne.

Nein.
Allenfalls, wenn der Gegner deutlich länger über seinen Zug nachdenkt, als die Engine für einen Zug nutzen will, könnte es für sie Sinn machen, auch alternative Antwortzüge zu bedenken.
Es wurde wohl auch mal so gemacht. Ich wüsste aber nicht, dass das eine der heutigen Engines macht.

Benno
Parent - - By Thorsten Czub Date 2017-02-04 08:53
Es gibt Situationen wenn ein Gegner einen vermeintlich schwächeren Zug spielt um einen Plan umzusetzen.
D.h. Man verzichtet auf den besten Zug weil man stattdessen ein Manöver oder eine Umgruppierung der Figuren durchführen möchte
Die DANN zu einem Opfer oder einem zwingenden Zug führt der letztlich die partien gewinnt.
Parent - - By Benno Hartwig Date 2017-02-04 11:32
Klar, wenn man einen Zug ausführt, der erst bei besonders tiefer Betrachtung seine besondere Stärke zeigt, dann würde die Engine ihn ggf. nicht finden, und sie würde ihn schon gar nicht als Antwortzug vorausahnen.
Und was willst du damit begründen?
Welches Vorgehen vorschlagen? Soll die Engine beim Pondern auch die sehr vielen Züge  schon mal beantworten, die sie für schlecht hält, die sich nicht wirklich erwartet??

Ich denke, das von mir beschrieben Vorgehen ist nicht nur das meist etablierte, es ist auch sehr vernünftig:
Beim Pondern geht es immer darum, möglichst Zeit einzusparen, so Zeit dazuzugewinnen.
Und die Engine ist schon gut beraten, beim Warten zunächst die Antwort auf den Zug zu berechnen, den sie für die wahrscheinlichste Gegner-Antwort hält. (zumindest, wenn der Gegner nicht ungewöhnlich lange denkt)

Beispiel:
Gegnerzug g1 wird mit Wahrscheinlichkeit 50% erwartet
Gegnerzug g2 wird mit Wahrscheinlichkeit 30% erwartet
Gegnerzug g3 wird mit Wahrscheinlichkeit 10% erwartet

Wenn ich mich dann immer auf g1 stürze, gewinne ich im Durchschnitt 50% Zeit hinzu.
Wenn ich die anderen Züge auch beachte, verliere ich demgegenüber Zeit.

Beispiel gleiche Zeit-Verteilung für die wahrscheinlichsten 3 Antwortzüge:
1/3*50/100 + 1/3*30/100 + 1/3*10/100 = 30%
Hier gewinne ich also nur 30% Zeit hinzu.


Benno
Parent - - By Thorsten Czub Date 2017-02-04 11:36
Was ich sagen will ist, das man beim Schach nicht nur Stellungen bewerten muss. Als ob es Kreuz Worträtsel wäre die man löst, sondern
Auch Pläne umsetzen muss.

Und daran hapert es bei den Programmen noch, sie erkennen oft taktische Sachen innerhalb ihres suchhorizontes.
So kann man auch Schach spielen. Aber Schach ist mehr als das.
Das sind dann auch die Phasen wo PB oft versagt, weil die andere engine den Plan nicht erkennt.
Parent - - By Benno Hartwig Date 2017-02-04 13:08
Klar, Ein Schachprogramm geht anders vor als ein Mensch.
Und sehr guten Menschen gelingen dann manchmal Dinge, die für die Engines nicht sichtbar sind.
(Und viel häufiger gelingen Engines Dinge, die für die meisten Menschen völlig(!) unerreichbar sind.)

Meiner Meinung nach hat das aber überhaupt nichts mit Pondern zu tun,
auch nicht damit, über welche der möglichen Antwortzüge die Engine beim Pondern nachdenken möchte.
Es würde ihr nicht helfen, wenn sie statt 60 Sekunden über den wahrscheinlichen Antwortzug lieber jeweils 3 Sekunden über alle möglichen Antwortzüge nachdenken würde.
Wenn ein unerwarteter Zug dann mit sehr kleiner Wahrscheinlichkeit dann kommt, dann hätte sie gerade mal 3 Sekunden gewonnen, jetzt also 63 statt 60 Sekunden.
Also nur 5% Zeitersparnis statt der ansonsten erwarteten 50%

Benno
Parent - - By Thorsten Czub Date 2017-02-05 15:13
Ja aber wie wahrscheinlich ist denn die Chance das der Zug an dem die engine rechnet, kommt ?
Denn davon hängt doch die ganze Rechnung ab.

Die schachprogramme erstellen THESEN über die Möglichkeiten in der Partie.
Und der Gegner hat eine Gegenthese.
Parent - By Benno Hartwig Date 2017-02-05 17:07

> Die schachprogramme erstellen THESEN über die Möglichkeiten in der Partie.
> Und der Gegner hat eine Gegenthese.


Ideal wäre eben, die Engine könnte den Gegnerzug recht zuverlässig erahnen.
Kann sie nicht immer. Klar.
Das ist aber auch nicht schlimm, dann muss sie eben mit "nur" ihrer eigenen Zeit analysieren. Bekommt nicht etwas Zeit "geschenkt".
Sie kann nur versuchen möglichst oft zu erahnen, was der Gegner ziehen wird.

Aufteilen der Zeit auf mehrere mögliche Gegnerzüge macht wohl i.A. wenig Sinn. Und ist logisch auch problematisch.

Gedanken mache ich mir nur über folgende Situation:
Angenommen es wird mit ca 1 Minute pro Zug gespielt.
Und nun denkt der Gegner bereits geschlagene 10 Minuten über seinen Zug nach.
Ich als Engine habe fleißig gepondert, habe auf den erwarteten Antwortzug eine gut gesicherte Antwort gefunden. Und der Gegner denkt noch weiter.
Sollte ich jetzt meinen Zug noch tiefer analysieren, oder wäre  nun angemessen doch auch auf einen anderen Gegnerzug schon mal eine Antwort zu finden?
(Dass sowas umfangreiche Programmierung erfordert, dass das logisch problematisch ist, sei mal dahin gestellt)
Wovon werde ich durchschnittlich mehr profitieren?

Viele Grüße
Jens
Parent - - By Thorsten Czub Date 2017-02-04 08:50
Ja es wird 1 Zug genommen, der best Zug für den Gegner aus der hauptvariante.

Es gab mal einen Schachcomputer von saitek, der hatte auch den einfachen Stufen
Ein pb das viele Züge berechnet hat statt nur einem.

Das war allerdings eine Ausnahme und bei ernsthaften Levels schaltete auch dieser Computer auf das
Übliche Verfahren um.

Alle machen das so weil es mathematisch am effektivsten ist.
Die These ist ja das andere Züge schwächer sind.
Und warum sollte der Gegner einen schwächeren Zug ziehen.
Parent - - By Guenter Stertenbrink Date 2017-02-04 08:58 Edited 2017-02-04 09:12
Benno, Thorsten, eure Logic wuerde doch genauso passen fuer normales Rechnen,
wenn die/das engine am Zug ist.

Man weiss eben nicht welches der beste Zug, das kristallisiert sich erst langsam mehr
und mehr heraus. Und wie der Gegner das sieht, das ist noch schwerer vorhersehbar.
Parent - By Thorsten Czub Date 2017-02-04 09:20
Die Geräte erarbeiten sich eine hauptvariante.
Das sind die Züge die in jeder Ebene der suchen die höchsten Bewertungen ergeben.
Wenn ein Gerät 6 halbzüge rechnete kann es praktisch den ganzen suchbaum mit den 5 plies weiterführen im permanent brain.
Es würde wenig Sinn machen bei null neu zu berechnen weil das Programm ja schon 5 halbzüge ausprobiert hat.

Einige Schachcomputer machen das ganz genau so.
Selbst manche 8 Bit Schachcomputer die kein Hash haben, rechnen teilweise anders wenn sie vorhergehende Infos haben, als wenn du die Stellung neu aufsetzt und und von dort neu rechnen lässt. Es gab da eine. Stellung beim saitek d++ wo dieser einen Zug nur dann spielte wenn er vorher bei seinem vorhergehenden Zug solange gerechnet hatte bis ein bestimmter Zug kam.

Also die Geräte übernehmen Informationen in die nächsten Züge.
Da wird nicht immer bei null angefangen.

So machen Menschen das aber auch.
Es gibt sogar Programme die im suchbaum nicht die Stellung bewerten. Sondern die vor dem suchbaum einmal die Stellung bewerten
Und dann im suchbaum nur Veränderungen dieser ursprungsbewertung mit Bonus und Malus abschätzen.

Dadurch können diese Programme dann im suchbaum viel schneller sein wie Programme die die endstellung komplett neu bewerten.

Es gibt eben unterschiedlichste Lösungsansätze.

Ich finde persönlich die Ansätze am spannendsten wo Geräte eine Auswahl von Zügen , die "interessanten" weiterverfolgen während sie die uninteressanten gar nicht mehr angehen, das birgt natürlich das Risiko Dinge zu übersehen. Macht aber beim Umgang damit mehr Spaß.
Der sci sys chess Champion MK 5 von 1981 oder Mephisto III von 1983 war so ein Fall.
Ich nehme an das auch die cxg Sphinx 40/50 so funktioniert.

Aus der pc Welt fällt mir da chess system tal ein.
Parent - - By Benno Hartwig Date 2017-02-05 06:41
Noch'n Hinweis:
Mit ihrer alpha-beta Suche kann die Engine nicht nur sehr gut feststellen, welchen Zug sie für den besten Zug hält, sie wird auch sehr gut feststellen (nur ein ply weniger tiefere tiefe Analyse), welcher Zug darauf der aus ihrer Sicht beste Antwortzug ist.
Bei allen andere möglichen und aus ihrer Sicht suboptimalen Antwortzügen wird sie nur eine Widerlegung gefunden haben mit einem Analyseergebnis "Dieser Gegnerzug hat den Wert x oder er ist aus seiner Sicht sogar noch schlechter"
Welches der zweitwahrscheinlichste Antwortzug ist, kann sie also nicht gut abschätzen.

Benno
Parent - - By Thorsten Czub Date 2017-02-05 15:16 Edited 2017-02-05 15:20
Ja aber darauf kommt es an. Was nützt ein Zug ?
In jeder Stellung gibt es eine Menge x Züge die gehen. Die kann man sortieren. Nehmen wir mal
An es sind 35 zugmöglichkeiten davon gehen 3 oder 4 Züge die ungefähr gleich sind, und darüber hinaus schlechtere Züge.
Die erheblichen positions- oder materialverlust beinhalten.

Nun ponder das Dingen an 1 Zug.
Obwohl es vielleicht 4 gleichwertige gibt.

Das ist ein wenig so als wenn ich 4 Kinder habe, und nur dem stärksten was zu essen gebe,
Parent - By Benno Hartwig Date 2017-02-05 17:14
Die Engine weiß im allgemeinen nur
- welches ihrer Meinung nach der beste Antwortzug a1 ist
- dass alle anderen Antwortzüge schlechter als a1 sind
Sie weiß i.A. nicht, dass es ggf. 4 ungefähr gleichwertige Züge gibt. Sie kann diese Entscheidung nicht treffen. Nicht mit alpha-beta. Wohl allenfalls mit Verzicht auf diverse beta-Cuts.

Und auch wenn sie sie treffen könnte:
Standardmethode: ungefähr 50% Ponder-Treffer --> 50% Zeit dazu gewonnen
Deine Methode: 25% Zeit dazugewonnen (und auch das nur, wenn immer einer dieser 4 Züge kommt)


Benno
Parent - - By Wolfgang Battig Date 2017-02-04 12:29 Upvotes 1
Guenter Stertenbrink schrieb:

der konzentriert sich auf einen Zug ? Ich denke
der rechnet eben alle Varianten durch, wie sonst auch


Hast Du schonmal eine aktuelle Engine beim Pondern beobachtet? Ich glaube kaum, den wenn ja, würdest du so etwas nicht schreiben...

http://www.bilder-hochladen.net/i/m043-1-594e.jpg

Der erwartete Zug steht rechts über dem Fenster mit den Varianten, neben "Zieh", hier also 2.Sf3. Der bleibt immer gleich und die Varianten sind wie du siehst alle auf diesen Zug ausgelegt. Dahinter verzweigen die Varianten natürlich, aber Ausgangspunkt für das Pondern ist immer nur ein erwarteter Zug.

Abgesehen davon kann man es ganz leicht testen (hab ich gemacht, nebenbei erwähnt).
- Sf3, also den erwarteten Zug ausführen und die Engine wird entweder sofort antworten oder bei der erreichten Suchtiefe noch etwas weiterrechnen
- als Gegenprobe einen anderen Zug ausführen, egal welchen (2.f4, 2.Sc3, etc.) und die Engine wird "bei Null" anfangen und somit später antworten
Parent - - By Klaus S. Date 2017-02-04 19:44 Edited 2017-02-04 19:47
Wolfgang Battig schrieb:

Guenter Stertenbrink schrieb:

der konzentriert sich auf einen Zug ? Ich denke
der rechnet eben alle Varianten durch, wie sonst auch


Hast Du schonmal eine aktuelle Engine beim Pondern beobachtet? Ich glaube kaum, den wenn ja, würdest du so etwas nicht schreiben...
....

Exact den gleichen Gedanken hatte ich auch, Wolfgang, als ich Günter's Posting las ...

Mann oh mann, das sind doch Grundlagen die schon ewig so bestehen - seit Beginn der Schachcomputer-Ära in den frühen
80ger Jahren und auch im Printmedium der Css seit '84 ständig erwähnt.

Natürlich hast du und Thorsten recht, da sieht man die Experten.

Wenn das ein Neuling nicht weiß, ist das noch verständlich - obwohl man durch eigenes Testen
ruckzuck zum richtigen Schluß kommt. 
.
Parent - - By Guenter Stertenbrink Date 2017-02-05 10:52
tja, wenn das (fast) alle so machen, dadurch wird es noch nicht richtig, vernuenftig, gut.
Parent - - By Wolfgang Battig Date 2017-02-05 11:51 Upvotes 1
Ich antworte mal im selben Stil, obwohl es mir widerstrebt einen Satz mit "Tja" zu beginnen (finde ich überheblich).
Von daher
Ironie an
Tja, Günter, wenn du alles besser weißt bzw. meinst zu wissen (ist mir auch in anderen Threads aufgefallen), dann setz dich vor deinen Rechner und setze deine Ideen in die Tat um. Wenn fast alle das deiner Meinung nach falsch machen. Bin gespannt wie weit du kommst.
Ironie aus

Für mich ist hier EoD weil nur noch am Rande "on topic". Die Eingangsfrage von Willi wurde ja ausreichend beantwortet.
Parent - - By Guenter Stertenbrink Date 2017-02-05 13:32
das finde ich unabhaengig von der Eingangsfrage interessant , warum die
meisten das so machen, nur einen Zug zu analysieren.
Hash koennte eine Rolle spielen,
wird der Hash von Zug zu Zug , von Zug zu Ponder zu Zug
gespeichert und weiterbenutzt ?
Parent - By Benno Hartwig Date 2017-02-05 14:09
Liest du auch, was man dir schreibt?
Ich hatte dir vorgerechnet, warum normalerweise
- jede Prüfung eines anderen Zuges weniger Zeitgewinn erwarten lässt
- warum die Beurteilung anderer als des besten Antwortzuges schwierig/aufwändig/zeitvergeudend ist.

Benno
Parent - - By Benno Hartwig Date 2017-02-05 14:05 Edited 2017-02-05 14:07
Ich denke, es wurde dir recht gut erklärt, warum das alles schon so Sinn macht.
Teilweise wurde sogar begonnen, dir zu erklären, warum manche andere Idee, die man haben kann, weniger gut ist.
Ich befürchte, eine von diesen schwebt dir vor.

Sage doch einfach, welches konkrete Vorgehen du für effektiver hältst, und du bekommst dann Kommentare dazu.
Einfach nur, mir wohl recht wenig eigenem Verständnis, zu rufen "das ist mir alles nicht gut genug, das muss doch besser gehen!" wirkt erst mal nur ziemlich schwach.
Dass du tatsächlich eine bessere Idee hast, erwarte ich jetzt erst mal nicht, aber wer weiß. Stelle sie einfach vor...

Benno
Parent - - By Guenter Stertenbrink Date 2017-02-05 19:48
auf die Gefahr mich zu wiederholen ...

Die Engine weiss nicht, welches der beste gegnerische Zug ist.
Sie hat nur eine mehr oder weniger genaue Abschaetzung.
Wieviel Zeit soll sie nun investieren, um diese Abschaetzung zu verbessern,
bevor sie sich dann voll und ganz auf den einen gegnerischen Zug stuerzt ?
Offensichtlich ist doch eine bessere Abschaetzung von Nutzen,
erhoeht sie doch die Wahrscheinlichkeit, dass die folgende
Arbeit nicht umsonst sein wird.

Ich wuerde so rechnen, als waere ich am Zug.
Parent - - By Benno Hartwig Date 2017-02-05 20:31 Edited 2017-02-05 20:40
Es geht nicht darum, die Einschätzung zu verbessern.
Es geht nur um Maximierung der Zeitersparnis. Zeit für eine Analyse hat die Engine gleich sowieso. Dieses Zeitpolster kann sie aber ggf. vergrößern.
Mache bitte einfach mal einen ganz konkreten Vorschlag wie sie ggf. umgehen soll mit möglichen Antwortzügen, denen sie unterschiedliche Qualitäten zuordnet.

Angenommen die engine habe tatsächlich die Vorstellung, wirklich nur in Frage kommen nur 3 Antwortzüge (wie auch immer sie zu dieser Einschätzung gekommen sein mag.)
a1 kommt mit Wahrscheinlichkeit 0,5 (nur die Einschätzung der Engine. Aber was anderes hat sie ja nicht. Aber immerhin.)
a2 kommt mit Wahrscheinlichkeit 0,3
a3 kommt mit Wahrscheinlichkeit 0,1
Auf den Rest  verteilt sich das restliche 0,1

Wenn sie sich dann immer auf den ersten Zug der Liste stürzt, wird sie ca. 50% Zeit dazugewinnen. (Standardmethode)
Welche Verteilung der Zeit auf andere Züge stellst du dir vor? Und was glaubst du, was da für ein Zeitgewinn herauskommt?

Ich befürchte, du weißt einfach zu wenig davon, was Engines bei der Suche eigentlich treiben.

Benno
Parent - - By Michael Strehle Date 2017-02-06 00:29 Edited 2017-02-06 00:33
Benno Hartwig schrieb:

Es geht nicht darum, die Einschätzung zu verbessern.
Es geht nur um Maximierung der Zeitersparnis. Zeit für eine Analyse hat die Engine gleich sowieso. Dieses Zeitpolster kann sie aber ggf. vergrößern.
Mache bitte einfach mal einen ganz konkreten Vorschlag wie sie ggf. umgehen soll mit möglichen Antwortzügen, denen sie unterschiedliche Qualitäten zuordnet.


Ganz einfach. Bei Guis z. B. Arena werden die errechneten Varianten und ihre Bewertung ja untereinander angezeigt, also sortiert. Die besten 'Varianten natürlich oben, und die wird zum Schluss genommen. Man könnte auch die ersten drei Varianten verwenden, mit der Argumentation, diese drei Varianten sind von den 15? die wahrscheinlichsen.
Das wurde auch schon mal gemacht. Bei Saitek 1985. Die berühmte Sofortantwort "http://www.schach-computer.info/wiki/index.php?title=Saitek_Team-Mate" weiter unten bei "Info". Von diesen Geräten wurde im Ponder, damals "Permanent Brain" genannt, drei Möglichkeiten analysiert und entsprechend geantwortet. Und vermutlioch die drei Besten...  Das wurde damals auch stark beworben. Und wurde bei menschlichen Gegenspielern oft auch als lästig empfunden.

Benno Hartwig schrieb:


Angenommen die engine habe tatsächlich die Vorstellung, wirklich nur in Frage kommen nur 3 Antwortzüge (wie auch immer sie zu dieser Einschätzung gekommen sein mag.)
a1 kommt mit Wahrscheinlichkeit 0,5 (nur die Einschätzung der Engine. Aber was anderes hat sie ja nicht. Aber immerhin.)
a2 kommt mit Wahrscheinlichkeit 0,3
a3 kommt mit Wahrscheinlichkeit 0,1
Auf den Rest  verteilt sich das restliche 0,1

Wenn sie sich dann immer auf den ersten Zug der Liste stürzt, wird sie ca. 50% Zeit dazugewinnen. (Standardmethode)
Welche Verteilung der Zeit auf andere Züge stellst du dir vor? Und was glaubst du, was da für ein Zeitgewinn herauskommt?

Ich befürchte, du weißt einfach zu wenig davon, was Engines bei der Suche eigentlich treiben.

Benno

Was mir nicht ganz klar ist, woher kommt deine Einschätzung, bei der  Variante mit der besten Bewertung wird der Gegenzug mit 50%iger Wahrscheinlichkeit getroffen? Nach meiner (subjektiven) Erfahrung ist die 'Trefferwahrscheinlichkeit um einiges geringer.

Grüße
Parent - By Benno Hartwig Date 2017-02-06 08:41

> Ganz einfach. Bei Guis z. B. Arena werden die errechneten Varianten und ihre Bewertung ja untereinander angezeigt, also sortiert.


Das passiert nur(!) wenn du dies ausdrücklich so anforderst.
Und die Suche ist dann spürbar langsamer, als wenn du nur den besten Zug verlangst.

Bei solch einer normalen Suche (nur besten Zug finden) versucht die Engine (meist auch sehr erfolgreich) diesen besten Zug durchzuanalsysieren und die anderen nur zu widerlegen.
"Finde eine Antwort, die zeigt, dass der Zug schlecht ist. Ob es dann noch stärkere Widerlegungen gibt, interessiert dann nicht mehr, und es wird nicht mehr nach ihnen gesucht."
Die Bewertung solcher Antwortzüge hat dann nur noch die Qualität "Hat den Wert x oder eventuell auch viel schlechter!"
Das ist eben der ganz normale beta-Cut solche einer alpha-beta-Suche.
Darum hat die Engien diese Reihenfolge der Züge normalerweise nicht.

> Was mir nicht ganz klar ist...


Sorry, das ist nur meine Schätzung für das Spiel gegen andere Engines. Griff ich zu hoch?
Immerhin kam der in der Schachprogrammierung sehr profilierte Prof. Hyatt auch zu solch einer Einschätzung, siehe hier.
"Current approach results in at _least_ 50% ponder hits. That means that 50% of the time you ponder correctly, and can probably make a move in zero time, which saves 50% of your time for use on other moves."

Benno
Parent - By Wolfgang Battig Date 2017-02-06 10:20
Michael Strehle schrieb:

...
Was mir nicht ganz klar ist, woher kommt deine Einschätzung, bei der  Variante mit der besten Bewertung wird der Gegenzug mit 50%iger Wahrscheinlichkeit getroffen? Nach meiner (subjektiven) Erfahrung ist die 'Trefferwahrscheinlichkeit um einiges geringer.

Grüße


Ingo Bauer ("IPON"-Liste") hat dazu Ende des Jahres ein Experiment mit Hilfe eines Tools gemacht, das seine Top16-Datenbank nach Pondertreffern untersucht. Das zeichnet ein anderes Bild.

Resultat: 57,2% Trefferquote! Bei 3.300 Partien je Engine sicher ein aussagekräftiges Ergebnis!
Wenn man nur die Top3 nimmt liegt die Quote wenn ich Ingos Mail richtig verstanden habe bei über 68%!! Dem liegen aber "nur" 440 Partien je Engine zugrunde. Bei aller gebotenen Vorsicht könnte man daraus schließen, dass die Trefferquote steigt je näher die beteiligten Engines spielstärkemäßig beieinander liegen. Zwischen Platz 1 und 3 liegen bei Ingo 38 Punkte, zwischen 1 und 16 sind es 366.

Näheres dazu unter http://inwoba.de/index.html. Den Eintrag findet man, wenn man bis zum 30.11.2016 runterscrollt.
Parent - By Benno Hartwig Date 2017-02-06 10:39

> Das wurde auch schon mal gemacht. Bei Saitek 1985


Ah, thanks. Ich erinnerte, dass das mal gemacht wurde, aber nicht welches Gerät das konnte.
Für einen Werbespruch ist das sicher praktisch.
In Einzelfällen mag es auch tatsächlich einen Vorteil gebracht haben.
Aber im Durchschnitt? Ich glaube nicht, dass da was Vorteilhaftes gemacht worden war.

Übrigens
"Wie seine programmverwandten Brüder ist er dadurch zu der sog. Sofortantwort fähig" steht da mal einfach so.
Ich denke, eher das Gegenteil ist richtig.
Wenn der Gegner ungefähr so lange rechnet, wie das Programm rechnen möchte, dann kann es einen Sofortzug machen, wenn es diese Zeit für eine einzige Analyse nutzte. Wenn es diese Zeit aber drittelte, wenn es also nur 1/3 dieser Zeit auf die tatsächlich erfolgende Antwort verwendete, dann sollte es lieber noch etwas weiterdenken, finde ich.

Sofortzüge wären dann nur zu erwarten, wenn der Gegner wirklich 3 mal so lange grübelte, wie es dem Programm gegönnt wird!
Praktisch ist dies ggf. aber wohl oft so "10 Sekunden hat das Programm, aber ich gönne mir im Durchschnitt schon eine Minute." Aber ich glaube nicht, dass auf solche Situationen getunt wird.

Benno
Parent - - By Guenter Stertenbrink Date 2017-02-06 05:42
du scliesst einfach von vornherein aus, dass die Verbesserung der
Einschaetzung nuetzlich ist ?! .Dann natuerlich ....

----------------------------------
Nimm die Anfangsstellung, ohne Buch. Schwarz pondert zufaellig
T Minuten lang irgendeinen der 20 Zuege mit Wahrscheinlichkeit 5%
Ist das deine Strategie ?
95% Wahrscheinlichkeit, dass alles umsonst war.
Erwartungswert T/20.
Nun verwende ich 50% der Zeit damit, die Zuege abzuschaetzen,
das erniedrigt obige Wahrscheinlichkeit wohl auf unter 80%.
(e4,d4,Nf3,c4) Erwartungswert >T/5/2=T/10

--------------------
Jetzt eine schwierige taktische Stellung mit Opfer.
Nach T/2 merkt die Engine dass der zunaechst erwartete Zug nicht geht,
die subjektive Erwartungs-Wahrscheinlichkeit von 30% auf 10% abfaellt.
Soll sie die restlichen T/2 Minuten dann trotzdem daran weiterrechnen ?
Kein Mensch macht sowas.
Parent - - By Benno Hartwig Date 2017-02-06 07:22

> Nun verwende ich 50% der Zeit damit, die Zuege abzuschaetzen, das erniedrigt obige Wahrscheinlichkeit wohl auf unter 80%.


Diese Aufgabe hat die Engine ja gerade bereits erledigt, und der eine vermutete Antwortzug ist das Ergebnis dieser sehr umfangreichen Abschätzung.

Grund ist die alpha-beta-Suchweise.
Bei ausreichend guter Zugsortierung (und die Entwickler legen darauf seehhr viel Wert), sieht der Suche ungefähr so aus.

...
Suche mit Tiefe (t) lieferte nicht nur einen besten Zug sondern eine beste Hauptvariante (Zug, Antwortzug, Antwort auf den Antwortzug,...)
Dieser Antwortzug ist immerhin schon mit Analysetiefe (t-1) nach Engine-Logik sauber abgesichert. Sie hat ihn bei Tiefe (t-1) vollständig mit allen alternativen Antwortzügen verglichen und so ihr Ergebnis gewonnen.
Und dieser Antwortzug ist dann die Vermutung, die das Pondern begründet.
Übrigens:
Bei Stockfish hat diese Analyse der Antwortzüge auf den gewählten Zug so ungefähr die Häfte(!) der Zeit verbraten, die für Tiefe (t) aufgewandt worden ist.
Diese Zeit für Tiefe (t) ist ganz grob auch die Hälfte der Zeit, die überhaupt für diese Suche verwendet wurde (alle Tiefen 1, 2,... t)

Welche sinnvolle Vorabanalyse während der Gegnerzeit soll die Engine denn nun noch ausführen, um diese Antwortzugschätzung zu verbessern, um dann erst mit der eigenen Zugwahl zu beginnen?

50% Pondertreffer war nur eine Bauch-Schätzung.
Sicher hängt die Trefferrate auch vom Gegner ab (ein Derivat der eigenen Entwicklungslinie, eine ganz andere Engine, ein Mensch, ein unternehmungslustiger Mensch...).
Klar, ich kann nicht ausschließen, dass der Prozentsatz durchweg kleiner ist. Auf die Schnelle fand ich im Netz nichts dazu. Das ändert aber nichts an der Argumentation.

> Soll sie die restlichen T/2 Minuten dann trotzdem daran weiterrechnen ?


Ja, ich stimme dir zu. Es sind Fälle denkbar, wo ein anderes Vorgehen sinnvoll sein mag.
- Dazu mag dein Fall gehören
   (Engine hielt Antwortzug für gut, erkennt nun aber, dass er schlecht ist. Dann kann man gern auch beginnen, eine andere Antwort zu erwarten)
   Aber beachte: bei Tiefe (t-1) hatte die Engine davon noch nichts gesehen gehabt! Auch jetzt würde sie sowas erst nach sehr erheblicher Denkzeit erkennen, wenn sie eben über den alten Horizont hinaus kam.
- und ich erwähnte oben ja auch schon den Fall "ewig lang denkender Gegner", wo die zusätzliche Analyse auf einen anderen Antwortzug auch sinnvoller sein könnte als  die nochmalige Vertiefung

Ich denke aber das sind eher seltene Spezialfälle. Der Erfolg eines alternativen Vorgehens ist zumindest fraglich. Und die Implementierung wohl vergleichsweise komplex.

Benno
Parent - - By Guenter Stertenbrink Date 2017-02-06 07:37
oftmals fehlt die pv, z.B. bei erzwungener Wiedernahme. Oftmals sind die Schwankungen so stark,
dass sich die eval staendig aendert, die Abschaetzung ("fail high","fail low")
Mit droidfish wird das staengig angezeigt mit >=,<=  [ , dann hab ich keine vernuenftige eval]

------------------------------------------------------------

aber selbst wenn die eval sich nicht aendert ist es besser die Bedenkzeit aufzuteilen.

Nehmen wir an, es gibt 2 gleichbewertete Zuege und keinen anderen.
Die Benno Engine waehlt zufaellig einen aus zum pondern,
hat also mit Wahrscheinlichkeit 50% die doppelte Bedenkzeit
fuer den naechsten Zug und mit Wahrscheinlichkeit 50% die einfache.

Die Guenni Engine rechnet beide Zuege gleichmaessig durch, hat
also mit Wahrscheinlichkeit 100% die 1.5-fache Bedenkzeit
fuer den naechsten Zug. Sagen wir Bedenkzeitverdopplung
entspricht 50Elo, than entspricht die 1.5-fache Bedenkzeit
einem Zuwachs von etwa 29Elo, also ein Vorsprung von
4 Elo fuer die Guenni Engine

-------------------------------------------

ich vermute mal, die Benno-engine ist einfach nur einfacher zu programmieren
und die meisten Turniere haben eh ponder-off
Parent - - By Thomas Müller Date 2017-02-06 08:14
Hallo Guenter,
Zitat:
und die meisten Turniere haben eh ponder-off

welche meinst du da jetzt?
so nebenbei.... warst du schon einmal auf dem CB-Server im engine-raum?

gruß
thomas
Parent - - By Guenter Stertenbrink Date 2017-02-06 11:53
die Ratinglisten haben meist ponder off
http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=9252

also ist es nicht sehr attraktiv fuer die Programmierer,
die ponder-on-Elozahl zu verbessern

CB = chessbase ? Wahrscheinlich war ich jenem Raum, erinnere es jetzt aber nicht.
Was'n da los ? Wird da viel rumgepondert ?

chessprogramming wiki fragt sich auch was besser ist
https://chessprogramming.wikispaces.com/Pondering
The question is whether it is advantageous to search from opponent's point of view,
considering all its moves, or to search from own point of view after premature making
the predicted move.
Parent - By Benno Hartwig Date 2017-02-06 12:36 Edited 2017-02-06 12:49

> Was'n da los ? Wird da viel rumgepondert ?


Ich denke mal:
Fast immer dann, wenn auf einem Rechner (oder einigen Rechnern) das ganze Turnier stattfindet, also alle Engines rechnen, wird gern ohne pondern gespielt.
Du bekommst dann halt in der selben Zeit die doppelte Anzahl Spiele absolviert.

Und immer dann, wenn du auf deinem Rechner ein möglichst starkes Spiel gegen eine Engine auf einem anderen Rechner hinbekommen willst und die Kiste sonst nichts zu tun hat, dann stellst du das Pondern an. Ein vernünftiger Grund, dies dann nicht zu tun, fällt mir einfach nicht ein.
Erhoffter Zeitgewinn: vielleicht ca. 50%, dadurch erreichter ELO-Gewinn: vielleicht so ganz ungefähr 30.
Schaden, wenn die Engine partout nun überhaupt keinen Ponder-Treffer hat : keiner.

Benno
Parent - - By Thomas Müller Date 2017-02-06 12:58 Upvotes 1
Zitat:
CB = chessbase ? Wahrscheinlich war ich jenem Raum, erinnere es jetzt aber nicht.
Was'n da los ? Wird da viel rumgepondert ?


darum geht es ja in dem eingangsposting
CB= chessbase genau
Wer dort eng vs. eng spielt, lässt immer mit ponder spielen.
Vereinzelte evtl. nicht weil sie was testen wollen ?!
Aber die Masse alle mit "auf Gegnerzeit" rechen
Auf Infinity bestimmt auch praktish alle.

IPON-Rangliste ist mit ponder
CEGT 5+3 auch mit ponder
Wenn ich mein ECT laufen lasse...mit ponder
vermutlich gibt es noch mehr

Also so pauschal laufen doch nicht "alle" ohne ponder
Parent - - By Guenter Stertenbrink Date 2017-02-06 14:18
btw. kann ich irgendwo Partien mit e4,c5,Nf3,d6,d4,cd4,Nd4,Nf6,Nc3,a6,Be3,e6,a3 spielen ?
Parent - By Thomas Müller Date 2017-02-06 15:36
auf dem eigenen PC bzw GUI mit vorgabestellung ja
Selbst auf playchess -also der engineraum von CB- geht das glaube ich mit "züge senden" oder so ähnlich.
Wenn man jemand findet (per chat) der das mitmacht ?!?
War schon ca. 1 Jahr nicht mehr online, aber das müsste jemand wissen der öfters dort spielt.
Parent - By Wolfgang Battig Date 2017-02-06 14:20
Thomas Müller schrieb:

....
IPON-Rangliste ist mit ponder
CEGT 5+3 auch mit ponder
Wenn ich mein ECT laufen lasse...mit ponder
vermutlich gibt es noch mehr

Also so pauschal laufen doch nicht "alle" ohne ponder


Spontan fällt mir noch die SSDF ein, auch wenn sie mangels Aktualität im Enginebereich kaum noch Bedeutung hat. Aber es werden dort auch Brettcomputer und das ein oder andere Programm für Tablet/Smartphone getestet, was sie zumindest in dem Bereich noch halbwegs interessant macht.

Frank Quisinsky hatte früher auch mal eine Ponder=ON Liste, hat das dann aber aufgegeben.
Parent - By Benno Hartwig Date 2017-02-06 08:44

> und die meisten Turniere haben eh ponder-off


Wenn jemand auf seinen Rechnern Engine-Turniere spielt, ist der Grund für das "Ponder=off" aber wohl eher der, dass er dann bei gleichen Zeitvorgaben doppelt so viele Partien durchbekommt! 
Für die ganze zeitraubende Veranstaltung immerhin nur halb so viel Zeit braucht!
Benno
Parent - By Wolfgang Battig Date 2017-02-04 12:01 Upvotes 3
Willi, lass dich von der Diskussion nicht beirren. Benno hat völlig recht, im Maschinenraum ist Ponder=ON auf jeden Fall anzuraten. Dein Rechner hat während der Gegner rechnet ja eh nix zu tun...
Ich bin mir sicher, dass praktisch jeder dort mit Ponder spielt, da es zumindest die Chance bietet Bedenkzeit einzusparen. Wieviel das ist wird von Partie zu Partie variieren, je nachdem wieviele Pondertreffer die Engine hat, d.h. wie oft sie den nächsten Zug deines Gegners "errät". Wie die Engine das letztlich macht ist in dem Zusammenhang völlig egal
Up Topic Hauptforen / CSS-Forum / Computerschach Engine Raum Schach DE

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill