Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Kein Matt in 1 mit ShredderBases
- - By Ernest Bonnem Date 2009-07-19 21:38 Edited 2009-07-19 21:44
Also wieder das Problem mit Bitbases (hier Shredderbases)



Alle 3-4-5 Tablebases (Nalimov) und alle 3-4-5 Shredderbases:

Engine: Deep Shredder 11 UCI (512 MB) by Stefan Meyer-Kahlen
10/10   0:00   +279.99  7.Nxd5 (1.423.381) 2337  SB:103.014
11/11   0:01   +279.99  7.Nxd5 (4.105.799) 2389  SB:266.601
11/22   0:05     +M9   7.Ng4+ Ke4 8.Bf6 Kd3 9.Qb5+ Bc4 10.Qe5 Bb3 (14.163.696) 2404  SB:890.708
12/25   0:15     +M9   7.Ng4+ Ke4 8.Bf6 Kd3 9.Qb5+ Bc4 10.Qe5 Bb3 11.Qd4+ Ke2 12.Qe3+ Kd1 13.Nf2+ Kc2 14.Qc3+ Kb1 15.Qb2+ (37.966.233) 2520  SB:1.976.983
13/27   0:27     +M9   7.Ng4+ Ke4 8.Bf6 Kd3 9.Qb5+ Bc4 10.Qe5 Bb3 11.Qd4+ Ke2 12.Qe3+ Kd1 13.Nf2+ Kc2 14.Qc3+ Kb1 15.Qb2+ (69.514.393) 2520  SB:3.625.928
14/29   1:07     +M9   7.Ng4+ Ke4 8.Bf6 Kd3 9.Qb5+ Bc4 10.Qe5 Bb3 11.Qd4+ Ke2 12.Qe3+ Kd1 13.Nf2+ Kc2 14.Qc3+ Kb1 15.Qb2+ (175.820.871) 2594  SB:8.054.487
15/31   2:45     +M9   7.Ng4+ Ke4 8.Bf6 Kd3 9.Qb5+ Bc4 10.Qe5 Bb3 11.Qd4+ Ke2 12.Qe3+ Kd1 13.Nf2+ Kc2 14.Qc3+ Kb1 15.Qb2+ (426.338.651) 2575  SB:18.116.975
Weg mit Nxd5 (echtes Matt in 1) und hier kommt Ng4+ (angekündigt +M9, wahr ist +M7)... 
Das selbe bekommt man mit Shredderbases, ohne Nalimov.

Ohne Shredderbases (Use Shredderbases = Never) aber mit den 3-4-5 Nalimov, gibt es natürlich:
11/11   0:01     +M1   7.Qxd5+ (2.209.080) 1937  TB:16.146
12/12   0:02     +M1   7.Qxd5+ (4.646.203) 2218  TB:24.210
13/13   0:04     +M1   7.Qxd5+ (9.597.359) 2353  TB:43.297
14/14   0:07     +M1   7.Qxd5+ (19.217.277) 2425  TB:80.066
15/15   0:15     +M1   7.Qxd5+ (38.279.347) 2467  TB:160.160
best move: Qd7xd5 time: 0:16.781 min  n/s: 2.490.427  CPU 182.4%   n/s(1CPU): 1.365.365  nodes: 41.752.018 TB: 164.974
Parent - - By Ingo Bauer Date 2009-07-19 22:08
Hallo Ernest,

Sogar OHNE Sbases und OHNE Nalimovs findet Shredder das Matt natürlich.

Sbases, wie alle Bitbases enthalten keine DTM (Distance to Mate) insofern ist die falsche Ausgabe erklärbar, warum er allerdings nicht Qxd5 duchsucht muß ich mal rausfinden!?

Nxd5 ist übrigens ein Matt in #5 und nicht in #7 oder #9.

Gruß
Ingo
Parent - - By Ernest Bonnem Date 2009-07-20 00:05
Hallo Ingo,

[quote="Ingo Bauer"]
warum er allerdings nicht Qxd5 duchsucht muß ich mal rausfinden!?
[/quote]
Einverstanden!

[quote="Ingo Bauer"]
Nxd5 ist übrigens ein Matt in #5 und nicht in #7 oder #9.
[/quote]
Natürlich! Mein Tippfehler: ich meinte Ng4+ (angekündigt +M9, wahr ist +M7)
Qxd5 ist der Matt in 1 ...
Aber doch: heißt die (Shredderbase) Bewertung +279.99 von Nxd5 nicht (falsch) Matt in 1 ?

Gruß
Ernest
Parent - - By Klaus S. Date 2009-07-20 00:51
Zitat:
Aber doch: heißt die (Shredderbase) Bewertung +279.99 von Nxd5 nicht (falsch) Matt in 1 ?

Nein, +279.99 heißt Übergang in einen 5 Steiner im nächsten Halbzug.  (demnach ist +279.96 Übergang in 4 Halbzügen)
Parent - By Ernest Bonnem Date 2009-07-20 00:59
OK, danke! 
Parent - - By Ingo Bauer Date 2009-07-20 08:37
Hallo

[quote="Ernest Bonnem"]

[quote="Ingo Bauer"]
warum er allerdings nicht Qxd5 duchsucht muß ich mal rausfinden!?
[/quote]
Einverstanden!

...

[/quote]

So, jetzt bin ich ausgeschlafen und die Antwort liegt auf der Hand.

Shredder, wie wahrscheinlich auch andere Bitbase Engines, bekommt folgende Info (obiges BSP):

1. Es ist Matt.
2. 1 Ply bis zu den 5 Steinern.

Nx und Qx sind für ihn also gleichwertig da beides Matt und in 1 Ply in den 5 Steinern - und da als nächstes ein Schlagzug erfolgt auch mit Sicherheit beide aus der 50 Zug Regel ...

Für das Spielergebniss spielt es also keine Rolle, auch wenn aus ästetischen Gründen das kurzzügige Matt bevorzugt werden sollte.

Gruß
Ingo
Parent - - By Ernest Bonnem Date 2009-07-20 16:05
OK Ingo, danke!
Aber warum, wenn 3-4-5 Shredderbases und 3-4-5 Nalimov da stehen, sind niemals die Nalimov angegriffen?
(es is auch so mit den anderen endgame Stellungen)
Parent - - By Ingo Bauer Date 2009-07-20 16:22 Edited 2009-07-20 16:25
Hallo Ernest,

[quote="Ernest Bonnem"]
OK Ingo, danke!
Aber warum, wenn 3-4-5 Shredderbases und 3-4-5 Nalimov da stehen, sind niemals die Nalimov angegriffen?
(es is auch so mit den anderen endgame Stellungen)
[/quote]

Weil die Sbases in der Suche WESENTLICH schneller sind! Sobald nur noch der entsprechende 5 Steiner auf dem Brett ist greift Shredder darauf zu.

Einfacher ist zu Fragen, nach welchen Kriterien die Engine entscheiden soll WANN sie auf Sbases und WANN sie auf Nalimovs zugreifen soll. Das kann man nicht ordentlich definieren. In deinem obigen Fall könnte man sagen sobald die Engine nur einen Schlagzug von einem Nalimov-Steiner entfernt ist, bitte den passenden Nalimov proben, aber in der Suche kann das 1.000.000 mal vorkommen ... und dann bricht die Geschwindigkeit weg.
Noch schlimmer ist das man dann ständig die Nalimovs abfragt und eben in 99.9% der Fälle nicht so ein eindeutigen Gewinnweg hat wie in deinem Bsp. Alle Suche ist dann vergebens und kostet Zeit.
Im ganzen ist das Ausschließliche verwenden der Sbases zumindest für echtes Spiel sicherlich vorteilhaft. Will man analysieren und absolute Wahrheiten nimmt man vielleicht nur die Nalimovs, muß im Austausch aber 'viel' Zeit mitbringen ...

Nochmal zu deinem obigen Bsp. Das Shredder das nicht findet ist Zufall in der Zugsortierung. Er kann nicht unterscheiden welcher Zug besser, ist da für ihn alle gleichwertig sind, und bleibt beim ersten Gewinnzug hängen. In einem anderen Bsp kann es passieren das Shredder das kürzere Matt zuerst sieht.
Wenn man die Engine jetzt verbessern wollte und anders sortieren würde, würde Shredder vielleicht diesmal das kurze Matt sehen, dafür eine andere Stellung daneben hauen.

Trotzdem schönes Bsp!

Gruß
Ingo
Parent - - By Michael Scheidl Date 2009-07-20 17:07
Ich nehme an, daß es programmtechnisch ohne Schaden möglich ist, ein Matt in 1 (und vielleicht auch 2 oder 3) nie auszulassen. Also z.B. um auf drei Halbzüge zu kommen, braucht Shredder ja sicherlich nur ein paar Millisekunden und damit wären die #1 und #2 garantiert. So eine sehr schnelle Überprüfung "gibts ein ganz kurzes Matt?" ist bestimmt machbar, ohne sofort die Bitbases zu benutzen, die sonst wie im Beispiel offenbar einen unschönen Effekt auslösen könnten.

Hoffentlich greift nicht die Rybka-Krankheit (= Schlendrian bei allem, was keine Engine-Elos bringt) auf Shredder über. Aber nach bisherigen Erfahrungen halte ich das eigentlich eh für ausgeschlossen. Gewisse kleine, aber feine Details sind meines Erachtens charakteristisch für die bekannte Shredderqualität.
Parent - - By Ingo Bauer Date 2009-07-20 18:30 Edited 2009-07-20 18:32
Hallo

[quote="Michael Scheidl"]
Ich nehme an, daß es programmtechnisch ohne Schaden möglich ist, ein Matt in 1 (und vielleicht auch 2 oder 3) nie auszulassen. Also z.B. um auf drei Halbzüge zu kommen, braucht Shredder ja sicherlich nur ein paar Millisekunden und damit wären die #1 und #2 garantiert. So eine sehr schnelle Überprüfung "gibts ein ganz kurzes Matt?" ist bestimmt machbar, ohne sofort die Bitbases zu benutzen, die sonst wie im Beispiel offenbar einen unschönen Effekt auslösen könnten.
[/quote]

Ein Auszug aus der obigen Stellung auf meinem schnellen Rechner:



10/29   0:01     +M10  1.Ng4+ Ke4 2.Bf6 Kd3 3.Qb5+ Bc4 4.Qb1+ Ke2 5.Qb2+ Kf3 6.Qf2+ (7.685.590) 4641  SB:415.062

(sieht ürigens jedesmal anders aus bei MP)

So, das waren nach einer Sekunde 415000 Übergänge in die 5 Steiner.

Wenn er jedesmal nur EINE Millisekunde gebraucht hätte, wären das 415s oder fast 7 Minuten. OK, eine Millisekunde ist zu lang, dafür bleibt unberücksichtigt, das Shredder ja schon lange vorher, bei 7, 8 oder 9 Steinen in der Suche von 6 auf 5 kommt und demnach suchen würde. Das Bsp zeigt sehr gut wie teuer Nalimovs erkauft werden müssen!

Ich gebe zu das Bsp ist ein wenig polemisch (Sorry) und unvollkommen, aber letztendlich glaube ich der Programmierer muß enscheiden was seiner Engine einen Vorteil und was einen Nachteil bringt.

Gruß
Ingo
Parent - By Ingo Bauer Date 2009-07-20 18:44
Hallo

Vergessen: Das obige Bsp zeigt auch schön warum Nalimovs von allen Engines deutlich weniger geprobet werden als die Sbases/Bitbases.
Sbases stehen bei S11 per default auf "Always", also jedesmal wenn ein 5 Steiner gefunden wird. Wenn man das mit Nalimovs in der Suche machen würde ...

Gruß
Ingo
Parent - - By Michael Scheidl Date 2009-07-21 03:54
Gemeint war natürlich daß in so einer kurzen Mattüberprüfung eine Engine noch nicht auf Bitbases und/oder Nalimovs zugreift.

Shredder 11 SE macht das nie (das ist eine Einschränkung dieser kostengünstigeren Version):

Engine:
Analysis by Shredder 11 SE (D945 = quasi P4/3.4 GHz, fixe RT. 5):

1.Nxd5
  +-  (20.37)   Depth: 1/1   00:00:00  0kN
1.Qxd5#
  +-  (#1)   Depth: 1/1   00:00:00  0kN


Da kann man gar keine Geschwindigkeit sinnvoll messen. Ich habe ein #2-Schachproblem mit viel Material herausgesucht.



Engine:
Analysis by Shredder 11 SE:

1.Rxd7 cxb5 2.Qxb5
  +-  (4.59)   Depth: 1/8   00:00:00  0kN
1.Nxc6 Rxa7 2.Nxa7 Bxb5 3.Nxb5
  +-  (6.42)   Depth: 1/8   00:00:00  0kN
  +-  (6.34)   Depth: 2/9   00:00:00  0kN
1.c3 Qxf3 2.exf3+ Kxf3 3.Qxe3+ Kg4 4.Qe2+ Kxg3 5.Rxd7 cxb5 6.Qxd1
  +-  (14.10)   Depth: 2/13   00:00:00  2kN
  +-  (15.66)   Depth: 5/25   00:00:00  9kN


Da gibts ein anderes Problem: Anscheinend findet S11 SE hier infolge Prunings trotz zweier Extra-Halbzüge das #2 nicht. D.h. bei der beschriebenen Kurzüberprüfung sollte er natürlich noch kein Forward Pruning machen. Gegenkontrolle auf normaler Spielstufe, nach Hash-Löschen:

Engine:
Analysis by Shredder 11 SE:

1.Rxd7 cxb5 2.Qxb5
  +-  (4.59)   Depth: 1/8   00:00:00  0kN
1.Nxc6 Rxa7 2.Nxa7 Bxb5 3.Nxb5
  +-  (6.42)   Depth: 1/8   00:00:00  0kN
  +-  (6.34)   Depth: 2/9   00:00:00  0kN
1.c3 Qxf3 2.exf3+ Kd3 3.Qxe3+ Kc2 4.Rb8 f4 5.Qe2+ Rd2 6.Bg6+ e4
  +-  (14.10)   Depth: 2/13   00:00:00  2kN
  +-  (15.67)   Depth: 6/27   00:00:00  41kN
1.Nb7 Rxa7 2.Nd6#
  +-  (#2)   Depth: 6/27   00:00:00  52kN
  +-  (#2)   Depth: 6/27   00:00:00  52kN


Also jedenfalls unter 1 Sekunde.

Weil's so schön war, noch ein Beispiel aber #5:



Engine:
Analysis by Shredder 11 SE:

1.cxb7 Rxe7 2.fxe7 Bxf2 3.Nxf3 Be3+ 4.Bxe3 Kxe3 5.d4+ Bd3 6.b8Q cxd4
  +-  (6.62)   Depth: 1/4   00:00:00  0kN
  +-  (10.74)   Depth: 6/29   00:00:00  18kN
1.Rc4 Rb4 2.Nxf7+ Kxd3 3.Ne5+ Ke2 4.Nxg6+ Kd3 5.Ne5+ Ke2 6.Nxf3+ Kxf3 7.Bh5#
  +-  (#7)   Depth: 6/29   00:00:00  31kN
  +-  (#7)   Depth: 13/19   00:00:00  76kN
1.d4 Bxf2 2.Bxf7 cxd4 3.Nd7+ Be3+ 4.Rcxe3+ dxe3 5.Rxe3#
  +-  (#5)   Depth: 13/19   00:00:00  103kN
  +-  (#5)   Depth: 13/19   00:00:00  103kN


Nicht schlecht - oder vielmehr seht gut! - besonders weil das ja eine Partiespiel-Engine angesetzt auf solche Alptraum-Problemstellungen ist. In partienahen #1/2/3-Stellungen ist das wohl wesentlich einfacher für eine Engine. Im zweiten Beispiel sieht man auch wie Shredder nach Finden eines #7 lobenswerter Weise weitergesucht hat, wo manche Engines einfach abgebrochen hätten.
Parent - - By Ingo Bauer Date 2009-07-21 08:33
Hallo Michael

[quote="Michael Scheidl"]
Gemeint war natürlich daß in so einer kurzen Mattüberprüfung eine Engine noch nicht auf Bitbases und/oder Nalimovs zugreift.
[/quote]

Ein letztes hierzu: Es ist mir klar das du eine Suche ohne Nalimovs meinst, aber die im Speicher stehenden BB/Sbases bremsen eben fast nicht aus und geben 100% richtige Ergebnisse, was man von Suche nicht sagen kann.

Was dein kurzzügigen Mattbsp betrifft sind die zwar nett, dummerweise ist die Engine, wenn sie auf so einen Übergang den du ansprichst schon 20,25,30 Plys tief und es hängt der entsprechende Baum dahinter und jetzt willst du nochmal ein paar Plys anhängen ...? Dazu kommt noch das diese Extraprüfungen fast immer vergebens sind. Was du hier beschreibst ist eine Mattsuchengine und keine gut Schachspielengine.

Gruß
Ingo
Parent - By Michael Scheidl Date 2009-07-21 11:24
Wir scheinen prinzipielle Mißverständnisse zu haben. Ich will nichts an eine Suche 20+ Plies zusätzlich noch anhängen; Ruhesuchen und sonstige Extensions werden sowieso angehägt. Das meine ich nicht.

Ich spreche von einer Partiestellung die auf dem Brett steht. Da wird man ja zu Beginn der Suche eine ultrakurze Zeit kleiner 0.3 Sekunden - und davon gehe ich aus daß zumindest 3 Halbzüge ohne Forward Pruning in diesen Zeitrahmen passen, opfern können um nicht wie ein Anfänger #1 oder #2 zu übersehen.

Wenn Du willst kannst Du ja Stefan auf diese Überlegungen im Thread hier aufmerksam machen. Es ist wirklich viel einfacher gemeint als es aufgrund meiner eventuell nicht optimalen Formulierungen den Anschein haben mag.

Hat auch nichts mit einer Mattsuchengine zu tun; auch von jeder Spielengine darf man im Jahren 2009 erwarten daß sie auf keinen Fall #1 und #2 übersieht, sofern noch 1 Sekunde oder mehr zur Verfügung steht. Das hätte man schon vor 20 Jahren bei keinem halbwegs ernst zu nehmenden Schachcomputer mit zweistelligen MHz(!)-Taktraten mehr akzeptiert.

Ich glaube nicht, daß das ein sehr hohes Qualitätkriterium ist.  Es ist eher ein sehr niedriges, elementares...

Langer Rede kurzer Sinn, ich schlage vor sicherzustellen das Shredder (oder überhaupt jede Engine) NIEMALS #1 oder #2 übersieht.
Up Topic Hauptforen / CSS-Forum / Kein Matt in 1 mit ShredderBases

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill