Not logged inRybka Chess Community Forum
Up Topic Deutschsprachiger Bereich / Rybka & Aquarium / Reale kn/s bei Rybka!?
- - By Eduard (***) [de] Date 2008-04-23 07:37 Edited 2008-04-23 07:46
Vor wenigen Tagen habe ich ein Experiment durchgeführt, wonach Rybka anscheinend mehr k/s berechnet als man sieht. Der reale Faktor (den ich ermittelt habe) soll bei 20 liegen. Wenn Rybka 2.3.2a (Single) zB. nur 100 kn/s anzeigt, sind das real nicht 100 kn/s sondern womöglich 2000 kn/s. Meine Experimente mit großen Hashtabellen beim Blitzen auf Schach.de scheinen diese These zu bestätigen. Rybka spielt bei mir im Blitz 3m + 0s mit 512 MB Hash besser als mit 64 MB. Ich kann das auch jederzeit beweisen. Ich habe hierzu in der Schachcomputerwelt einen Test durchgeführt, nachlesen kann man alles hier:

http://schachcomputerwelt.foren-city.de/topic,153,-die-echte-knotenzahl-von-rybka.html

Weil ich der Meinung bin dass der Anwender eines Programms das Recht hat zu wissen warum er welche Größe für Hashtabellen einstellen soll - und nicht nur dass er etwas soll, war der Beweggrund meines Tests. Darum fühlte ich mich frei, der Sache nachzugehen.

Was meint ihr dazu? Was denkt das Rybka-Team darüber?

Da ich nicht gerne drei Ecken um mich rum und "scheinheilig" nur woanders darüber diskutieren möchte (das ist nicht mein Stil, ich bin nicht hinterhältig), darum bringe ich diese Sache nun auch hier zur Sprache, und stelle mich. Ich bin im Besitz aller legalen öffentlichen Rybka-Versionen, seit der Version 1.0 Beta. Mein Test (siehe Link oben) diente somit tatsächlich nur, um der Sache nachzugehen.

MfG.
Parent - - By Permanent Brain (*****) Date 2008-04-23 08:29 Edited 2008-04-23 08:41
Das wurde im englischen Teil und auch anderswo zwar lang und breit besprochen, ich kann es aber noch immer nicht ganz klar interpretieren. Das Problem: Engines bzw. Programmierer zählen nicht alle dasselbe als Knoten mit. Es gibt hier keinen Standard. Beispielsweise könnte man nur zählen wenn die Bewertungsfunktion aufgerufen wird, oder auch Knoten die durch Hash-Treffer oder Tablebases bewertet werden wo das nicht der Fall ist. Es dürfte aber so sein, daß Rybka intern tatsächlich wesentlich mehr Knoten berechnet als die Engine anzeigt. Man sollte das vermutlich als eine Maßnahme ansehen, die helfen soll Rybkas Betriebsgeheimnisse zu schützen. Es ist aber eh schon durchgesickert: Rybkas Erfolg beruht zu einem großen Teil auf einer sehr effektiven Suche.

Diversen Meldungen zufolge soll auch die tatsächliche interne bzw. nominelle Suchtiefe anders, und zwar um 2 Halbzüge größer sein als die angezeigte. - Aber weder Knotenzahl noch Suchtiefe sagen heutzutage noch irgendwas über die Stärke oder Qualität einer Engine aus, abgesehen von ganz großen Tiefeunterschieden vielleicht. Aber 12 sehr solide Halbzüge die mit wenig riskantem Pruning erreicht werden, können u.U. stärker sein als 14 die in derselben Zeit, aber mit viel riskanten Abschneidungen erreicht werden - aber auch umgekehrt.

Insofern kanns mir egal sein, aber an sich wärs mit lieber eine Engine zeigt genau das an, was ihren internen Variablen entspricht. Also, eine echte nominelle Tiefe gibt es ganz sicher (oder zumindest kann ich es mir anders nicht vorstellen). Für die Knotenzahl gäbe es sicher auch eine Lösung die näher "am üblichen" dran ist. Fände ich wünschenswert, denn es ist klar daß es keinen User freut wenn er annehmen muß, mit irgendwelchen Phantasiezahlen konfrontiert zu sein statt mit den richtigen.

Auch wenn die Züge selbst und die Bewertungen viel wichtiger sind.

P.S. Um einen direkten Zusammenhang zwischen (echter) Knotenleistung und Hashgrößen herzustellen, müßtest Du wissen wieviele Bytes pro Stellung im Hash belegt werden. Das ist auch nicht bei jeder Engine gleich. Ich glaube, es sind ungefähr 12 Byte, aber mit möglichen Abweichungen nach oben und unten, je nach Engine. Die Rechnung wäre sogar trotzdem spekulativ, denn wenn beispielweise die Knotenzahlen Hashtreffer beinhalten (was man garantiert nicht erfahren wird ob das so ist oder nicht), werden für diese ja keine zusätzlichen Einträge belegt.
Parent - - By Felix Kling (Gold) [de] Date 2008-04-23 15:54
Knoten und Stellungen sind verschiedene Dinge. Knoten ist nicht klar definiert, es ist vielleicht mit "schlüsselpunkten" in der suche zu umschreiben. Aussagen über den Hashbedarf  lassen sich daraus nicht ableiten. Generell sagen sie nichts aus, da jede Engine anders rechnet. Für den Benutzer ist es nur interessant um gleiche Engines auf verschiedenen Computern zu vergleichen.
Parent - - By Eduard (***) [de] Date 2008-04-24 05:00 Edited 2008-04-24 05:08
Für langjährige Benutzer von Computerschachsoftware ist sehr wohl interessant zu wissen wie die "konservative" Knotenleistung einer Engine aussieht. Und tatsächlich, bis zum heutigen Tag geben alle Engines ihre Knotenleistung (kn/s) noch genauso an wie es schon vor 18 Jahren der Fall gewesen war! So kann man auch vergleichen was die heutigen Prozessoren im Vergleich zu den ganz früheren, bringen. Angefangen hat alles ab ca. 1990, damals mit dem Programm MChess, Chess Genius, Fritz oder Hiarcs! So galt damals Fritz noch als der größte "Knotenfresser" wegen seiner Nullmovetechnik, im Gegensatz aber galt MChess als ein wissensbasierendes Programm das sehr wenig Stellungen berechnete. Ähnlich sah es auch bei Hiarcs aus. Chess Genius lag etwa in der Mitte obwohl auch der Genius nullmovefrei ist.

Später toppten zuerst Junior und danach Little Goliath (als Knotenfresser) alle anderen Programme, auch Fritz. Ab 1997 gab es dann Shredder, der dann ebenfalls als ein wissensbasierendes Programm galt. Fritz machte in der 2000-er Jahren ebenfalls einen Rückschritt was die Knotenzahl anging, so zB. berechtete schon Fritz 8 auf einem P 3 600 MHz im Mittelspiel etwa 400 kn/s währed Fritz 5 davor noch bei mehr als 500 kn/s auf dem selben Prozessor berechnete.

Diese Art der Knotenzahl-Angabe ist bei allen Programmen geblieben (!) nur ein einziges Programm fällt hier nun aus der Reihe, und das ist nur Rybka! Diese "Schönrederei" mag ich daher nicht. Ich möchte wissen was Rybka an kn/s im Vergleich zu Fritz berechnet, und das in der Art der Berechnung, wie es die Programmierer schon immer angegeben haben und abgesehen von Rybka, noch immer tun!

MfG.
Parent - - By Felix Kling (Gold) [de] Date 2008-04-24 12:04
Ich bezweifele, daß jedes Programm die Knoten gleich berechnet. Jeder Programmierer gibt da etwas anderes als Maßstab an...
Parent - - By Guest42 (***) Date 2008-04-24 20:45
... mir egal wie eine Engine zum besten Zug kommt.
Hauptsache die Stoppuhr bleibt bei der Variantenausgabe um zu sehen wie lange die Engine braucht und welche Tiefe sie erlangt, für einen Gewinnzug(Rettungszug).
Wenn das Zeit/Leistungsverhätniss ok ist, scherts mich nicht sofern der Gordische erwischt wird....
Ich will damit sagen das zumindestens ich nicht im Geringsten weiss(oder wissen will). was so ein Knoten ist.
(Aber nett als Benchmark und deswegen wirds halt ausgegeben. Im Prinzip nett vom Programmierer und funktionell, vor allem für sich selber um zu sehen wie die Geschichte mit sich ändernder Hardware skaliert, ohne zu warten auf die nächste fertige Variante)
Parent - - By Roland Rösler (****) [de] Date 2008-04-25 03:31
... und welche Tiefe sie erlangt

Wozu soll das denn gut sein. Stärkt das deinen Glauben?
Parent - By Guest42 (***) Date 2008-04-28 20:40
Meinen Glauben, das die strategisch-blöde Engine ihre eingenen Züge, sowie die Stellung auch versteht - ABSOLUT JA!
:D
Up Topic Deutschsprachiger Bereich / Rybka & Aquarium / Reale kn/s bei Rybka!?

Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill