Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Syzygy-Endspielbases: Generierung und erste Erfahrungen
- - By Michael Scheidl Date 2013-10-15 17:27 Edited 2013-10-15 17:32
Zunächst ein Link zu Grundsatzinfos: http://chessprogramming.wikispaces.com/Syzygy+Bases

Dort ist zu lesen daß die Syzygy-Bases von Ronald de Man die 50 Züge-Regel berücksichtigen - was die Nalimovs bekanntlich nicht tun - und sehr kompakt sind: Weniger als ein Gigabyte für die 3/4/5-Steiner.

Man kann sich diese Tables entweder downloaden oder sie selbst generieren. Wer eine Flatrate und eine schnelle Internetverbindung hat, wird vermutlich gerne folgende Quelle nutzen:

http://chess.cygnitec.com/tablebases/syzygy/ (3/4/5er)

Noch kein 7-Zip an Bord? http://7-zip.org/

Zwar kein einzelnes File, aber wenige. Einfach alles in dasselbe Verzeichnis entpacken - wie immer am besten auf SSD oder Flash Memory - und das ist dann der Syzygy-Tablebasepfad. Wenn ich nicht irre, sollten das 290 Dateien sein (außer eventuelle Textfiles die man nicht braucht).

Alternativ dazu kann man sie sich auch selber generieren. Das hat hier bei mir übernacht auf Dualcore-i5 CPU knapp unter 6 Stunden gedauert. RAM gesamt 4 GB (ich weiß nicht was das Minimum für Fünfsteiner ist). Der TCEC-Chatter Trym hat freundlicherweise einen Download zur Verfügung gestellt, der die Software zur Generierung, die unter der GNU-Lizenz steht, sowie eine PERL-Umgebung enthält:

http://www.solheimsvollen.net/TBGen/SZGen.zip (ca. 27 MB)

PERL ist hier nur notwendig, um ein Perlscript benutzen zu können das die Generierung sehr erleichtert. Zum Betrieb der Tables ist das natürlich nicht notwendig und man könnte es also nach erfolgreicher Herstellung der Tables wieder deinstallieren.

Wenn man PERL(*) installiert und den Rest in irgendein Verzeichnis entpackt hat - am besten gleich in das vorgesehene künftige Syzygy-Verzeichnis - öffnet man ein Kommandozeilenfenster und gibt ein:

run.pl --generate --max 5

Optional kann man auch noch die Anzahl CPU-Threads die benutzt werden sollen, dazugeben, z.B. --threads 4 (je nachdem was man hat).

Warnung: 6-Steinererzeugung benötigt 16 GB RAM... und wohl auch sehr viel Zeit.

Erste Erfahrungen:

Zufälligerweise ist die Syzyzgy-fähige Stockfishversion die ich fand (Downloadlink leider vergessen) vom selben Datum wie die Entwicklungsversion die ich momentan installiert habe, vom 23.9.2013. Somit konnte es quasi einen 1:1-Vergleich mit/ohne Syz.-Bases geben. Diesen habe ich bei ultrakurzer Bedenkzeit und mit Verwendung von 10 Endspiel-Startpositionen gemacht. Nicht alle symmetrisch, z.B. ist auch Dame gegen zwei Türme oder Leichtfigur gegen drei Bauern dabei, alles natürlich mit weiteren Bauern.

Wenig überraschend, wurden alle 20 Testpartien remis. Jedoch interessant zu sehen war: 1. Technisch einwandfreier Verlauf, 2. in der Beobachtung keine Rechentiefe-Unterschiede feststellbar (Tables auf Flash Memory Card). Die Engines starteten typischerweise mit 18er-RT., dann folgten mit weniger Material bald 20+ RT.

Das war aber auf Singlecore, ponder off. Daß es auf sehr großen Rechentiefen und/oder mit sehr vielen Kernen "Phänomene" geben könnte, darüber kann ich keine Aussage treffen. Aber grundsätzlich halte ich diesen ersten Eindruck für einen Vertrauen erweckenden.

Aktuelle Sourcen vom Syzygy-fähigen Stockfish gibt es unter https://github.com/syzygy1/stockfish
aber bisher leider keine Executables.

Ich hoffe, daß die Version welche bald in TCEC Stage 3 zum Einsatz kommen wird, so wie die üblichen Entwicklungsversionen als Executable downloadbar sein werden. Dann wird sich auch das ganze Thema "Syzygy" intensivieren und viele werden dieselben Fragen stellen...

Hiermit glaube ich dem CSS-Forum einen gewissen Informationsvorsprung verschafft zu haben.

*) PERL ist Open Source, siehe http://www.perl.org/ (ich benutzte Active Perl)
Parent - - By Thomas Müller Date 2013-10-15 17:56
Hi Micha,

danke 1a!! 
Eigentlich wäre es gar nicht schlecht wenn sich mal EIN standard bei den TBs durchsetzen würde.
Die Chance besteht mit diesen TBs vielleicht mehr denn je ?!

gruß
thomas
Parent - - By Michael Scheidl Date 2013-10-15 18:23
Danach sieht es für mich aus, aber ich möchte meine Begeisterung nicht übereilen.

Es ist alles sehr neu, obwohl eigenen Angaben zufolge R.de Man diese Tables mit seiner eigenen Engine bereits seit Monaten erfolgreich im ICC eingesetzt hat. Der Härtetest wird sicherlich die laufende nTCEC-Saison ab Stufe 3 sein.

Was mir auffiel: Syzygy-Stockfish spielt auch mit einer Tablebase-Stellung auf dem Brett nicht sofort irgendeinen Datenbankzug aus, sondern rechnet munter weiter, so als ob die Engine den "schönsten" unter den gleichwertigen Zügen auswählen möchte. Ich bin sehr dafür, aber das ist ein Verhalten, das die meisten User sicherlich nicht gewohnt sind.

Die Berücksichtigung der 50er-Regel bedingt überdies, daß falls man die Nalimovs für die Fritz-GUI aktiviert hat, einige (seltene) Enginepartien falsche Resultate erhalten, falls eine Syzygy-Engine nachweisen kann bzw. könnte, daß z.B. ein #80 an der 50er-Regel scheitert. Das ist im Prinzip nichts neues, blieb bisher nur unbemerkt mangels 50er-fähiger Tables.

(Die King-Tables berücksichtigten die 50er-Regel auch schon, erreichten aber keine relevante Bedeutung bzw. Verbreitung.)

Somit sollte man in Fritz künftig für Enginematches welche Syzygy-Engines beinhalten, den GUI-Zugriff auf Nalimovs ausschalten. Das wird zu lustigen Überraschungen führen, wo eine Engine sagt, #80 aber die andere, "nix da, das ist remis"...
Parent - - By Silvio Zschako Date 2013-10-20 22:02
Lieber Herr Scheidl,

ich möchte betreffs "#80 - nix da, das ist remis" (50-Züge-Regel) kurz nachfragen. Heißt das, daß sämtliche Partien, die nachweislich gewonnen sind, aber in denen, aufgrund der 50-Züge-Regel, keine rechtzeitige Mattsetzung gelingt, einfach Remis gegeben werden? Falls ja, ist diese Regelung dann nicht fragwürdig? Denn wie kann eine Partie remis sein, wenn sie doch nachweisbar (mittels Tabelbases) gewonnen ist?

Mit Schachgruß
S. Zschako
Parent - - By Benno Hartwig Date 2013-10-20 22:24
[quote="Silvio Zschako"]ich möchte betreffs "#80 - nix da, das ist remis" (50-Züge-Regel) kurz nachfragen. Heißt das, daß sämtliche Partien, die nachweislich gewonnen sind, aber in denen, aufgrund der 50-Züge-Regel, keine rechtzeitige Mattsetzung gelingt, einfach Remis gegeben werden?[/quote]Solange die 50-Züge-Regel im Schach gilt, ist solch eine Partie remis. Dann muss sie auch remis gewertet werden, denke ich.
Aber ggf. ist das Grund genug, diese Regel zu ändern?
Benno
Parent - By Silvio Zschako Date 2013-10-21 16:14 Edited 2013-10-21 16:16
Ja, aufgrund der zwingenden Beweisführung mittels Endspieldatenbanken, ist in solchen Fällen die 50-Züge-Regel nicht mehr auf der Höhe der Zeit. Vielleicht gibt es aber für solche Fälle schon das Außerkraftsetzen dieser Regel? Mir war, als wäre beim letzten ICCF-Kongress (Fernschach) eifrig darüber diskutiert worden und ein Beschluss gefasst, das Regelwerk in dieser Richtung zu ändern. Möglich, daß dies auch schon der Fall ist (Außerkraftsetzen der 50-Züge-Regel in Sonderfällen), bin mir aber nicht sicher.

Viele Grüße
Silvio Zschako
Parent - - By Michael Scheidl Date 2013-10-21 00:39 Edited 2013-10-21 00:42
Wie Benno bereits festhielt, wird so eine Partie zwangsläufig remis (natürlich nur wenn die Gegenseite richtig verteidigt). Das war an sich schon bisher so, es sei denn ein Interface hätte eine Option die 50 Züge-Regel außer Kraft zu setzen. So eines ist mir nicht bekannt. Der Unterschied mit Bases welche die Regel berücksichtigen ist nur, daß eben u.U. solche verblüffenden Meinungsverschiedenheiten zwischen Engines vorkommen können (und höchstwahrscheinlich auch irgendwo werden).

Wurde mit Aufgeben gespielt, so bin ich sicher daß nicht wenige Enginepartien aufgrund der Nalimovs zu Siegen in gar nicht gewinnbaren Stellungen geführt haben bzw. beim Fertigspielen an der 50er-Regel gescheitert wären. Habe leider kein Beispiel zur Hand.

Die FIDE hatte die Regel vorübergehend für einige Fünfsteiner verlängert, kehrte aber dann zur allgemeingültigen 50er-Regel zurück.

Die meisten langen Nalimov-Mattansagen 50+ führen sicherlich zum Gewinn, sofern sie "genug" Bauern- und/oder Schlagzüge enthalten.

P.S. Genau genommen erfordert ein 50er-Remis eine Reklamation lt. Reglement (ebenso bei Stellungswiederholung), aber das wird im Computerschach traditionell ignoriert bzw. ist seit jeher automatisiert gewesen.
Parent - - By Silvio Zschako Date 2013-10-21 16:03
Danke für die ausführliche Antwort. Meine Frage war aus Fernschachgründen gestellt. In einer nationalen Fernschachpartie könnte mit hoher Wahrscheinlichkeit ein 7-Steiner entstehen, mit einem #96 in Zügen. Im 145. Zug greift die 50-Züge-Regel, aber im 156. Zug wird es matt, lt. Lomonosov-Endspieldatenbanken. Technisch ist eine frühere Mattführung einfach nicht möglich, um es für eine 50-Züge-Regel paßgerecht zu machen. Wird diese Partie also Remis gegeben? Ich weiß auch nicht, wie die genaue Regel beim ICCF ist, sollte dort (z.B. bei einer Fernschach-WM) einmal in einer Fernpartie solcher Fall eintreten.

Viele Grüße
Silvio Zschako
Parent - - By Michael Scheidl Date 2013-10-21 16:34
Von der ICCF habe ich praktisch keine Ahnung, daher auch keine Meinung.

Aber grundsätzlich bin ich für eine Einhaltung der 50 Züge-Regel. Sie repräsentiert einfach das menschliche Maß im Schach. Eine Stellung die erst durch noch längeres Herumgeschiebe ohne substantiellen Fortschritt gewonnen werden könnte, auf merkwürdige Weise jenseits jedes menschlichen Erkenntnisvermögens, ist meines Erachtens "nicht gewonnen genug". Die Regel setzt ja diesen Gedanken um. Schach ist ein Spiel für Menschen.

Im Bewußtsein daß die Meinungen geteilt sein werden...
Parent - By Silvio Zschako Date 2013-10-22 21:00
Da mir die Sache doch keine Ruhe gelassen hat, hier eine aktuelle Meldung (so aktuell wiederum auch nicht mehr) aus der Berichterstattung über den ICCF-Kongress 2013: Tablebases werden grundsätzlich als Begründung zugelassen, um ein entsprechendes Resultat beim TD zu beantragen.

Viele Grüße
S. Zschako
Parent - By Tom Paul Date 2013-10-25 23:46
Warum erfolgt der Zugriff auf die Nalimov und Syzygybases zur selben Zeit bei Naum vs Houdini?

Ich dachte immer der Zugriff auf die Syzygybases würde immer viel früher erfolgen?
Und abgesehen davon, noch viel viel viel früher, da Houdini immer tiefer als Naum gerechnet hatte?
Parent - - By Stefan Pohl Date 2013-10-16 05:50
Hi Michael,

da ich mit der LS-Rangliste ja voll ausgelastet bin und dort ohne irgendwelche Datenbank-Zugriffe (Endspiel-TBs, Eröffnungsbücher) gespielt wird, habe ich mich mit den Syzygy-Bases (wer hat sich eigentlich diesen kryptischen Namen ausgedacht?) noch nicht befaßt, hatte sie nur mal der Vollständigkeit halber runtergeladen.
Daher hier mal 2 dumme Fragen:
1) Sind das wirklich echte Tablebases oder nur Bitbases, will sagen: Ist für jede Stellung wirklich verzeichnet Matt in X Zügen oder nur (wie bei Bitbases) gewonnen oder remis oder verloren (ohne Mattdistanz).
2) Falls es echte Tablebases sind, wie können dann die 3-5 Steiner so klein sein? Knapp 1 GB??? Die 3-5er Gaviotas und auch die 3-5er Nalimovs (beides ja echte Tablebases) sind jeweils etwa 7 GB groß...

Gruß - Stefan

P.S: Unter dem Link, den ich seinerzeit hier gepostet hatte (http://olympuschess.com/egtb/sbases/sbases345.tar.bz2), ist es übrigens nur eine einzige Datei (die muß nur 2 mal hintereinander entpackt werden) und der Download (knappes Gigabyte) dauert nur ca. 20-25 Minuten (mit meiner durchschnittlich schnellen 16 Mbit/s-DSL-Strippe)...Selber generieren lohnt also m.E. kaum.
Parent - - By Michael Scheidl Date 2013-10-16 07:00
Zu (1): Die Syzygy-Bases sind bzw. haben beides, Bitbases mit der Info win/draw/loss zum Zugriff während der Suche, und Tables mit Mattdistanzen nach der sog. DTZ-Metrik (distance to zeroing move; für Näheres siehe chessprogramming.wikispaces). Auf letztere wird aber laut Bescheibungen nur zugegriffen wenn ein vorhandener X-Steiner bereits auf dem Brett steht wenn ich es richtig verstehe: For access at the root.

(Wobei ich bei kurzen Versuchen den Eindruck hatte das Syz.-SF. aber auch auf die DTZ-Tables zugreift wenn der erste Ply durch Schlagzug in eine Tbs.-Stellung überleitet, also eigentlich noch ein Stein zuviel auf dem Brett ist, aber da bin ich nicht ganz sicher bzw. genauere Beobachtungen stehen noch aus.)

Zu (2): Das wundert mich auch! Kann es sein, daß einfach die Remisstellungen nicht enthalten sind, und bei den meisten anderen Formaten schon? Nur so eine naive Idee von mir... Aber falls das funktioniert, wird sie nicht neu sein. Vermutlich ist der Grund ein ganz anderer, genialer und tendenziell unverständlicher.

Wie bei den Nalimovs bestehen die 3/4/5-Steiner aus 290 Dateien, die Aufteilung ist aber anders: Die Nalimovs haben für jede der 145 Materialkonstellationen zwei Dateien (für Weiß oder Schwarz am Zug). Bei den Syzygys genügt eine für beide Farben am Zug, aber es sind dennoch wiederum zwei pro Endspiel, eine mit den Bitbases und eine mit DTZ.

P.S. Siehe auch http://kirill-kryukov.com/chess/tablebases-online/
Parent - By Michael Scheidl Date 2013-10-19 20:33
Siehe auch http://talkchess.com/forum/viewtopic.php?topic_view=threads&p=538929&t=49724 mit weiteren Erläuterungen von R. de Man. Insbesondere enthalten die DTZ-Tables keine Distanzen zum Matt, sondern zu gewinnenden Schlag- oder Bauernzügen. In Datenbankstellungen wird trotzdem weitergerechnet.

Inzwischen hat Syz.-Stockfish bei TCEC die erste große Bewährungsprobe hinter sich: Ein Remis gegen Naum wo SF. zum Schluß Dame gegen zwei Türme und einen Bauern hatte.
Parent - - By Dithyrambus Date 2013-10-16 08:09
HalloStefan,

laut folgender quelle soll Syzygy der spitzname von Ronald de Man sein:
http://www.open-chess.org/viewtopic.php?f=7&t=2453

In der englischen Wikipedia finden sich mehrere bedeutungen für Syzygy, unter anderem gibt es wohl eine rockband dieses namens.

Und ich finde, wenn man das wort englisch ausspricht, also ßai-sai-gai dann klingt es gar nicht mehr so kryptisch.

Viele grüße
Horst
Parent - - By Horst Sikorsky Date 2013-10-16 11:39
Hallo,
ich habe vor einiger Zeit, sogenannte sbases345.tar hier runtergeladen.
Sind diese mit den Zungenbrechern  Syzygy identisch. Was leisten Engine mit TBS oder andere Formate und ohne Endspieldatenbanken in dieser Position?
REMIS! Schwarz am Zug. Der richtige Zug hat hier oft die gleiche Bewertung wie ein Zug, der zum Verlust führt.
Währe Weiß am Zug würde er in 105 Zügen Mattsetzen
Es wird auch oft vom richtigen zum falschen Zug gewechselt
 
Parent - - By Dithyrambus Date 2013-10-16 16:10
sbases345 sind auf meiner festplatte die Shredderbases. Die enthalten nur gewinn-remis-verlust, haben aber einen sehr schnellen zugriff während der suche, weil sie komplett ins RAM passen.
Parent - By Dieter Eberle Date 2013-10-16 16:35
Hallo Horst,
ich denke schon, dass Horst Sikorsky die syzygys meint. Die werden hier als sbases zum download angeboten:
http://www.olympuschess.com/egtb/sbases/
Gruß, Dieter
Parent - By Dithyrambus Date 2013-10-16 16:14
Je länger ich grübele, desto mehr neige ich zu der aussprache ßi-si-djii.
Aber da kann man in der englischen sprache nie sicher sein.
Parent - - By Wolfgang Draeger Date 2013-10-16 16:28
Hallo Michael,
vielen Dank für die gut verständliche Beschreibung.

Was mir auffällt ist der sehr frühe Zugriff auf die SYzygy Bases.

Hier mal ein Beispiel aus einer Fernpartie von mir.



1: Draeger,W - Xxx,X, DSFM2013-C-V4 2013
5rk1/6pp/1pR5/p2n1p2/3rp3/3N1PP1/PP2PK1P/R7 w - - 0 1

Analysis by Stockfish 270913 64 SSE4.2 Syzygy [1]:

25.Se5 Te8 26.f4 g5 27.Td6 gxf4 28.gxf4 e3+ 29.Ke1 Sb4 30.Txd4 Sc2+ 31.Kf1 Sxd4 32.Tc1 Se6 33.Sd7 Kf7 34.Sxb6 Sxf4 35.Tc7+ Kg6 36.Sc4 Sd5 37.Tc5 Te4
=  (0.26 ++)    Tiefe: 31/62   00:03:03  360MN, tb=8055
(WoDra,  16.10.2013)
Parent - - By Tom Paul Date 2013-10-23 22:40
Wie voll wird der Arbeitsspeicher bei 3-5? und bei 6 Steinern?

Was passiert wenn ich in IDeA 5xStockfishe mit Syzygybases starte, wird dann der RAM gesprengt?
Parent - By Wolfgang Draeger Date 2013-10-24 06:24 Edited 2013-10-24 06:27
Wenn Du diese Antworten von mir erwartest, muss ich passen.
Solche Experimente sind nicht mein Ding.
Ich kann Dir leider nicht sagen, was bei Dir mit IDEA passiert
Parent - - By Michael Scheidl Date 2013-10-24 07:19

Die Stockfische vom 21.10. belegten bei mir (512 MB Hashgröße) nach je 10 Sekunden Rechenzeit:

ohne Syzygy-Bases: Working Set 531.208 K, Private Bytes 530.280 K
mit 3/4/5er-Syz.:  Working Set 558.020 K, Private Bytes 532.316 K


Wobei sich das aber dynamisch zu ändern scheint, z.B. belegte Syz.-Stockfish nach Anrechnen einer zweiten Endspielstellung bereits 576.100 KB (Working Set). Vielleicht wird je nach Bedarf nachgeladen. Ich habe das nicht näher erschforscht; die Frage wäre ob und auf wieviel das begrenzt ist... Die Gesamtgröße der 3/4/5er-Syzygy-Bitbases, also ohne die DTZ-Tables, beträgt auf Datenträger knapp 400 MB. Also selbst falls sie komprimiert sind und im Speicher entpackt werden - was ich vermute aber nicht weiß - dürften max. 800 MB erforderlich sein, aber das ist jetzt nur eine spontane Annahme.

(IDEA und 6-Steiner hier nicht vorhanden)
Parent - - By Tom Paul Date 2013-10-24 14:24
Was unterscheidet die Syzygybases von den Nalimov TB ?

Haben Syzygybases Nachteile?

Sind diese komplett fertig und auch auf Fehler usw. überprüft worden?

Kann mir jemand die Daten hier erklären?
http://oics.olympuschess.com/tracker/index.php

Sind 16 GB für die 3-6 Steiner ausreichend?
Habe maximal 16 GB, davon wird aber auch ein Teil fürs Betriebssystem gebraucht und eben für das jeweilige Schachprogramm, außerdem muss noch genügend RAM für die Engine zum Rechnen bleiben.
Parent - - By Michael Scheidl Date 2013-10-24 15:14
(Ich hoffe daß kompetentere Leute als ich hier noch antworten werden. Ich sags mal aus User-Sicht mit noch nicht viel Erfahrung.)

Die Syzygy-Bases unterscheiden sich von den Nalimovs in drei Punkten:

1. Die 50 Züge-Regel wird berücksichtigt.
2. Die Bases sind in W/D/L-Bitbases und DTZ-Bases aufgeteilt.
3. Die Dateigrößen sind wesentlich kleiner.


Eine Empfehlung: Maximum ist nicht Optimum. Du kannst Dir viele Fragen und Probleme ersparen, wenn Du Dich auf die 3/4/5-Steiner beschränkst. Brauchst Du unbedingt 6-Steiner in der Suche(*), mit ihrem absurden Ressourcenbedarf, dann hast Du Dein Schicksal selbst gewählt... Dabei kann ich nicht helfen.

*) sobald das am Brett steht kann man es ja online abfragen
Parent - - By Jens Israel Date 2013-10-24 20:48
Der Hauptunterschied ist ein anderer: in den Nalimov-Tablebases wird die Distanz zum Matt für jede Stellung gespeichert (Kürzel DTM), in den WDL-Dateien von Ronald de Man steht für jede Stellung nur, ob sie gewonnen, remis oder verloren ist (ähnlich auch in anderen Bitbases). Da diese Information nicht ausreicht, um für ein Schachprogramm eine zwingende Mattsetzung zu finden, gibt es zusätzlich die DTZ-Dateien, in denen die "Distance to Zero", die Dauer, bis ein Zug erfolgt, der die 50-Züge-Regel aufhebt, gespeichert ist.

Der Unterschied wird deutlich, wenn man sich in die Lage eines Schachprogramms bei einer gegebenen Endspielstellung versetzt. Stehen die Nalimov-Dateien zur Verfügung, braucht das Programm nur für alle regelgerechten Züge die entstehende Stellung abzufragen und zu schauen, wie viele Züge es bis zum Matt dauert. Der Zug, bei den die Zahl minimal ist, ist die optimale Fortsetzung (gegebenenfalls gibt es mehrere Züge).

Bei den Bitbases weiß das Programm nach den Abfragen nur (als Beispiel): 3 Züge gewinnen,  10 sind remis, und 2 verlieren. Welcher der drei Züge des beste ist, ist unklar. Auf den ersten Blick ist das kein Problem, oft gibt es aber nur einen wirklich guten Zug, die anderen führen bei optimalem Spiel nach zwei Zügen (oder noch später) wieder zur Ausgangsstellung. Und hier helfen dann die DTZ-Daten aus de Mans Tabellen weiter.

Die Nalimov-Tablebases sind also viel größer, weil sie viel mehr Information enthalten, dafür muß das Schachprogramm fast nichts für die optimalen Züge tun, bei den Syzygy-Bases (und erst recht bei anderen Bitbases) hat das Programm noch eine Menge Arbeit, um die "richtigen" Züge zu finden. Dafür sind die Zugriffe viel schneller.

p.s.: Die Darstellung der Funktion der genannten Endspieldatenbanken ist wahrscheinlich technisch nicht ganz korrekt, sinngemäß stimmt sie aber. Wer es genauer weiß, darf mich gerne verbessern oder korrigieren. Ich kann zu meiner Verteidigung nur anführen: Zu meinen Programmierer-Zeiten gab es so etwas noch nicht, die Endspieldatenbanken hätten unser Rechenzentrum gesprengt!

Gruß Jens
Parent - - By Benno Hartwig Date 2013-10-25 16:26
[quote="Jens Israel"]Bei den Bitbases weiß das Programm nach den Abfragen nur (als Beispiel): 3 Züge gewinnen,  10 sind remis, und 2 verlieren. Welcher der drei Züge des beste ist, ist unklar. Auf den ersten Blick ist das kein Problem, oft gibt es aber nur einen wirklich guten Zug, die anderen führen bei optimalem Spiel nach zwei Zügen (oder noch später) wieder zur Ausgangsstellung. Und hier helfen dann die DTZ-Daten aus de Mans Tabellen weiter.[/quote]Ich hätte dann die Erwartung, dass das Programm den genauen Wert dieser 3 Gewinnstellungen anschließend in einem Datenbestand auf der Platte nachfragt. Dann wäre der Zeitbedarf dafür ja sicher nicht zu groß.
Bitbases für den Hauptspeicher, um oft und schnell zu fragen. Plattenzugriffe, wenn ich weiß, dass es eine Gewinnstellung ist.
Wird das so gehandhabt?
Benno
Parent - By Stefan Pohl Date 2013-10-25 16:45
[quote="Benno Hartwig"]
Bitbases für den Hauptspeicher, um oft und schnell zu fragen. Plattenzugriffe, wenn ich weiß, dass es eine Gewinnstellung ist.
Wird das so gehandhabt?
Benno
[/quote]

Also so wird das bei den Robbobases gemacht. Triplebases im RAM, Totalbases auf der Platte (oder auf Flashmemory). M.E. immer noch die beste Lösung. Zumal man auf die Totalbases im Prinzip verzichten kann, wenn die GUI (FritzGUI zum Beispiel) selbstständig auf die Nalimovs zugreift, sobald nur noch 5 Steine auf dem Brett sind und die Engines dann sowieso abschaltet. Allerdings ist der Gewinnweg dann nicht immer der kürzest mögliche. Aber Zugschleifen, die zu Remisen durch Zugwiederholung führen, können so nicht passieren - reicht also fürs praktische Spiel völlig aus.
Bei Shredder ist es (glaube ich) ähnlich gelöst, aber Shredder ist ja leider seit Jahren mausetot.

Stefan
Parent - By Tom Paul Date 2013-10-25 13:51
Bytes Transferred
8850.87 GB
8141.51 GB
Ist das die ursprüngliche Größe?
Parent - - By Tom Paul Date 2013-10-25 19:30
Finde es sehr gut von Ronald de Man das er die Syzygy Bases die er in erster Linie für Stockfish entwickelt hatte auch den anderen Engines frei zur Benutzung stellt und auch das er immer die aktuellste Stockfish dev. mit Syzygy Bases Unterstützung zum download anbietet. http://abrok.eu/stockfish_syzygy/
Parent - By Thomas Plaschke Date 2013-10-26 09:06
Ronald de Man ist da wirklich sehr umtriebig. Respekt!

Mein Problem: Ich habe die 2-5-Steiner auf dem Rechner und festgestellt, dass die "Stockfishe", die ich aus dem veröffentlichten Sourcecode der Syzygy-Version erstelle, leider nur Zugriff auf die Syzygy-Bases nehmen, wenn 2-5 Steine auf dem Brett stehen. Stehen mehr Steine auf dem Brett erfolgt laut Anzeige in Arena kein Endspieltabellenzugriff. Die Beobachtung machte ich mit den compiles von TDM-MingW 4.7.1 und 4.8.1 als auch mit Visual C++ 2010.

Der Developement-compile von der Website zeigt aber das normale zu erwartende Verhalten, bereits in der Suche bei viel mehr Steinen auf dem Brett auf die Bases zuzugreifen. (Natürlich bei identischer sonstiger Konfiguration)

Woran liegt das?  Ein fehlender #define o.ä.? Habt Ihr andere Erfahrungen?

VG
Th. Plaschke
Up Topic Hauptforen / CSS-Forum / Syzygy-Endspielbases: Generierung und erste Erfahrungen

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill