Designing an analysis friendly Stockfish?

Code, algorithms, languages, construction...
User avatar
Uly
Posts: 838
Joined: Thu Jun 10, 2010 5:33 am

Re: Designing an analysis friendly Stockfish?

Post by Uly » Sun Feb 06, 2011 12:12 am

Thanks Jeremy, there are already results of improvement not just for analysis!

fruity
Posts: 29
Joined: Wed Feb 02, 2011 12:52 am

Re: Designing an analysis friendly Stockfish?

Post by fruity » Sun Feb 06, 2011 12:25 am

Peter C wrote:
I added a UCI option to control the depth in ply it's used up to. With my default setting of 20 (which could/should be tweaked a bit), it's tad better than SF default at 40 moves/1 second.
Nice!
I've noticed that our SF tends to lose on time more often than the default at hyperbullet (40 moves/1 second), especially in the first 4-5 games. Has anyone else noticed this behavior?

Peter
I use the UCI options

Minimum Thinking Time=2
Emergency Base Time=20
Emergency Move Time=7

for hyperbullet games. Haven't noticed any problems with these settings.

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Designing an analysis friendly Stockfish?

Post by Jeremy Bernstein » Sun Feb 06, 2011 12:49 am

Peter C wrote:
Jeremy Bernstein wrote:Here's a game:

...

Note how the PA_J+GTB finds a forced mate around move 80 or so and then loses its way by move 99. What happened?
I'd guess it's probably a bug in the GTB probing. Is the Decemberists' patch applied?
Yes, that patch is applied. I've updated to the most recent version of GTB probing code locally, but haven't built it yet. I can't find a changelog, so I don't know what's new. It would be great to figure out what didn't work there, though.

Here's the where the trouble starts.

[FEN "8/2k5/4Q3/1q6/6P1/5K2/8/8 w - - 4 79"]
[SetUp "1"]
79. Kf4 {(Kf3-f4)
+1.73/100 1} Qf1+ {(Qb5-f1+ Kf4-e5 Qf1-e1+ Ke5-f6 Qe1-f2+ Kf6-g7 Qf2-d4+
Kg7-f7 Qd4-f4+ Kf7-g6 Qf4-h2 g4-g5 Qh2-h4 Kg6-f6 Qh4-f4+ Qe6-f5 Qf4-h4
Kf6-f7 Qh4-c4+ Kf7-f8 Qc4-b4+ Kf8-g7 Qb4-b2+ Qf5-f6 Qb2-e2 Kg7-f7 Qe2-c4+
Kf7-f8 Qc4-g4 g5-g6 Kc7-d7 g6-g7) -3.23/16 0} 80. Kg5 {(Kf4-g5 Qf1-b5+
Kg5-f6) +M49/6 0} Kb8 {(Kc7-b8 Qe6-e5+ Kb8-b7 Kg5-g6 Qf1-d3+ Qe5-f5 Qd3-e3
Kg6-f7 Kb7-c7 g4-g5 Kc7-d6 Qf5-f6+ Kd6-d7 g5-g6 Qe3-e8+ Kf7-g7 Qe8-e4
Qf6-f7+ Kd7-d6 Kg7-g8 Qe4-c2 Qf7-f6+ Kd6-d5 g6-g7 Qc2-g2 Qf6-f5+ Kd5-d6
Kg8-f7) -3.27/16 0} 81. Qe5+ {(Qe6-e5+ Kb8-a7) +M47/6 0} Kb7 {(Kb8-b7
Kg5-g6 Qf1-d3+ Kg6-f7 Qd3-c4+ Qe5-e6 Qc4-f4+ Kf7-g6 Qf4-g3 g4-g5 Kb7-b8
Qe6-e7 Qg3-d3+ Kg6-g7 Qd3-d4+ Qe7-f6 Qd4-d7+ Qf6-f7 Qd7-d4+ Kg7-g8 Qd4-e4
g5-g6 Kb8-c8 g6-g7 Kc8-d8 Qf7-f1 Qe4-h4 Kg8-f7) -3.87/16 1} 82. Kg6
{(Kg5-g6 Qf1-d3+ Kg6-f6) +M46/6 0} Qd3+ {(Qf1-d3+ Kg6-f7 Qd3-c4+ Qe5-e6
Qc4-f1+ Kf7-g8 Qf1-g2 Qe6-e7+ Kb7-c6 g4-g5 Kc6-b5 Qe7-e8+ Kb5-a5 g5-g6
Qg2-d5+ Kg8-h7 Qd5-h5+ Kh7-g7 Qh5-f3 Qe8-f7 Qf3-e4 Kg7-f8 Qe4-a8+ Kf8-e7
Qa8-e4+ Ke7-d7 Qe4-d3+ Kd7-e8 Ka5-b4) -3.95/15 0} 83. Qf5 {(Qe5-f5) +M45/6
0} Qg3 {(Qd3-g3 g4-g5 Kb7-c6 Kg6-f6 Qg3-h4 Kf6-f7 Qh4-g3 g5-g6 Qg3-c7+
Kf7-g8 Qc7-d8+ Kg8-g7 Qd8-e7+ Qf5-f7 Qe7-e4 Kg7-g8 Kc6-b6 Qf7-f6+ Kb6-c7
g6-g7 Kc7-d7 Qf6-f7+ Kd7-d6 Qf7-f6+ Kd6-d7) -4.00/16 2} 84. g5 {(g4-g5)
+2.22/6 0} Kc7 {(Kb7-b6 Kg6-g7 Qg3-e1 Kg7-f7 Qe1-g3 Kf7-g7) -4.00/16 0} 85.
Kf6 {(Kg6-f6) +M39/6 0} Qh4 {(Qg3-h4 Kf6-f7 Qh4-h5+ Kf7-g7 Qh5-h2 g5-g6
Kc7-d8 Qf5-e6 Qh2-g3 Kg7-g8 Qg3-h2 Qe6-f6+ Kd8-d7 Qf6-f5+ Kd7-e7 g6-g7
Ke7-e8 Qf5-e4+ Ke8-d7 Kg8-f7 Qh2-f2+ Kf7-g6 Qf2-g1+ Kg6-h5 Qg1-c5+ Kh5-h6
Qc5-d6+ Kh6-h7 Qd6-h2+ Kh7-g6 Qh2-g1+) -4.24/16 0} 86. Ke6 {(Kf6-e6) +M38/6
0} Qc4+ {(Qh4-c4+ Qf5-d5 Qc4-g4+ Ke6-f7 Qg4-f4+ Kf7-g7 Kc7-b6 g5-g6 Kb6-a6
Kg7-h7 Qf4-h2+ Kh7-g8 Qh2-b8+ Kg8-f7 Qb8-c7+ Kf7-f6 Qc7-c3+ Kf6-e7 Qc3-c7+
Qd5-d7 Qc7-c3 Qd7-e6+ Ka6-b7 Ke7-f8 Qc3-g3 g6-g7) -4.72/15 0} 87. Qd5
{(Qf5-d5 Qc4-g4+ Ke6-f6) +M37/6 0} Qa6+ {(Qc4-a6+ Ke6-e7 Qa6-a1 Qd5-c4+
Kc7-b6 g5-g6 Qa1-a3+ Ke7-d7 Qa3-b2 Qc4-c7+ Kb6-a6 Qc7-d6+ Ka6-b7 Qd6-d5+
Kb7-b6 Kd7-e7 Qb2-a1 Qd5-e6+ Kb6-b5 Ke7-f7 Qa1-f1+ Kf7-g8 Qf1-f3 g6-g7
Kb5-c5 Qe6-e7+ Kc5-c6 Qe7-e8+ Kc6-b6 Qe8-b8+ Kb6-a5 Qb8-f8 Qf3-e4 Qf8-c5+
Ka5-a4 Kg8-f7) -5.09/16 1} 88. Kf5 {(Ke6-f5) +2.82/6 0} Qc8+ {(Qa6-c8+
Qd5-e6 Qc8-f8+ Qe6-f6 Qf8-c8+ Kf5-f4 Qc8-h3 g5-g6 Qh3-f1+ Kf4-g5 Qf1-g2+
Kg5-f5 Qg2-h3+ Kf5-e4 Qh3-g2+ Ke4-e5 Qg2-e2+ Ke5-f5 Qe2-f1+ Kf5-e6 Qf1-c4+
Ke6-e7 Qc4-c5+ Ke7-f7 Qc5-d5+ Qf6-e6 Qd5-h5 Qe6-e7+ Kc7-c6 Qe7-e4+ Kc6-d7
Kf7-f6 Qh5-h8+ g6-g7 Qh8-h6+ Qe4-g6 Qh6-h4+ Qg6-g5 Qh4-d4+ Qg5-e5 Qd4-b6+
Kf6-g5 Qb6-g1+ Kg5-h5 Qg1-h1+ Kh5-g6 Qh1-c6+ Qe5-f6 Qc6-g2+ Qf6-g5 Qg2-c6+
Kg6-h7 Qc6-e4+ Qg5-g6 Qe4-e7 Qg6-d3+) -4.12/15 1} 89. Kf6 {(Kf5-f6) +M40/6
0} Qh8+ {(Qc8-h8+ Kf6-f7 Qh8-h7+ Kf7-f8 Qh7-h8+ Qd5-g8 Qh8-h1 Qg8-f7+
Kc7-d6 Qf7-e7+ Kd6-c6 Qe7-e6+ Kc6-b5 Qe6-f5+ Kb5-a4 g5-g6 Qh1-a8+ Kf8-e7
Qa8-g2 Qf5-d7+ Ka4-a5 Qd7-d8+ Ka5-b5 Qd8-d3+ Kb5-c5 Qd3-c3+ Kc5-d5 Qc3-f6
Kd5-c4 g6-g7 Qg2-b7+ Ke7-e8 Qb7-c8+ Qf6-d8 Qc8-e6+ Ke8-f8 Qe6-f5+) -4.68/15
0} 90. Kg6 {(Kf6-g6) +2.46/6 0} Kb6 {(Kc7-b6 Qd5-e6+ Kb6-c5 Qe6-f5+ Kc5-c4
Qf5-e4+ Kc4-c3 Kg6-f7 Qh8-c8 Qe4-e5+ Kc3-c2 g5-g6 Qc8-d7+ Kf7-f6 Qd7-c6+
Kf6-f5 Qc6-f3+ Kf5-e6 Qf3-c6+ Qe5-d6 Qc6-e4+ Ke6-d7 Qe4-g4+ Qd6-e6 Qg4-d4+
Kd7-e8 Qd4-c3 Qe6-f5+ Kc2-b3 Ke8-f7 Qc3-c7+ Kf7-f8) -3.71/16 1} 91. Kf5
{(Kg6-f5 Qh8-f8+ Kf5-e4) +M51/100 1} Qh3+ {(Qh8-h3+ Kf5-f6 Qh3-h8+ Kf6-g6
Qh8-e8+ Kg6-f5 Qe8-f8+ Kf5-e4 Qf8-e8+ Qd5-e5 Qe8-g6+ Ke4-f4 Qg6-h5 Qe5-e6+
Kb6-c5 g5-g6 Qh5-h6+ Kf4-f5 Qh6-f8+ Qe6-f6 Qf8-c8+ Kf5-g5 Qc8-g8 Qf6-e5+
Kc5-b4 Qe5-d4+ Kb4-b5 g6-g7) -3.79/14 1} 92. Kf6 {(Kf5-f6 Qh3-c3+ Qd5-e5)
+M50/100 1} Qh8+ {(Qh3-h8+ Kf6-g6 Qh8-e8+ Kg6-f5 Qe8-f8+ Kf5-e4 Qf8-c8
Qd5-b3+ Kb6-a7 Qb3-a3+ Ka7-b7 Qa3-b2+ Kb7-a7 Qb2-f2+ Ka7-a8 Qf2-a2+ Ka8-b8
Qa2-b1+ Kb8-a7 g5-g6 Qc8-e6+ Ke4-d4 Qe6-d6+ Kd4-c4 Qd6-e6+ Kc4-c5 Qe6-e3+
Kc5-d6 Qe3-f4+ Kd6-e6 Qf4-e3+ Ke6-f7 Qe3-f3+ Kf7-e7 Qf3-g3 Qb1-a2+ Ka7-b6
Qa2-e6+ Kb6-c5 Ke7-f6) -3.55/13 0} 93. Kg6 {(Kf6-g6) +M49/6 0} Qe8+
{(Qh8-e8+ Kg6-f5 Qe8-f8+ Kf5-e4 Qf8-c8 Qd5-b3+ Kb6-a5 Qb3-a3+ Ka5-b6
Qa3-d6+ Kb6-b5 Qd6-d3+ Kb5-b6 g5-g6 Qc8-e6+ Ke4-f4 Qe6-f6+ Kf4-g4 Qf6-e6+
Kg4-g5 Qe6-e7+ Kg5-f5 Qe7-f8+ Kf5-g4 Qf8-f6 Qd3-e3+ Kb6-a6 Qe3-g5 Qf6-e6+
Qg5-f5 Qe6-e7 Qf5-f4) -3.67/16 1} 94. Kf5 {(Kg6-f5) +2.86/6 0} Qf8+
{(Qe8-f8+ Kf5-e4 Qf8-c8 Qd5-b3+ Kb6-a5 Qb3-a3+ Ka5-b6 Qa3-d6+ Kb6-b7
Qd6-e7+ Kb7-b8 Qe7-e5+ Kb8-b7 Qe5-b2+ Kb7-a7 Qb2-f2+ Ka7-a8 Qf2-a2+ Ka8-b8
Qa2-b1+ Kb8-a7 g5-g6 Qc8-e6+ Ke4-d4 Qe6-d6+ Kd4-e3 Qd6-g3+ Ke3-d4 Qg3-d6+)
-3.71/17 0} 95. Kg4 {(Kf5-g4) +2.66/6 0} Qc8+ {(Qf8-c8+ Kg4-f4 Qc8-f8+
Kf4-e4 Qf8-c8 Qd5-d6+ Kb6-b5 Qd6-d3+ Kb5-b6 g5-g6 Qc8-e6+ Ke4-f4 Qe6-f6+
Kf4-g4 Qf6-e6+ Kg4-g5 Qe6-e7+ Kg5-f5 Qe7-f8+ Kf5-g4 Qf8-b4+ Kg4-h5 Qb4-c5+
Kh5-h6 Qc5-e5 g6-g7 Qe5-h2+ Kh6-g5) -3.75/16 1} 96. Kf4 {(Kg4-f4 Qc8-f8+
Qd5-f5) +M48/6 0} Qf8+ {(Qc8-f8+ Kf4-e4 Qf8-c8 Qd5-d6+ Kb6-a7 Qd6-e7+
Ka7-a8 Ke4-e5 Qc8-c3+ Ke5-f5 Qc3-c8+ Qe7-e6 Qc8-c5+ Kf5-f6 Qc5-f8+ Kf6-g6
Qf8-d8 Qe6-f6 Qd8-c8 Kg6-h6 Qc8-h3+ Kh6-g7 Ka8-b8 Qf6-d8+) -3.63/15 0} 97.
Ke4 {(Kf4-e4 Qf8-e7+ Qd5-e5) +M47/6 0} Qc8 {(Qf8-c8 Qd5-d6+ Kb6-b7 Qd6-e7+
Kb7-b8 Qe7-e5+ Kb8-b7 Ke4-f4 Qc8-f8+ Kf4-g4 Qf8-c8+ Qe5-f5 Qc8-c4+ Kg4-h5
Kb7-b6 g5-g6 Qc4-d4 Qf5-e6+ Kb6-b5 Kh5-g5 Qd4-d8+ Kg5-f4 Qd8-d4+ Qe6-e4
Qd4-g1 Kf4-f5 Qg1-f2+ Kf5-g5 Qf2-d2+ Kg5-g4 Qd2-a2 g6-g7) -3.71/16 0} 98.
Qd6+ {(Qd5-d6+ Kb6-b5) +M46/6 0} Kb5 {(Kb6-b5 Qd6-d3+ Kb5-b6 g5-g6 Qc8-e6+
Ke4-f4 Qe6-f6+ Kf4-g4 Qf6-e5 Qd3-d7 Qe5-f6 Qd7-f5 Qf6-d4+ Kg4-h5 Kb6-c6
Qf5-c8+ Kc6-b6 Qc8-e6+ Kb6-b5 Kh5-g5 Qd4-d8+ Kg5-f4 Qd8-d2+ Kf4-f5 Qd2-d3+
Qe6-e4 Qd3-d7+ Kf5-f4 Qd7-d2+ Kf4-e5 Kb5-c5 Ke5-f6) -3.83/16 0} 99. g6
{(g5-g6 Qc8-g4+ Ke4-e5) +M45/6 0} Qg4+ {(Qc8-g4+ Ke4-e3 Qg4-h3+ Ke3-d4
Qh3-h4+ Kd4-d3 Qh4-h3+ Kd3-d2 Qh3-h6+ Kd2-c2 Qh6-g5 Kc2-d3 Kb5-a5 Qd6-e6
Ka5-b4 Qe6-b6+ Kb4-a4 Qb6-d4+ Ka4-b5 Qd4-d7+ Kb5-c5 g6-g7 Qg5-g3+ Kd3-e4
Qg3-h4+ Ke4-f3 Qh4-h1+ Kf3-g4 Qh1-g2+ Kg4-f4 Qg2-f2+ Kf4-g5 Qf2-e3+ Kg5-g6
Qe3-g3+ Kg6-h7 Qg3-h4+ Kh7-g8 Qh4-h6) -3.83/15 0} 100. Ke3 {(Ke4-e3) +M44/6
0} Qh3+ {(Qg4-h3+ Ke3-d4 Qh3-g4+ Kd4-c3 Qg4-g5 Qd6-d7+ Kb5-a5 Qd7-e6 Ka5-b5
Qe6-c4+ Kb5-a5 Qc4-b4+ Ka5-a6 Qb4-a4+ Ka6-b7 Qa4-d7+ Kb7-a6 g6-g7) -3.79/16
1} 101. Kd2 {(Ke3-d2 Qh3-g2+ Kd2-d3) +M43/6 0} Qg2+ {(Qh3-g2+ Kd2-c3 Qg2-h1
Qd6-b8+ Kb5-a6 Qb8-g3 Qh1-c1+ Kc3-d4 Qc1-b2+ Kd4-d5 Qb2-b5+ Kd5-e6 Qb5-e8+
Ke6-f5 Qe8-c8+ Kf5-f4 Qc8-c4+ Kf4-f5 Qc4-c8+) -3.19/15 1} 102. Kc3
{(Kd2-c3) +M42/6 0} Qh1 {(Qg2-h1 Qd6-d7+ Kb5-c5 Qd7-c7+ Kc5-b5 Qc7-c4+
Kb5-b6 Qc4-e6+ Kb6-c5 Kc3-d3 Qh1-b1+ Kd3-e2 Kc5-b5 Qe6-e5+ Kb5-c4 g6-g7
Qb1-d3+ Ke2-e1 Qd3-b1+ Ke1-f2 Qb1-b6+) -3.79/15 0} 103. Qe6 {(Qd6-e6
Qh1-a1+ Kc3-d3) +M41/6 0} Ka5 {(Kb5-a5 Kc3-d4 Qh1-a1+ Kd4-d5 Qa1-d1+ Kd5-e5
Qd1-e1+ Ke5-f5 Qe1-f2+ Kf5-g5 Qf2-g3+ Qe6-g4 Qg3-e3+ Qg4-f4 Qe3-e7+ Kg5-g4
Qe7-e2+ Kg4-f5 Qe2-c2+ Qf4-e4 Qc2-f2+ Kf5-g5 Qf2-d2+ Kg5-f6 Qd2-d8+ Qe4-e7
Qd8-b6+ Kf6-f7 Qb6-b3+ Qe7-e6 Qb3-f3+ Kf7-e8 Qf3-c3 Qe6-f5+ Ka5-b6 Ke8-f8)
-4.20/14 0} 104. Kc4 {(Kc3-c4) +4.56/6 0} Qc6+ {(Qh1-c6+ Qe6xc6) 0.00/25 0}
105. Qxc6 {(Qe6xc6) 0.00/100 1 Stalemate} 1/2-1/2

I'm not sure what's going on, in fact, Kf4 might be the right move (checking it on the Shredder online TB now Kf4 is +M51). But at some point, Stockfish is making moves which are wrong, and it loses track of the forced mate.

gaard
Posts: 127
Joined: Thu Jun 10, 2010 1:39 am
Real Name: Martin Wyngaarden
Location: Holland, Michigan

Re: Designing an analysis friendly Stockfish?

Post by gaard » Sun Feb 06, 2011 1:21 am

fruity wrote:
gaard wrote: Any results with the longer time control game for this fix? These updates to history/killers are in version I. Against the default with the new ok_to_use_tt() SF I have a score of +235 -140 =156 from the perspective of the default version at g/24" :(
I'm still fiddling around. According to my tests at 20'' all the versions so far are 10-15 Elo below SF default. Best result I've found so far is

(1) remove the history/killer tweak. It seems to work well only for low depths. Could be reintroduced later with tweaking for low depths only, but at the moment it doesn't help to find the best PV TT code, so leave it away for now.

(2) use template and inline for ok_to_use_TT() and the following code

Code: Select all

template <NodeType PvNode>
inline bool ok_to_use_TT(const TTEntry* tte, Depth depth, Value alpha, Value beta, int ply) {
     
    Value v = value_from_tt(tte->value(), ply);

    return
        PvNode ? tte->depth() >= depth && tte->type() == VALUE_TYPE_EXACT && v < beta && v > alpha
               : (      tte->depth() >= depth
                     || v >= Max(value_mate_in(PLY_MAX), beta)
                     || v <= Min(value_mated_in(PLY_MAX), alpha)
                 )
                 &&
                 (
                        ((tte->type() & VALUE_TYPE_LOWER) && v >= beta)
                     || ((tte->type() & VALUE_TYPE_UPPER) && v <= alpha)
                 );
  }
This seems to be about -5 ELO compared to SF default at 20'', but needs more testing, also at longer tc.
It seems there is still work left to find a real neat solution regarding the playing strength.
Does the lagging 10-15 Elo include version G?
I have tested this at g/2' and could not find a significant difference from default,
and neither could Ingo using a time control of 5'+3", granted with only 600 games.

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Designing an analysis friendly Stockfish?

Post by Jeremy Bernstein » Sun Feb 06, 2011 1:51 am

Jeremy Bernstein wrote:
Peter C wrote:
Jeremy Bernstein wrote:Here's a game:

...

Note how the PA_J+GTB finds a forced mate around move 80 or so and then loses its way by move 99. What happened?
I'd guess it's probably a bug in the GTB probing. Is the Decemberists' patch applied?
Yes, that patch is applied. I've updated to the most recent version of GTB probing code locally, but haven't built it yet. I can't find a changelog, so I don't know what's new. It would be great to figure out what didn't work there, though.

Here's the where the trouble starts.

[FEN "8/2k5/4Q3/1q6/6P1/5K2/8/8 w - - 4 79"]
[SetUp "1"]
79. Kf4 {(Kf3-f4)
+1.73/100 1} Qf1+ {(Qb5-f1+ Kf4-e5 Qf1-e1+ Ke5-f6 Qe1-f2+ Kf6-g7 Qf2-d4+
Kg7-f7 Qd4-f4+ Kf7-g6 Qf4-h2 g4-g5 Qh2-h4 Kg6-f6 Qh4-f4+ Qe6-f5 Qf4-h4
Kf6-f7 Qh4-c4+ Kf7-f8 Qc4-b4+ Kf8-g7 Qb4-b2+ Qf5-f6 Qb2-e2 Kg7-f7 Qe2-c4+
Kf7-f8 Qc4-g4 g5-g6 Kc7-d7 g6-g7) -3.23/16 0} 80. Kg5 {(Kf4-g5 Qf1-b5+
Kg5-f6) +M49/6 0} Kb8 {(Kc7-b8 Qe6-e5+ Kb8-b7 Kg5-g6 Qf1-d3+ Qe5-f5 Qd3-e3
Kg6-f7 Kb7-c7 g4-g5 Kc7-d6 Qf5-f6+ Kd6-d7 g5-g6 Qe3-e8+ Kf7-g7 Qe8-e4
Qf6-f7+ Kd7-d6 Kg7-g8 Qe4-c2 Qf7-f6+ Kd6-d5 g6-g7 Qc2-g2 Qf6-f5+ Kd5-d6
Kg8-f7) -3.27/16 0} 81. Qe5+ {(Qe6-e5+ Kb8-a7) +M47/6 0} Kb7 {(Kb8-b7
Kg5-g6 Qf1-d3+ Kg6-f7 Qd3-c4+ Qe5-e6 Qc4-f4+ Kf7-g6 Qf4-g3 g4-g5 Kb7-b8
Qe6-e7 Qg3-d3+ Kg6-g7 Qd3-d4+ Qe7-f6 Qd4-d7+ Qf6-f7 Qd7-d4+ Kg7-g8 Qd4-e4
g5-g6 Kb8-c8 g6-g7 Kc8-d8 Qf7-f1 Qe4-h4 Kg8-f7) -3.87/16 1} 82. Kg6
{(Kg5-g6 Qf1-d3+ Kg6-f6) +M46/6 0} Qd3+ {(Qf1-d3+ Kg6-f7 Qd3-c4+ Qe5-e6
Qc4-f1+ Kf7-g8 Qf1-g2 Qe6-e7+ Kb7-c6 g4-g5 Kc6-b5 Qe7-e8+ Kb5-a5 g5-g6
Qg2-d5+ Kg8-h7 Qd5-h5+ Kh7-g7 Qh5-f3 Qe8-f7 Qf3-e4 Kg7-f8 Qe4-a8+ Kf8-e7
Qa8-e4+ Ke7-d7 Qe4-d3+ Kd7-e8 Ka5-b4) -3.95/15 0} 83. Qf5 {(Qe5-f5) +M45/6
0} Qg3 {(Qd3-g3 g4-g5 Kb7-c6 Kg6-f6 Qg3-h4 Kf6-f7 Qh4-g3 g5-g6 Qg3-c7+
Kf7-g8 Qc7-d8+ Kg8-g7 Qd8-e7+ Qf5-f7 Qe7-e4 Kg7-g8 Kc6-b6 Qf7-f6+ Kb6-c7
g6-g7 Kc7-d7 Qf6-f7+ Kd7-d6 Qf7-f6+ Kd6-d7) -4.00/16 2} 84. g5 {(g4-g5)
+2.22/6 0} Kc7 {(Kb7-b6 Kg6-g7 Qg3-e1 Kg7-f7 Qe1-g3 Kf7-g7) -4.00/16 0} 85.
Kf6 {(Kg6-f6) +M39/6 0} Qh4 {(Qg3-h4 Kf6-f7 Qh4-h5+ Kf7-g7 Qh5-h2 g5-g6
Kc7-d8 Qf5-e6 Qh2-g3 Kg7-g8 Qg3-h2 Qe6-f6+ Kd8-d7 Qf6-f5+ Kd7-e7 g6-g7
Ke7-e8 Qf5-e4+ Ke8-d7 Kg8-f7 Qh2-f2+ Kf7-g6 Qf2-g1+ Kg6-h5 Qg1-c5+ Kh5-h6
Qc5-d6+ Kh6-h7 Qd6-h2+ Kh7-g6 Qh2-g1+) -4.24/16 0} 86. Ke6 {(Kf6-e6) +M38/6
0} Qc4+ {(Qh4-c4+ Qf5-d5 Qc4-g4+ Ke6-f7 Qg4-f4+ Kf7-g7 Kc7-b6 g5-g6 Kb6-a6
Kg7-h7 Qf4-h2+ Kh7-g8 Qh2-b8+ Kg8-f7 Qb8-c7+ Kf7-f6 Qc7-c3+ Kf6-e7 Qc3-c7+
Qd5-d7 Qc7-c3 Qd7-e6+ Ka6-b7 Ke7-f8 Qc3-g3 g6-g7) -4.72/15 0} 87. Qd5
{(Qf5-d5 Qc4-g4+ Ke6-f6) +M37/6 0} Qa6+ {(Qc4-a6+ Ke6-e7 Qa6-a1 Qd5-c4+
Kc7-b6 g5-g6 Qa1-a3+ Ke7-d7 Qa3-b2 Qc4-c7+ Kb6-a6 Qc7-d6+ Ka6-b7 Qd6-d5+
Kb7-b6 Kd7-e7 Qb2-a1 Qd5-e6+ Kb6-b5 Ke7-f7 Qa1-f1+ Kf7-g8 Qf1-f3 g6-g7
Kb5-c5 Qe6-e7+ Kc5-c6 Qe7-e8+ Kc6-b6 Qe8-b8+ Kb6-a5 Qb8-f8 Qf3-e4 Qf8-c5+
Ka5-a4 Kg8-f7) -5.09/16 1} 88. Kf5 {(Ke6-f5) +2.82/6 0} Qc8+ {(Qa6-c8+
Qd5-e6 Qc8-f8+ Qe6-f6 Qf8-c8+ Kf5-f4 Qc8-h3 g5-g6 Qh3-f1+ Kf4-g5 Qf1-g2+
Kg5-f5 Qg2-h3+ Kf5-e4 Qh3-g2+ Ke4-e5 Qg2-e2+ Ke5-f5 Qe2-f1+ Kf5-e6 Qf1-c4+
Ke6-e7 Qc4-c5+ Ke7-f7 Qc5-d5+ Qf6-e6 Qd5-h5 Qe6-e7+ Kc7-c6 Qe7-e4+ Kc6-d7
Kf7-f6 Qh5-h8+ g6-g7 Qh8-h6+ Qe4-g6 Qh6-h4+ Qg6-g5 Qh4-d4+ Qg5-e5 Qd4-b6+
Kf6-g5 Qb6-g1+ Kg5-h5 Qg1-h1+ Kh5-g6 Qh1-c6+ Qe5-f6 Qc6-g2+ Qf6-g5 Qg2-c6+
Kg6-h7 Qc6-e4+ Qg5-g6 Qe4-e7 Qg6-d3+) -4.12/15 1} 89. Kf6 {(Kf5-f6) +M40/6
0} Qh8+ {(Qc8-h8+ Kf6-f7 Qh8-h7+ Kf7-f8 Qh7-h8+ Qd5-g8 Qh8-h1 Qg8-f7+
Kc7-d6 Qf7-e7+ Kd6-c6 Qe7-e6+ Kc6-b5 Qe6-f5+ Kb5-a4 g5-g6 Qh1-a8+ Kf8-e7
Qa8-g2 Qf5-d7+ Ka4-a5 Qd7-d8+ Ka5-b5 Qd8-d3+ Kb5-c5 Qd3-c3+ Kc5-d5 Qc3-f6
Kd5-c4 g6-g7 Qg2-b7+ Ke7-e8 Qb7-c8+ Qf6-d8 Qc8-e6+ Ke8-f8 Qe6-f5+) -4.68/15
0} 90. Kg6 {(Kf6-g6) +2.46/6 0} Kb6 {(Kc7-b6 Qd5-e6+ Kb6-c5 Qe6-f5+ Kc5-c4
Qf5-e4+ Kc4-c3 Kg6-f7 Qh8-c8 Qe4-e5+ Kc3-c2 g5-g6 Qc8-d7+ Kf7-f6 Qd7-c6+
Kf6-f5 Qc6-f3+ Kf5-e6 Qf3-c6+ Qe5-d6 Qc6-e4+ Ke6-d7 Qe4-g4+ Qd6-e6 Qg4-d4+
Kd7-e8 Qd4-c3 Qe6-f5+ Kc2-b3 Ke8-f7 Qc3-c7+ Kf7-f8) -3.71/16 1} 91. Kf5
{(Kg6-f5 Qh8-f8+ Kf5-e4) +M51/100 1} Qh3+ {(Qh8-h3+ Kf5-f6 Qh3-h8+ Kf6-g6
Qh8-e8+ Kg6-f5 Qe8-f8+ Kf5-e4 Qf8-e8+ Qd5-e5 Qe8-g6+ Ke4-f4 Qg6-h5 Qe5-e6+
Kb6-c5 g5-g6 Qh5-h6+ Kf4-f5 Qh6-f8+ Qe6-f6 Qf8-c8+ Kf5-g5 Qc8-g8 Qf6-e5+
Kc5-b4 Qe5-d4+ Kb4-b5 g6-g7) -3.79/14 1} 92. Kf6 {(Kf5-f6 Qh3-c3+ Qd5-e5)
+M50/100 1} Qh8+ {(Qh3-h8+ Kf6-g6 Qh8-e8+ Kg6-f5 Qe8-f8+ Kf5-e4 Qf8-c8
Qd5-b3+ Kb6-a7 Qb3-a3+ Ka7-b7 Qa3-b2+ Kb7-a7 Qb2-f2+ Ka7-a8 Qf2-a2+ Ka8-b8
Qa2-b1+ Kb8-a7 g5-g6 Qc8-e6+ Ke4-d4 Qe6-d6+ Kd4-c4 Qd6-e6+ Kc4-c5 Qe6-e3+
Kc5-d6 Qe3-f4+ Kd6-e6 Qf4-e3+ Ke6-f7 Qe3-f3+ Kf7-e7 Qf3-g3 Qb1-a2+ Ka7-b6
Qa2-e6+ Kb6-c5 Ke7-f6) -3.55/13 0} 93. Kg6 {(Kf6-g6) +M49/6 0} Qe8+
{(Qh8-e8+ Kg6-f5 Qe8-f8+ Kf5-e4 Qf8-c8 Qd5-b3+ Kb6-a5 Qb3-a3+ Ka5-b6
Qa3-d6+ Kb6-b5 Qd6-d3+ Kb5-b6 g5-g6 Qc8-e6+ Ke4-f4 Qe6-f6+ Kf4-g4 Qf6-e6+
Kg4-g5 Qe6-e7+ Kg5-f5 Qe7-f8+ Kf5-g4 Qf8-f6 Qd3-e3+ Kb6-a6 Qe3-g5 Qf6-e6+
Qg5-f5 Qe6-e7 Qf5-f4) -3.67/16 1} 94. Kf5 {(Kg6-f5) +2.86/6 0} Qf8+
{(Qe8-f8+ Kf5-e4 Qf8-c8 Qd5-b3+ Kb6-a5 Qb3-a3+ Ka5-b6 Qa3-d6+ Kb6-b7
Qd6-e7+ Kb7-b8 Qe7-e5+ Kb8-b7 Qe5-b2+ Kb7-a7 Qb2-f2+ Ka7-a8 Qf2-a2+ Ka8-b8
Qa2-b1+ Kb8-a7 g5-g6 Qc8-e6+ Ke4-d4 Qe6-d6+ Kd4-e3 Qd6-g3+ Ke3-d4 Qg3-d6+)
-3.71/17 0} 95. Kg4 {(Kf5-g4) +2.66/6 0} Qc8+ {(Qf8-c8+ Kg4-f4 Qc8-f8+
Kf4-e4 Qf8-c8 Qd5-d6+ Kb6-b5 Qd6-d3+ Kb5-b6 g5-g6 Qc8-e6+ Ke4-f4 Qe6-f6+
Kf4-g4 Qf6-e6+ Kg4-g5 Qe6-e7+ Kg5-f5 Qe7-f8+ Kf5-g4 Qf8-b4+ Kg4-h5 Qb4-c5+
Kh5-h6 Qc5-e5 g6-g7 Qe5-h2+ Kh6-g5) -3.75/16 1} 96. Kf4 {(Kg4-f4 Qc8-f8+
Qd5-f5) +M48/6 0} Qf8+ {(Qc8-f8+ Kf4-e4 Qf8-c8 Qd5-d6+ Kb6-a7 Qd6-e7+
Ka7-a8 Ke4-e5 Qc8-c3+ Ke5-f5 Qc3-c8+ Qe7-e6 Qc8-c5+ Kf5-f6 Qc5-f8+ Kf6-g6
Qf8-d8 Qe6-f6 Qd8-c8 Kg6-h6 Qc8-h3+ Kh6-g7 Ka8-b8 Qf6-d8+) -3.63/15 0} 97.
Ke4 {(Kf4-e4 Qf8-e7+ Qd5-e5) +M47/6 0} Qc8 {(Qf8-c8 Qd5-d6+ Kb6-b7 Qd6-e7+
Kb7-b8 Qe7-e5+ Kb8-b7 Ke4-f4 Qc8-f8+ Kf4-g4 Qf8-c8+ Qe5-f5 Qc8-c4+ Kg4-h5
Kb7-b6 g5-g6 Qc4-d4 Qf5-e6+ Kb6-b5 Kh5-g5 Qd4-d8+ Kg5-f4 Qd8-d4+ Qe6-e4
Qd4-g1 Kf4-f5 Qg1-f2+ Kf5-g5 Qf2-d2+ Kg5-g4 Qd2-a2 g6-g7) -3.71/16 0} 98.
Qd6+ {(Qd5-d6+ Kb6-b5) +M46/6 0} Kb5 {(Kb6-b5 Qd6-d3+ Kb5-b6 g5-g6 Qc8-e6+
Ke4-f4 Qe6-f6+ Kf4-g4 Qf6-e5 Qd3-d7 Qe5-f6 Qd7-f5 Qf6-d4+ Kg4-h5 Kb6-c6
Qf5-c8+ Kc6-b6 Qc8-e6+ Kb6-b5 Kh5-g5 Qd4-d8+ Kg5-f4 Qd8-d2+ Kf4-f5 Qd2-d3+
Qe6-e4 Qd3-d7+ Kf5-f4 Qd7-d2+ Kf4-e5 Kb5-c5 Ke5-f6) -3.83/16 0} 99. g6
{(g5-g6 Qc8-g4+ Ke4-e5) +M45/6 0} Qg4+ {(Qc8-g4+ Ke4-e3 Qg4-h3+ Ke3-d4
Qh3-h4+ Kd4-d3 Qh4-h3+ Kd3-d2 Qh3-h6+ Kd2-c2 Qh6-g5 Kc2-d3 Kb5-a5 Qd6-e6
Ka5-b4 Qe6-b6+ Kb4-a4 Qb6-d4+ Ka4-b5 Qd4-d7+ Kb5-c5 g6-g7 Qg5-g3+ Kd3-e4
Qg3-h4+ Ke4-f3 Qh4-h1+ Kf3-g4 Qh1-g2+ Kg4-f4 Qg2-f2+ Kf4-g5 Qf2-e3+ Kg5-g6
Qe3-g3+ Kg6-h7 Qg3-h4+ Kh7-g8 Qh4-h6) -3.83/15 0} 100. Ke3 {(Ke4-e3) +M44/6
0} Qh3+ {(Qg4-h3+ Ke3-d4 Qh3-g4+ Kd4-c3 Qg4-g5 Qd6-d7+ Kb5-a5 Qd7-e6 Ka5-b5
Qe6-c4+ Kb5-a5 Qc4-b4+ Ka5-a6 Qb4-a4+ Ka6-b7 Qa4-d7+ Kb7-a6 g6-g7) -3.79/16
1} 101. Kd2 {(Ke3-d2 Qh3-g2+ Kd2-d3) +M43/6 0} Qg2+ {(Qh3-g2+ Kd2-c3 Qg2-h1
Qd6-b8+ Kb5-a6 Qb8-g3 Qh1-c1+ Kc3-d4 Qc1-b2+ Kd4-d5 Qb2-b5+ Kd5-e6 Qb5-e8+
Ke6-f5 Qe8-c8+ Kf5-f4 Qc8-c4+ Kf4-f5 Qc4-c8+) -3.19/15 1} 102. Kc3
{(Kd2-c3) +M42/6 0} Qh1 {(Qg2-h1 Qd6-d7+ Kb5-c5 Qd7-c7+ Kc5-b5 Qc7-c4+
Kb5-b6 Qc4-e6+ Kb6-c5 Kc3-d3 Qh1-b1+ Kd3-e2 Kc5-b5 Qe6-e5+ Kb5-c4 g6-g7
Qb1-d3+ Ke2-e1 Qd3-b1+ Ke1-f2 Qb1-b6+) -3.79/15 0} 103. Qe6 {(Qd6-e6
Qh1-a1+ Kc3-d3) +M41/6 0} Ka5 {(Kb5-a5 Kc3-d4 Qh1-a1+ Kd4-d5 Qa1-d1+ Kd5-e5
Qd1-e1+ Ke5-f5 Qe1-f2+ Kf5-g5 Qf2-g3+ Qe6-g4 Qg3-e3+ Qg4-f4 Qe3-e7+ Kg5-g4
Qe7-e2+ Kg4-f5 Qe2-c2+ Qf4-e4 Qc2-f2+ Kf5-g5 Qf2-d2+ Kg5-f6 Qd2-d8+ Qe4-e7
Qd8-b6+ Kf6-f7 Qb6-b3+ Qe7-e6 Qb3-f3+ Kf7-e8 Qf3-c3 Qe6-f5+ Ka5-b6 Ke8-f8)
-4.20/14 0} 104. Kc4 {(Kc3-c4) +4.56/6 0} Qc6+ {(Qh1-c6+ Qe6xc6) 0.00/25 0}
105. Qxc6 {(Qe6xc6) 0.00/100 1 Stalemate} 1/2-1/2

I'm not sure what's going on, in fact, Kf4 might be the right move (checking it on the Shredder online TB now Kf4 is +M51). But at some point, Stockfish is making moves which are wrong, and it loses track of the forced mate.
OK. 88. Kf5 is suboptimal, dropping us from +M37 after 87.Dd5 back to +M41. 90.Kg6 drops us back to +M52 from +M39. 95.Kg4 +M49 instead of Ke4 +M47 and so on. It's one step forward, five steps backward.

What I don't know is: are the tablebases at fault? Or is the probing code at fault? I'll continue to research it, but maybe someone knows what's going on already.

UPDATE: Houdini finds 88.Kf7 no problem, so there's most likely an issue with the probing code (unless the move is getting chucked for some other reason). I'll see what I can puzzle out in the next day or two.

fruity
Posts: 29
Joined: Wed Feb 02, 2011 12:52 am

Re: Designing an analysis friendly Stockfish?

Post by fruity » Sun Feb 06, 2011 1:57 am

gaard wrote: Does the lagging 10-15 Elo include version G?
I have tested this at g/2' and could not find a significant difference from default,
and neither could Ingo using a time control of 5'+3", granted with only 600 games.
My results were:
Version G: 616 games/20'' 6 threads per engine: +93, -120, =403 (-15 Elo)
Version H: 1187 games/20'' 6 threads per engine: +210, -243 =734 (-10 Elo)

Peter C
Posts: 154
Joined: Thu Jun 10, 2010 3:12 am
Real Name: Peter C

Re: Designing an analysis friendly Stockfish?

Post by Peter C » Sun Feb 06, 2011 2:33 am

fruity wrote:Minimum Thinking Time=2
Emergency Base Time=20
Emergency Move Time=7
That did indeed help. Thanks. :)

I ran a 500 game 40/1 test using cutechess-cli between the latest Stockfish PA GTB git and the default Stockfish (my own compile, with the same settings as the SF git compile). ProbeOnlyAtRoot was on for SF PA GTB.

Results:

Code: Select all

Score of Stockfish 2.0.1 PA GTB vs Stockfish 2.0.1: 110 - 188 - 202
ELO difference: -55
Not tooooo bad. This is probably statistically meaningless anyway, but at least we know we aren't like 200 elo weaker.... :P

Peter

gaard
Posts: 127
Joined: Thu Jun 10, 2010 1:39 am
Real Name: Martin Wyngaarden
Location: Holland, Michigan

Re: Designing an analysis friendly Stockfish?

Post by gaard » Sun Feb 06, 2011 2:40 am

fruity wrote:
gaard wrote: Does the lagging 10-15 Elo include version G?
I have tested this at g/2' and could not find a significant difference from default,
and neither could Ingo using a time control of 5'+3", granted with only 600 games.
My results were:
Version G: 616 games/20'' 6 threads per engine: +93, -120, =403 (-15 Elo)
Version H: 1187 games/20'' 6 threads per engine: +210, -243 =734 (-10 Elo)
Can I suggest you run your tests until some minimum level of significance has been reached, for example,
2.6-sigma for 99% confidence? IMO, the Elo differences are not very useful with a single opponent at
very fast time controls.

Version G: 616 games/20'' 6 threads per engine: +93, -120 (-1.85-sigma)
Version H: 1187 games/20'' 6 threads per engine: +210, -243 (-1.55-sigma)

fruity
Posts: 29
Joined: Wed Feb 02, 2011 12:52 am

Re: Designing an analysis friendly Stockfish?

Post by fruity » Sun Feb 06, 2011 3:41 am

gaard wrote:
fruity wrote:
gaard wrote: Does the lagging 10-15 Elo include version G?
I have tested this at g/2' and could not find a significant difference from default,
and neither could Ingo using a time control of 5'+3", granted with only 600 games.
My results were:
Version G: 616 games/20'' 6 threads per engine: +93, -120, =403 (-15 Elo)
Version H: 1187 games/20'' 6 threads per engine: +210, -243 =734 (-10 Elo)
Can I suggest you run your tests until some minimum level of significance has been reached, for example,
2.6-sigma for 99% confidence? IMO, the Elo differences are not very useful with a single opponent at
very fast time controls.

Version G: 616 games/20'' 6 threads per engine: +93, -120 (-1.85-sigma)
Version H: 1187 games/20'' 6 threads per engine: +210, -243 (-1.55-sigma)
You can and you are right, but at that tc and threads usage I won't afford to spent all the neccessary time in testing.
For 1'' or 2'' games, 1 thread, it's possible to get significant results, but there are other risks besides statistically significance involved in such fast games.

fruity
Posts: 29
Joined: Wed Feb 02, 2011 12:52 am

Re: Designing an analysis friendly Stockfish?

Post by fruity » Sun Feb 06, 2011 4:12 am

Peter C wrote:
fruity wrote:Minimum Thinking Time=2
Emergency Base Time=20
Emergency Move Time=7
That did indeed help. Thanks. :)

I ran a 500 game 40/1 test using cutechess-cli between the latest Stockfish PA GTB git and the default Stockfish (my own compile, with the same settings as the SF git compile). ProbeOnlyAtRoot was on for SF PA GTB.

Results:

Code: Select all

Score of Stockfish 2.0.1 PA GTB vs Stockfish 2.0.1: 110 - 188 - 202
ELO difference: -55
Not tooooo bad. This is probably statistically meaningless anyway, but at least we know we aren't like 200 elo weaker.... :P

Peter
It's clear that we are not 200 Elo weaker, but the goal should be to be slightly better, not slightly weaker. Maybe it's not possible or very hard at least to reach that goal, mainly because of the fact that TT entries doesn't contain path information, the main reason why SF default doesn't use PV TT hits. I have a few ideas to test left before I give up. But the project at this point is success anyway. 8-)

Post Reply