Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Frage an einen Schachprogrammierer ...
- - By Frank Quisinsky Date 2024-01-04 09:35 Upvotes 1
Es gab früher Programmierer, die wie folgt beim Zeitmanagement optimiert haben.
Wenn ich 5-Steiner verwende, kann ich der Engine mehr Zeit im Mittelspiel geben.
z. B. machte das Sylvain Renard (Capture).

Spielt das heute überhaupt noch eine wesentliche Rolle?

Hoffe der Programmierer von RubiChess liest das.
Er kann das sicherlich sehr einfach beantworten.

Was passiert mit dem Zeitmanagement wenn ich syzygy rauslasse?
Wird das Zeitmanagement der Engine negativ beeinflusst bzw. wird heute überhaupt noch so optimiert, dass durch Endspieldatenbanken ein Bonus für das Mittelspiel an Zeit vergeben wird?

Grundsätzlich teste ich mit x Züge in x Minuten.
Da lief immer alles zu meiner vollsten Zufriedenheit.

Beim Test mit x Minuten + x Sekunden pro Partie bin ich nicht immer zufrieden bei dem was ich sehe.
Zu viel Zeit wird im Mittelspiel verbraten und dann gibt es im Endspiel Zeitmangel.
Dann verstehe ich z. B. auch warum Swindle-Mode um Punkte einzufahren wenn denn heute eher mit Fischer getestet wird.
Parent - - By Robert Bauer Date 2024-01-05 15:25 Upvotes 1
Hallo Frank,

Man hat doch in den meisten Engines die Einstellung SyzygyProbeDepth.
D.h. ob 5-, 6- oder 7-Steiner Syzygy verwendet werden sollen - wenn überhaupt.
Ansonsten ist da keine Zauberei  dahinter.
Wenn z.B. 6-Steiner aktiviert sind, dann versucht die Engine jede 6-Steiner-Position, die in irgendeinem Baumzweig der Ausgangsposition erreicht wird, auch in den Syzygys nachzuschauen.
Dafür spielt die Geschwindigkeit des Festplattenzugriffs die wesentliche Rolle.
Das ist keine Last für den Prozessor. Im Gegenteil könnte sich die Engine sogar Rechenzeit sparen, da er für 6-Steiner nicht mehr Positionszweige mit 5-Steinern etc. durchnudeln muss.
Dies fällt aber wahrscheinlich nicht besonders ins Gewicht, da Bäume mit wenig Steinen vergleichsweise klein sind und schnell durchgerechnet werden können.
Je näher man dem Endspiel kommt, umso mehr spielen die Festplattenzugriffe eine Rolle, was man am Rückgang der kN/s merkt.

Ich möchte hier fragen, was die Engine macht, wenn Syzygy50MoveRule aktiviert ist. In den Syzygy ist meines Wissens keine 50-Züge-Regel hinterlegt. Daher muss wohl dann der Prozessor die Arbeit übernehmen und entsprechend die Bäume durcharbeiten und dabei selbst die 50-Züge-Regel beachten.

Gruß, Robert
Parent - By Andreas Matthies Date 2024-01-06 07:43 Upvotes 2
Robert Bauer schrieb:

Ich möchte hier fragen, was die Engine macht, wenn Syzygy50MoveRule aktiviert ist. In den Syzygy ist meines Wissens keine 50-Züge-Regel hinterlegt. Daher muss wohl dann der Prozessor die Arbeit übernehmen und entsprechend die Bäume durcharbeiten und dabei selbst die 50-Züge-Regel beachten.


Doch, genau das liefern die Syzygy TB: Eine differenzierte Aussage, ob ein Gewinn innerhalb oder außerhalb der 50-Züge-Regel erzielt werden kann: https://github.com/syzygy1/tb/blob/fcac7a0b9d32a53ac11eb015837dae03347998e8/interface/tbprobe.cpp#L386
Und Engines, die die Syzygy50MoveRule Option implementieren, nutzen eben genau diese Information, um Positionen, bei denen die TB "1 : win, but draw under 50-move rule" liefert, entweder als Sieg, sofern der Benutzer Syzygy50MoveRule auf false gesetzt hat oder aber als unentschieden (falls Syzygy50MoveRule=true) zu bewerten.
Parent - - By Frank Quisinsky Date 2024-01-06 10:28 Edited 2024-01-06 11:00
Hi Robert,

die Beeinflussung durch syzygy oder Fischer oder der verwendeten Zeitkontrolle hat schon Auswirkungen.
Genau das ist wichtig, wenn mit längerer Bedenkzeit getestet wird.
Nehme ich z. B. die Engines alle raus die einen hohen Züge Durchschnitt produzieren kann ich mehr Partien produzieren und habe auch bei statistischen Auswertungen mehr klare Resultate.

Durch syzygy verringert sich grundsätzlich der Züge Durchschnitt, weil Remis früher erkannt wird.
Das kann dann wieder beeinflusst werden durch so eine Art Schwindel-Modus.
So nach dem Motto, vermeide dennoch Remis, denn der Gegner könnte ja einen Fehler machen.
Was durchaus nicht unlogisch ist, denn einige Engine verwenden die syzygy Daten nicht.

Auch stimmt oft die Mattführung nicht durch den wahrscheinlich zur Verfügung stehenden Code bei der Einbindung der syzygy Datenbanken.
Das ist wieder schlecht, um anhand Züge Durchschnitt der Gewinnpartien Vergleiche anzustellen. Denn wenn Engines mithilfe der syzygy Daten spielen, kommt es oft zu Konstellationen das Bauern umgewandelt werden, die Figur dann gegeben wird, der nächste Bauer umgewandelt wird, wieder gegeben wird, um bei immer weniger Figuren auf dem Brett dann offenbar schneller Matt zu setzen (letztendlich dauert es deutlich länger).

Ohne syzygy kommt es bei einigen Engines nicht zu diesem Problem, meine Engine die syzygy zwar können, aber wenn die Endspiel-Datenbanken dennoch nicht eingebunden werden, legen die betroffenen Engines dann eine völlig normale Mattführung aufs Parkett.

Bei der Bedenkzeit ist es so, dass z. B. bei der Zeitkontrolle, die ich derzeit verwende, 66 Minuten + 6 Züge, es dazu kommt, dass im Endspiel geblitzt wird. Offenbar scheint in diesem Fall der Schwindel-Modus gar zu greifen und klare Endspiele werden wirklich noch verloren. Passiert zwar auch selten aber erklärt letztendlich, warum Programme dann einen so hohen Züge Durchschnitt produzieren, weil so eine Art Swindle-Modus implementiert, ist der sich aber mittels einer UCI-Option nicht ein- oder ausschalten lässt. Ferner reduziert Contempt = 0 den Züge Durchschnitt.

Alles unter einen Hut zu bekommen, geht nicht.
Also, z. B. optimaler Züge Durchschnitt aller Partien, liegt ohne Aufgabefaktor bei ca.  86-88 Zügen oder im im Detail geschaut optimaler Züge Durchschnitt der Remis Partien oder der Gewinnpartien.

Zu Deinen Anmerkungen:
Früher gab es die schnellen SSD nicht. Erhöhten wir von 4-Steiner (machten bei einzelnen Engines ca. +15 Elo aus) auf 5-Steiner wurden aus +15 Elo dann +-0 Elo. Das lag daran, weil durch den Zugriff auf die TBs die Engines deutlich langsamer wurden und dann der Vorteil weg war. Bei dem Einsatz von SSD steigerte sich dann bei einzelnen Engines der Zuwachs von +15 Elo auf bis zu +20 Elo. Diese Aussagen sind mit Vorsicht zu genießen, hatte das bei verschiedenen Ratingliste testweise nur mit insgesamt 4 Engines getestet.

Hatte vor mehr als 10 Jahren Hinweise zu den ganzen Beeinflussungsfaktoren zusammengetragen.
Ein langes Dokument, wenn Du magst, lade ich das noch mal hoch.

Die Fragen, die ich mir stelle, sind:

1. Bei Verwendung von Fischer Zeitkontrollen ist es im Grunde fast egal wie hoch der Züge Durchschnitt ist. Die Partien laufen nicht großartig länger (von der Zeit her gesehen, nicht vom Züge Durchschnitt) und offenbar greifen dann auch hier und da Ideen noch Punkte bei Remis Stellungen einzufahren. Nur Schönheitspreise werden mit langen Partien auch nicht gewonnen und viele erarbeiteten Statistiken greifen nicht weil viele mit Züge Durchschnitt zu tun haben. Statistiken sind aber wieder wichtig, um mehr über Stärken und Schwächen herauszufinden.

2. Bei Verwendung von x Züge in X Minuten sehe ich nicht, dass durch Schwindel-Mode oder Contempt Punkte bei Remis Stellungen noch eingefahren werden. Es ist zu viel Zeit im Endspiel vorhanden und offenbar produzieren dann die aktuellen TOP-50 selten bis gar nicht Fehler.

Bedeutet:
- es macht Sinn, dass die Programmierer UCI Optionen anbieten die Swindle-Mode einschalten oder ausschalten oder wenn versteckter Contempt (wie z. B. bei Revenge Release) dieser sich dann einschalten oder ausschalten lässt.
- es macht Sinn den offiziellen Code der syzygy mal zu überarbeiten. Wahrscheinlich haben das Problem aber schon viele Programmierer erkannt und selbst Hand angelegt.

Ansonsten gibt es keine perfekten Lösungen, um den Züge Durchschnitt zu drücken.
Einzig was geht auf die Engines, die einen hohen Züge Durchschnitt produzieren, zu verzichten (wenn keine Optionen vorhanden sind diesen zu drücken).

---

Wobei meine Frage noch nicht beantwortet, ist:
Wird sich ein Ausschalten der syzygy (wenn Support vorhanden ist) heute negativ auf das Zeitmanagement auswirken?
Ich habe ja oben ein Beispiel genannt, warum ich frage!

Viele Grüße
Frank

Und zum Spaß Faktor:
- Fischer zu beobachten, macht mehr Spaß als x Züge in x Minuten.
- aussagekräftigere Ergebnisse erzeugt allerdings x Züge in x Minuten, weil es im Endspiel zu weniger Fehlern kommt.

Und wie immer ... in beiden Fällen gibt es Engines bei denen das Zeitmanagement zu Variante 1 oder 2 nicht optimal erscheint. Berserk hat bei dem vorherigen Turnier 5 Partien verloren, weil kurz vor der Zeitkontrolle keine Zeit mehr vorhanden war. Dem Programmierer scheint es egal zu sein, wenn ich seine Aussagen in TalkChess richtig verstehe. Ich könnte jetzt mal hingehen und aufzeigen, wo überall bei Fischer Zeit das Zeitmanagement nicht OK ist bzw. oft unglücklich ausschaut. Aber die ganzen Probleme gab es immer schon, wenn wirklich viele Programme in einem Turnier sind. Niemand kann erwarten, dass alle Programme immer alles richtig machen. Ich kann mich bei den vielen Ratinglisten nicht daran erinnern und zu bemängeln gibt bzw. gab es immer schon einiges.
Parent - - By Frank Quisinsky Date 2024-01-06 10:43 Edited 2024-01-06 10:50
Achso ...

Ist generell die Frage:
Komplett auf syzygy verzichten bedeutet die Partien laufen länger.
Nicht zu verzichten bedeutet oftmals stimmt die Mattführung nicht.

Und ferner stellt sich die Frage, ob durch Verwendung der syzygy Daten überhaupt noch große Spielstärke-Vorteile erreicht werden.
Wahrscheinlich sind es weniger Elos als früher beim Einsatz der Nalimov Daten, denn zwischen früher und heute hat sich natürlich einiges getan.

Auch ganz sicher ein Grund warum viele Programmierer ganz auf die Endspieldatenbanken verzichten.

Sehe selbst z. B. keinen klaren Vorteil für Endspieldatenbanken beim Eng-Eng Test.
Endspieldatenbanken sind grudsätzlich für Vergleiche eher schlecht als gut.
Es kann nur verglichen werden was vergleichbar ist, daher entweder alle mit oder alle ohne und alle mit geht nicht.

Aber aus vielen Gründen ist das so einfach auch nicht zu sagen (bin mir selbst unsicher).
Ist wie mit den Hash-Tables.

Lasse mit 1GB spielen.
Wasp z. B. braucht die nicht, John sieht das auch nicht so gern.
Nur mit 1Gb anstatt vielleicht bei 66 Minuten + 6 Minuten mit 256Gb spielen zu lassen wirkt sich auch nicht negativ aus.
Insofern alle mit 1Gb aber so richtig ist das nicht.

Am Ende vom Tag ... es gibt keine perfekten Konstellationen an Bedingungen für einen Test, wenn denn viele Programme gleichzeitig gestestet werden.
Ist mir natürlich klar aber wenn in Kombination der Zügedurschnitt drastisch ansteigt kann ein wenig darauf reagiert werden.
Was ich gerade mache und ja auch funktioniert.
Leider muss ich dann auf einige der Programme verzíchten.

Viele Grüße
Frank
Parent - By Frank Quisinsky Date 2024-01-06 11:56 Edited 2024-01-06 12:01
Und noch ein Hinweis:

Gibt nicht so viele Leute die versuchen etwas über Stärken und Schwächen herauszufinden.
Wenn ich zurückblicke vertragen die Geister ja eher der Meinung ... alles Zufall, Engines können keinen Spielstil produzieren.
Darüber gab es schon unzählige Diskussionen!

Insofern auch klar, dass es vielen egal ist wie hoch ein Züge Dürchschnitt ist oder viele mit Aufgabefaktor spielen lassen.
Die meisten schauen eher auf Elo (warum auch immer, halte ich für total langweilig).

Nur, wenn Engines kontraproduktiv unterwegs sind ist das schlecht.
z. B. Booot.

Hat keine syzygy und schätzt Endspiele total falsch ein. Vermeidet dann aus Engine Sicht logisch auch ein Remis wenn bei einem falscher Läuferendspiel +3 und höher ausgegeben wird.
Aber wenn dann genau diese Engines auch noch 50-Züge Regel vermeidet (zu sehen in anderen Endspielen), sei es aufgrund Swindle-Mode oder versteckten Contempt ist das kontraproduktiv.
Genau das erhöht völlig unnütz den Zügedurchschnitt.

Wenn man dann weiß, das z. B. vor Neural-Network gerade Booot auch ohne Syzygy mit den besten Züge Durchschnitt überhaupt hatte, stellen sich Fragen.
Und diese Fragen dann nicht nur bei Booot.

Zurück zu Booot
Wenn denn ein Booot 6.4 oder 6.5 im Vergleich zu der aktuellen Version 7.2 einen unnötigen Zügedurchschnitt produziert der zwischen 20-25 Züge höher liegt.
Also im Durchschnitt eine Partie 20-25 Züge länger läuft.

Unnötig Zeit, Strom einfach vergoldet wird und das dann direkt bei vielen der aktuellen TOP-50 Engines ist das einfach Murks.
Wie gesagt, was andere vielleicht nicht verstehen ... vielleicht weil Sie sich noch nie mit Booot beschäftigt haben oder für denen nur Elo wichtig ist.

Die Interessen der Tester sind bekanntlich unterschiedlich, klar zu erkennen wie und was getestet wird.
Meine Interesse liegen bei den Spielstilen, nicht bei Elo und insofern reagiere ich natürlich wenn ich das sehe was ich nicht keinesfalls sehen möchte.
Alles andere wäre auch unlogisch!
Up Topic Hauptforen / CSS-Forum / Frage an einen Schachprogrammierer ...

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill