On QSearch

Programming Topics (Computer Chess) and technical aspects as test techniques, book building, program tuning etc

Moderator: Andres Valverde

On QSearch

Postby Reinhard Scharnagl » 01 Nov 2004, 22:11

Hi Sune,

it would obviously be better to start a new thread here on QSearch questions.
>> P.S.: does your qsearch care on passed pawns to be evaluated differently?
Of course! This is done in the evaluation and hence in qsearch.

Well, for me that is not at all obvious. Detail evaluation aspects could be combined with QSearch results whithout keeping them up to date during QSearch. One reason for this is, that positional escalations would not be followed by QSearch, thus positionally aspects could not be exactly calculated by the QSearch. So why tracking them during the calculation?

Reinhard.
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany

Re: On QSearch

Postby Sune Fischer » 01 Nov 2004, 23:03

In principle yes, but sometimes a single move can cause a big change in positional score as well, for instance if you capture a dangerous pawn on 7th.

Ideally a single move shouldn't be able to cause a big swing in positional eval, but practicly it does, for me.

The cure is better eval, but that's all easier said than done.

-S.
User avatar
Sune Fischer
 
Posts: 126
Joined: 07 Oct 2004, 11:12
Location: Denmark

Re: On QSearch

Postby Reinhard Scharnagl » 02 Nov 2004, 02:09

Hi Sune,

here is my first qsearch example, still doing a deescalation search and still not handling passed pawn evaluation yet:
Code: Select all
FEN: 3q2R1/2P5/1k1B4/4np2/1NPK1Pr1/1R6/PP1N1Q2/3q2b1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   [q]   :::<R>:::| (Compilation: Nov  2 2004)
7 |:::   <P>   :::   :::   | Testscenario QSearch(-max, +max):
6 |   [k]   <B>   :::   :::| Quiescence search
5 |:::   :::   [n][p]:::   |
4 |   <N><P><K>   <P>[r]:::| Smirf Test No.: 00
3 |:::<R>:::   :::   :::   |
2 |<P><P>   <N>   <Q>   :::| Eval Count:  37*19661
1 |:::   :::[q]:::   [b]   | per Second:  347400
=>+-a--b--c--d--e--f--g--h-+ Time:        2.094 sec

  19.38 c7xd8Q+  14.38 c7xd8B+  7.625 c7xd8R   6.625 Kd4xe5+  5.625 c7xd8N
  5.625 c7-c8Q   5.625 c7-c8N+  3.625 Rb3-h3   3.625 Rg8xd8   3.625 Rb3-g3
  3.625 Kd4-e3   3.625 Rb3-f3   3.625 Nb4-d5+  3.625 Nb4-c6+  3.625 Nb4-a6+
  3.625 c4-c5+   3.625 Kd4-d5+  3.625 Kd4-c3+  3.625 Nb4-d3+  3.625 Nb4-c2+
  3.625 a2-a4    3.625 Rg8-e8   3.625 Qf2-e3   3.625 a2-a3    3.625 Rg8-f8
  3.625 Rg8-g6   3.625 Rg8-g7   3.625 Rg8-g5   3.625 Rb3-c3   3.625 Rb3-a3
  3.625 Rb3-d3   3.625 Rg8-h8   3.625 Rb3-e3   3.250 Rg8xg4   2.250 c7-c8R
  1.625 Qf2xg1   0.625 c7-c8B

All moves will be repeatedly evaluated by a qsearch from -max to +max.

Reinhard
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany

Re: On QSearch

Postby Dan Honeycutt » 02 Nov 2004, 06:30

Reinhard Scharnagl wrote:All moves will be repeatedly evaluated by a qsearch from -max to +max.


Hi Reinhard:

I don't understand what you are doing. Is the score 19.38 for c7xd8Q a value returned by QSearch or is that it's score from when you generated the move which you search if it is between -max, max?

Best
Dan H
Dan Honeycutt
 
Posts: 167
Joined: 28 Sep 2004, 15:49
Location: Atlanta Georgia, USA

Re: On QSearch

Postby Reinhard Scharnagl » 02 Nov 2004, 07:01

Hi Dan,

Is the score 19.38 for c7xd8Q a value returned by QSearch ...

yes, the first option meets. The values are the answers for some qsearches using alpha = -max and beta = +max applied to each move seperatedly. Additionally I have overlayed it now with a passed pawn evaluation (not updating during qsearch) giving:
Code: Select all
FEN: 3q2R1/2P5/1k1B4/4np2/1NPK1Pr1/1R6/PP1N1Q2/3q2b1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   [q]   :::<R>:::| (Compilation: Nov  2 2004)
7 |:::   <P>   :::   :::   | Testscenario QSearch(-max, +max):
6 |   [k]   <B>   :::   :::| Quiescence search
5 |:::   :::   [n][p]:::   |
4 |   <N><P><K>   <P>[r]:::| Smirf Test No.: 00
3 |:::<R>:::   :::   :::   |
2 |<P><P>   <N>   <Q>   :::| Eval Count:  37*19661
1 |:::   :::[q]:::   [b]   | per Second:  247602
=>+-a--b--c--d--e--f--g--h-+ Time:        2.938 sec

  19.71 c7xd8Q+  14.71 c7xd8B+  12.00 Rg8xd8   10.37 Kd4xe5+  8.962 c7xd8N
  7.962 c7xd8R   7.390 a2-a4    7.379 Nb4-c2+  7.376 a2-a3    7.372 Nb4-d5+
  7.372 Nb4-c6+  7.372 Nb4-d3+  7.365 Rg8-g5   7.365 Rg8-g7   7.365 Rg8-g6
  7.365 Kd4-e3   7.365 Rg8-f8   7.365 Rg8-h8   7.365 c4-c5+   7.365 Kd4-d5+
  7.365 Kd4-c3+  7.365 Rg8-e8   7.365 Qf2-e3   7.363 Nb4-a6+  7.363 Rb3-e3
  7.363 Rb3-f3   7.363 Rb3-g3   7.363 Rb3-h3   7.363 Rb3-c3   7.363 Rb3-d3
  7.355 Rb3-a3   6.990 Rg8xg4   5.924 c7-c8N+  5.924 c7-c8Q   5.365 Qf2xg1
  2.549 c7-c8R   0.924 c7-c8B

Reinhard.
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany

Re: On QSearch

Postby Reinhard Scharnagl » 02 Nov 2004, 13:39

Hi all,

now I have rewritten the whole routine. It has become more precise but a lot slower. Thus I am highly interested in comparable solution results and test sets.
Code: Select all
FEN: 3q2R1/2P5/1k1B4/4np2/1NPK1Pr1/1R6/PP1N1Q2/3q2b1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   [q]   :::<R>:::| (Compilation: Nov  2 2004)
7 |:::   <P>   :::   :::   | Testscenario QSearch(-max, +max):
6 |   [k]   <B>   :::   :::| Quiescence search
5 |:::   :::   [n][p]:::   |
4 |   <N><P><K>   <P>[r]:::| Smirf Test No.: 00
3 |:::<R>:::   :::   :::   |
2 |<P><P>   <N>   <Q>   :::| Eval Count:  37*19661
1 |:::   :::[q]:::   [b]   | per Second:  95017
=>+-a--b--c--d--e--f--g--h-+ Time:        7.656 sec

  19.71 c7xd8Q+  14.71 c7xd8B+  10.37 Kd4xe5+  9.001 Rg8xd8   7.962 c7xd8R
  7.379 Nb4-c2+  7.372 Nb4-d3+  7.372 Nb4-d5+  7.372 Nb4-c6+  7.365 Kd4-c3+
  7.365 c4-c5+   7.365 Kd4-d5+  7.363 Nb4-a6+  5.962 c7xd8N   5.924 c7-c8N+
  3.990 Rg8xg4   2.924 c7-c8Q   2.365 Qf2xg1   2.363 Rb3-e3  -0.451 c7-c8R
 -0.985 a2-a4   -0.999 a2-a3   -1.010 Rg8-e8  -1.010 Qf2-e3  -1.010 Rg8-f8
 -1.010 Rg8-g6  -1.010 Rg8-g7  -1.010 Rg8-g5  -1.010 Rg8-h8  -1.010 Kd4-e3
 -1.012 Rb3-h3  -1.012 Rb3-c3  -1.012 Rb3-d3  -1.012 Rb3-f3  -1.012 Rb3-g3
 -1.020 Rb3-a3  -2.076 c7-c8B


FEN: 3R4/b1N1Q3/2B4K/r2P3b/pB1k2p1/1qR1p3/1Nn5/6n1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   <R>   :::   :::| (Compilation: Nov  2 2004)
7 |[b]   <N>   <Q>   :::   | Testscenario QSearch(-max, +max):
6 |   :::<B>:::   :::   <K>| Quiescence search
5 |[r]   :::<P>:::   :::[b]|
4 |[p]<B>   [k]   :::[p]:::| Smirf Test No.: 01
3 |:::[q]<R>   [p]   :::   |
2 |   <N>[n]:::   :::   :::| Eval Count:  54*13471
1 |:::   :::   :::   [n]   | per Second:  30309
=>+-a--b--c--d--e--f--g--h-+ Time:        24.000 sec

  7.520 Rc3xb3   3.645 Qe7xe3+  2.950 Bb4xa5   1.325 Kh6xh5   0.437 Bc6xa4
 -0.855 Rc3-d3+ -0.855 Rc3-c4+ -0.855 Bc6-b5  -0.855 Nb2-d3  -1.168 Rd8-h8
 -1.168 Rd8-a8  -1.168 Rd8-g8  -1.168 Rd8-b8  -1.168 Rd8-f8  -1.168 Rd8-c8
 -1.168 Rd8-e8  -1.322 Rc3xc2  -1.399 Qe7-e4+ -1.399 Qe7-e5+ -1.835 Rc3xe3
 -2.050 Bc6-a8  -2.050 Bc6-e8  -2.050 Kh6-g5  -2.050 Nc7-a8  -2.050 Rd8-d7
 -2.050 Kh6-g7  -2.050 Bc6-b7  -2.050 Qe7-c5+ -2.050 Nc7-e8  -2.050 Qe7-g7+
 -2.050 Qe7-f6+ -2.050 Kh6-h7  -2.050 Nc7-a6  -2.050 Nc7-b5+ -2.050 Nc7-e6+
 -2.701 Bc6-d7  -2.938 Nb2xa4  -3.579 Qe7-h4  -3.892 d5-d6   -5.425 Qe7-f7
 -5.425 Nb2-d1  -5.425 Qe7-e8  -5.425 Qe7-g5  -5.425 Qe7-f8  -5.425 Qe7-e6
 -5.425 Qe7-h7  -5.425 Qe7-d6  -5.425 Nb2-c4  -5.425 Rd8-d6  -5.855 Rc3-c5
 -6.076 Qe7-d7  -6.399 Bb4-a3  -7.050 Bb4-c5+ -7.050 Bb4-d6

Reinhard.
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany

Re: On QSearch

Postby Reinhard Scharnagl » 02 Nov 2004, 22:34

Hi all,

well, I will stop here my qsearch development. Because it seems to work fine and act well together with the overlayed static passed pawn evaluation. To update this at every move would be to extensive, which also is the reason for not to apply a detail evaluating each move within the quiescence search. The detail evaluation is coming now into the Smirf project.

It still would be nice to have some comparable data to the qsearch, which I have made again more precise with no average time costs (I hope):
Code: Select all
FEN: 3q2R1/2P5/1k1B4/4np2/1NPK1Pr1/1R6/PP1N1Q2/3q2b1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   [q]   :::<R>:::| (Compilation: Nov  2 2004)
7 |:::   <P>   :::   :::   | Testscenario QSearch(-max, +max):
6 |   [k]   <B>   :::   :::| Quiescence search
5 |:::   :::   [n][p]:::   |
4 |   <N><P><K>   <P>[r]:::| Smirf Test No.: 00
3 |:::<R>:::   :::   :::   |
2 |<P><P>   <N>   <Q>   :::| Eval Count:  37*19661
1 |:::   :::[q]:::   [b]   | per Second:  139814
=>+-a--b--c--d--e--f--g--h-+ Time:        5.203 sec

  19.71 c7xd8Q+  14.71 c7xd8B+  10.37 Kd4xe5+  9.001 Rg8xd8   7.962 c7xd8R
  7.379 Nb4-c2+  7.372 Nb4-d3+  7.372 Nb4-d5+  7.372 Nb4-c6+  7.365 Kd4-c3+
  7.365 c4-c5+   7.365 Kd4-d5+  7.363 Nb4-a6+  5.962 c7xd8N   5.924 c7-c8N+
  3.990 Rg8xg4   2.924 c7-c8Q   2.365 Qf2xg1   2.363 Rb3-e3  -0.451 c7-c8R
 -0.985 a2-a4   -0.999 a2-a3   -1.010 Rg8-e8  -1.010 Qf2-e3  -1.010 Rg8-f8
 -1.010 Rg8-g6  -1.010 Rg8-g7  -1.010 Rg8-g5  -1.010 Rg8-h8  -1.010 Kd4-e3
 -1.012 Rb3-h3  -1.012 Rb3-c3  -1.012 Rb3-d3  -1.012 Rb3-f3  -1.012 Rb3-g3
 -1.020 Rb3-a3  -2.076 c7-c8B


FEN: 3R4/b1N1Q3/2B4K/r2P3b/pB1k2p1/1qR1p3/1Nn5/6n1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   <R>   :::   :::| (Compilation: Nov  2 2004)
7 |[b]   <N>   <Q>   :::   | Testscenario QSearch(-max, +max):
6 |   :::<B>:::   :::   <K>| Quiescence search
5 |[r]   :::<P>:::   :::[b]|
4 |[p]<B>   [k]   :::[p]:::| Smirf Test No.: 01
3 |:::[q]<R>   [p]   :::   |
2 |   <N>[n]:::   :::   :::| Eval Count:  54*13471
1 |:::   :::   :::   [n]   | per Second:  27861
=>+-a--b--c--d--e--f--g--h-+ Time:        26.109 sec

  7.520 Rc3xb3   2.950 Bb4xa5   1.325 Kh6xh5   0.437 Bc6xa4   0.270 Qe7xe3+
 -0.855 Bc6-b5  -0.855 Rc3-d3+ -0.855 Rc3-c4+ -0.855 Nb2-d3  -1.168 Rd8-c8
 -1.168 Rd8-e8  -1.168 Rd8-f8  -1.168 Rd8-b8  -1.168 Rd8-g8  -1.168 Rd8-a8
 -1.168 Rd8-h8  -1.322 Rc3xc2  -1.399 Qe7-e5+ -1.835 Rc3xe3  -2.050 Qe7-g7+
 -2.050 Qe7-f6+ -2.050 Bc6-b7  -2.050 Kh6-g5  -2.050 Nc7-a8  -2.050 Rd8-d7
 -2.050 Nc7-b5+ -2.050 Kh6-g7  -2.050 Nc7-e8  -2.050 Kh6-h7  -2.050 Nc7-e6+
 -2.050 Qe7-c5+ -2.050 Bc6-e8  -2.050 Bc6-a8  -2.050 Nc7-a6  -2.701 Bc6-d7
 -2.938 Nb2xa4  -3.579 Qe7-h4  -3.892 d5-d6   -4.230 Rc3-c5  -4.774 Qe7-e4+
 -5.425 Qe7-g5  -5.425 Qe7-e6  -5.425 Nb2-d1  -5.425 Qe7-d6  -5.425 Qe7-f8
 -5.425 Nb2-c4  -5.425 Rd8-d6  -5.425 Qe7-h7  -5.425 Qe7-f7  -6.050 Bb4-d6
 -6.050 Bb4-c5+ -6.076 Qe7-d7  -6.399 Bb4-a3  -10.42 Qe7-e8

Regards, Reinhard.
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany

pawn-hash

Postby Volker Böhm » 02 Nov 2004, 23:35

Have you got a pawn-hash?

Usually pawn evaluation is cheap as you can read most information from a special hash table only containing pawn?s.

Greetings Volker
Volker B?hm, Spike Team
Volker Böhm
 
Posts: 66
Joined: 27 Sep 2004, 18:52
Location: Germany

Re: On QSearch

Postby Reinhard Scharnagl » 03 Nov 2004, 11:07

Hi Volker,

in my evaluation of passed pawns all pieces on the board have influence. That will make a pawn hash be not efficient. Nevertheless I am thinking over cashing position evaluations during the qsearch, but for this moment I decided not to use any cashing there.

When trying to use a more exact evaluation during qsearch, it would be best also to include additional detailed positional evaluations. But my goal using qsearch is simply to get a more stable count of the piece values.

Regards, Reinhard.
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany

Re: On QSearch

Postby Tord Romstad » 03 Nov 2004, 13:59

Hi Reinhard,
Reinhard Scharnagl wrote:in my evaluation of passed pawns all pieces on the board have influence.

Of course. This is true for most programs, I think.
That will make a pawn hash be not efficient.

Not necessarily. Even if all your pawn structure evaluation terms depend on the locations of all pieces, a pawn hash table can still improve performance. Instead of storing evaluations in the pawn hash table, you store the pawn-structure related information you want to use in the evaluation. For instance, you don't store the passed pawn evaluation, but just the locations of all passed pawns. Other data which could be interesting to store is open files, outpost squares, locations of isolated/doubled/backward pawns, number of pawns on black/white squares for each side, type of pawn centre, and bad bishop colour.

Tord
User avatar
Tord Romstad
 
Posts: 639
Joined: 09 Oct 2004, 12:49
Location: Oslo, Norway

Re: On QSearch

Postby Reinhard Scharnagl » 03 Nov 2004, 20:49

Hi Tord,

of course I am thinking over caching. But pawn related caching this moment is not interesting for me. When caching would make sense during qsearch at all, I would like to cache the whole evaluation, not only any pawn related data. May be that is not that efficient, but it seems to me to be more natural and less complex.

Nevertheless may be later I will think it over again. Some sophisticated people seem to use it, as I have to learn.

Reinhard.
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany

Re: On QSearch

Postby Reinhard Scharnagl » 03 Nov 2004, 23:44

Hi all,

now I have additionally tested the behaviour when always updating passed pawn evaluation but doing it with caching complete results in the transposition table. I noticed that the time consumption is nearly doubling. But it is possible, that the true search routine might nevertheless benefit from that caching, because the chances to reuse stored values is very low in the qsearch procedure alone.

Here are the testing results with cleared TT before any evaluating node expansion:
Code: Select all
FEN: 3q2R1/2P5/1k1B4/4np2/1NPK1Pr1/1R6/PP1N1Q2/3q2b1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   [q]   :::<R>:::| (Compilation: Nov  3 2004)
7 |:::   <P>   :::   :::   | Testscenario QSearch(-max, +max):
6 |   [k]   <B>   :::   :::| Quiescence search
5 |:::   :::   [n][p]:::   |
4 |   <N><P><K>   <P>[r]:::| Smirf Test No.: 00
3 |:::<R>:::   :::   :::   |
2 |<P><P>   <N>   <Q>   :::| Eval Count:  37*230
1 |:::   :::[q]:::   [b]   | per Second:  60785
=>+-a--b--c--d--e--f--g--h-+ Time:        0.140 sec

  19.71 c7xd8Q+  14.71 c7xd8B+  10.37 Kd4xe5+  8.996 Rg8xd8   7.957 c7xd8R
  7.379 Nb4-c2+  7.371 Nb4-d3+  7.371 Nb4-d5+  7.371 Nb4-c6+  7.367 Kd4-c3+
  7.367 c4-c5+   7.367 Kd4-d5+  7.359 Nb4-a6+  5.957 c7xd8N   5.922 c7-c8N+
  3.984 Rg8xg4   2.922 c7-c8Q   2.367 Qf2xg1   2.359 Rb3-e3  -0.453 c7-c8R
 -0.992 a2-a4   -1.008 a2-a3   -1.016 Rg8-e8  -1.016 Qf2-e3  -1.016 Rg8-f8
 -1.016 Rg8-g6  -1.016 Rg8-g7  -1.016 Rg8-g5  -1.016 Rg8-h8  -1.016 Kd4-e3
 -1.020 Rb3-h3  -1.020 Rb3-c3  -1.020 Rb3-d3  -1.020 Rb3-f3  -1.020 Rb3-g3
 -1.027 Rb3-a3  -2.078 c7-c8B


FEN: 3R4/b1N1Q3/2B4K/r2P3b/pB1k2p1/1qR1p3/1Nn5/6n1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   <R>   :::   :::| (Compilation: Nov  3 2004)
7 |[b]   <N>   <Q>   :::   | Testscenario QSearch(-max, +max):
6 |   :::<B>:::   :::   <K>| Quiescence search
5 |[r]   :::<P>:::   :::[b]|
4 |[p]<B>   [k]   :::[p]:::| Smirf Test No.: 01
3 |:::[q]<R>   [p]   :::   |
2 |   <N>[n]:::   :::   :::| Eval Count:  54*157
1 |:::   :::   :::   [n]   | per Second:  15499
=>+-a--b--c--d--e--f--g--h-+ Time:        0.547 sec

  6.641 Rc3xb3   2.949 Bb4xa5   2.512 Qe7xe3+  1.324 Kh6xh5   0.438 Bc6xa4
 -0.855 Bc6-b5  -0.855 Rc3-c4+ -0.855 Rc3-d3+ -0.855 Nb2-d3  -1.172 Rd8-e8
 -1.172 Rd8-c8  -1.172 Rd8-b8  -1.172 Rd8-f8  -1.172 Rd8-g8  -1.172 Rd8-h8
 -1.172 Rd8-a8  -1.398 Qe7-e4+ -1.508 Qe7-e5+ -2.051 Bc6-b7  -2.051 Qe7-g7+
 -2.051 Qe7-f6+ -2.051 Kh6-g5  -2.051 Nc7-b5+ -2.051 Rd8-d7  -2.051 Nc7-e8
 -2.051 Kh6-g7  -2.051 Kh6-h7  -2.051 Nc7-e6+ -2.051 Qe7-c5+ -2.051 Nc7-a8
 -2.051 Nc7-a6  -2.051 Bc6-e8  -2.051 Bc6-a8  -2.488 Rc3xe3  -2.703 Bc6-d7
 -2.855 Rc3xc2  -2.938 Nb2xa4  -3.895 d5-d6   -4.230 Qe7-h4  -4.563 Bb4-d6
 -4.563 Bb4-c5+ -5.215 Qe7-e6  -5.215 Qe7-g5  -5.426 Qe7-d6  -5.426 Nb2-c4
 -5.426 Qe7-f8  -5.426 Nb2-d1  -5.695 Qe7-d7  -6.078 Qe7-e8  -6.078 Rd8-d6
 -6.078 Qe7-h7  -6.078 Qe7-f7  -6.305 Rc3-c5  -6.398 Bb4-a3

It would be very nice to see some other comparable qsearch evaluation results for the positions above and its moves.

Regards, Reinhard.
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany

Re: On QSearch

Postby Reinhard Scharnagl » 04 Nov 2004, 11:35

Hi all,

now I have added a transposition table statistic. It shows the number of evaluations (not the generated moves) and the (missing) TT success:
Code: Select all
FEN: 3q2R1/2P5/1k1B4/4np2/1NPK1Pr1/1R6/PP1N1Q2/3q2b1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   [q]   :::<R>:::| (Compilation: Nov  4 2004)
7 |:::   <P>   :::   :::   | Testscenario QSearch(-max, +max):
6 |   [k]   <B>   :::   :::| TT Accesses 65320, Success 0.3%
5 |:::   :::   [n][p]:::   |
4 |   <N><P><K>   <P>[r]:::| Smirf Test No.: 00
3 |:::<R>:::   :::   :::   |
2 |<P><P>   <N>   <Q>   :::| Eval Count:             37*230
1 |:::   :::[q]:::   [b]   | TT Accesses per Second: 463262
=>+-a--b--c--d--e--f--g--h-+ Time:                   0.141 sec

  19.71 c7xd8Q+  14.71 c7xd8B+  10.37 Kd4xe5+  8.996 Rg8xd8   7.957 c7xd8R
  7.379 Nb4-c2+  7.371 Nb4-d3+  7.371 Nb4-d5+  7.371 Nb4-c6+  7.367 Kd4-c3+
  7.367 c4-c5+   7.367 Kd4-d5+  7.359 Nb4-a6+  5.957 c7xd8N   5.922 c7-c8N+
  3.984 Rg8xg4   2.922 c7-c8Q   2.367 Qf2xg1   2.359 Rb3-e3  -0.453 c7-c8R
 -0.992 a2-a4   -1.008 a2-a3   -1.016 Rg8-e8  -1.016 Qf2-e3  -1.016 Rg8-f8
 -1.016 Rg8-g6  -1.016 Rg8-g7  -1.016 Rg8-g5  -1.016 Rg8-h8  -1.016 Kd4-e3
 -1.020 Rb3-h3  -1.020 Rb3-c3  -1.020 Rb3-d3  -1.020 Rb3-f3  -1.020 Rb3-g3
 -1.027 Rb3-a3  -2.078 c7-c8B


FEN: 3R4/b1N1Q3/2B4K/r2P3b/pB1k2p1/1qR1p3/1Nn5/6n1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   <R>   :::   :::| (Compilation: Nov  4 2004)
7 |[b]   <N>   <Q>   :::   | Testscenario QSearch(-max, +max):
6 |   :::<B>:::   :::   <K>| TT Accesses 129839, Success 2.0%
5 |[r]   :::<P>:::   :::[b]|
4 |[p]<B>   [k]   :::[p]:::| Smirf Test No.: 01
3 |:::[q]<R>   [p]   :::   |
2 |   <N>[n]:::   :::   :::| Eval Count:             54*157
1 |:::   :::   :::   [n]   | TT Accesses per Second: 237365
=>+-a--b--c--d--e--f--g--h-+ Time:                   0.547 sec

  6.641 Rc3xb3   2.949 Bb4xa5   2.512 Qe7xe3+  1.324 Kh6xh5   0.438 Bc6xa4
 -0.855 Bc6-b5  -0.855 Rc3-c4+ -0.855 Rc3-d3+ -0.855 Nb2-d3  -1.172 Rd8-e8
 -1.172 Rd8-c8  -1.172 Rd8-b8  -1.172 Rd8-f8  -1.172 Rd8-g8  -1.172 Rd8-h8
 -1.172 Rd8-a8  -1.398 Qe7-e4+ -1.508 Qe7-e5+ -2.051 Bc6-b7  -2.051 Qe7-g7+
 -2.051 Qe7-f6+ -2.051 Kh6-g5  -2.051 Nc7-b5+ -2.051 Rd8-d7  -2.051 Nc7-e8
 -2.051 Kh6-g7  -2.051 Kh6-h7  -2.051 Nc7-e6+ -2.051 Qe7-c5+ -2.051 Nc7-a8
 -2.051 Nc7-a6  -2.051 Bc6-e8  -2.051 Bc6-a8  -2.488 Rc3xe3  -2.703 Bc6-d7
 -2.855 Rc3xc2  -2.938 Nb2xa4  -3.895 d5-d6   -4.230 Qe7-h4  -4.563 Bb4-d6
 -4.563 Bb4-c5+ -5.215 Qe7-e6  -5.215 Qe7-g5  -5.426 Qe7-d6  -5.426 Nb2-c4
 -5.426 Qe7-f8  -5.426 Nb2-d1  -5.695 Qe7-d7  -6.078 Qe7-e8  -6.078 Rd8-d6
 -6.078 Qe7-h7  -6.078 Qe7-f7  -6.305 Rc3-c5  -6.398 Bb4-a3

Regards, Reinhard.
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany

Re: On QSearch

Postby Reinhard Scharnagl » 04 Nov 2004, 16:01

Hi all,

now I have included a specialized check thread extension, simultaneously filtering a lot of "irrelevant" captures:
Code: Select all
FEN: 3q2R1/2P5/1k1B4/4np2/1NPK1Pr1/1R6/PP1N1Q2/3q2b1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   [q]   :::<R>:::| (Compilation: Nov  4 2004)
7 |:::   <P>   :::   :::   | Testscenario QSearch(-max, +max):
6 |   [k]   <B>   :::   :::| TT Accesses 4634, Success 0.8%
5 |:::   :::   [n][p]:::   |
4 |   <N><P><K>   <P>[r]:::| Smirf Test No.: 00
3 |:::<R>:::   :::   :::   |
2 |<P><P>   <N>   <Q>   :::| Evaluated Trees Count:  37*14
1 |:::   :::[q]:::   [b]   | TT Accesses per Second: 18536
=>+-a--b--c--d--e--f--g--h-+ Time:                   0.250 sec

  99.99 c7xd8Q+  14.71 c7xd8B+  10.37 Kd4xe5+  8.996 Rg8xd8   7.957 c7xd8R
  7.379 Nb4-c2+  7.371 Nb4-d3+  7.371 Nb4-d5+  7.371 Nb4-c6+  7.367 Kd4-c3+
  7.367 Kd4-d5+  7.367 c4-c5+   7.359 Nb4-a6+  5.957 c7xd8N   5.922 c7-c8N+
  3.984 Rg8xg4   2.922 c7-c8Q   2.367 Qf2xg1   2.359 Rb3-e3  -0.453 c7-c8R
 -0.992 a2-a4   -1.008 a2-a3   -1.016 Rg8-e8  -1.016 Qf2-e3  -1.016 Rg8-f8
 -1.016 Rg8-g6  -1.016 Rg8-g7  -1.016 Rg8-g5  -1.016 Rg8-h8  -1.020 Rb3-h3
 -1.020 Rb3-c3  -1.020 Rb3-d3  -1.020 Rb3-g3  -1.020 Rb3-f3  -1.027 Rb3-a3
 -2.078 c7-c8B  -99.99 Kd4-e3


FEN: 3R4/b1N1Q3/2B4K/r2P3b/pB1k2p1/1qR1p3/1Nn5/6n1 w - - 0 1

  +-a--b--c--d--e--f--g--h-+ MS Vis. Studio C++ Vers. 13.10
8 |   :::   <R>   :::   :::| (Compilation: Nov  4 2004)
7 |[b]   <N>   <Q>   :::   | Testscenario QSearch(-max, +max):
6 |   :::<B>:::   :::   <K>| TT Accesses 5470, Success 0.4%
5 |[r]   :::<P>:::   :::[b]|
4 |[p]<B>   [k]   :::[p]:::| Smirf Test No.: 01
3 |:::[q]<R>   [p]   :::   |
2 |   <N>[n]:::   :::   :::| Evaluated Trees Count:  54*10
1 |:::   :::   :::   [n]   | TT Accesses per Second: 16677
=>+-a--b--c--d--e--f--g--h-+ Time:                   0.328 sec

  7.520 Qe7-g7+  7.520 Qe7-f6+  6.641 Rc3xb3   5.988 Nc7-e6+  3.641 Nc7-b5+
  2.949 Bb4xa5   2.520 Rc3-d3+  2.145 Rc3-c4+  1.633 Rc3xe3   1.633 Qe7xe3+
  1.324 Kh6xh5   0.438 Bc6xa4   0.438 Nb2xa4  -0.203 Qe7-h4  -0.855 Nb2-d3
 -0.855 Bc6-b5  -1.172 Rd8-b8  -1.172 Rd8-e8  -1.172 Rd8-a8  -1.172 Rd8-g8
 -1.172 Rd8-c8  -1.172 Rd8-h8  -1.172 Rd8-f8  -1.734 Qe7-e4+ -2.051 Rd8-d7
 -2.051 Qe7-e6  -2.051 Kh6-g7  -2.051 Qe7-d6  -2.051 Bc6-e8  -2.051 Qe7-h7
 -2.051 Kh6-g5  -2.051 Qe7-g5  -2.051 Rd8-d6  -2.051 Nb2-d1  -2.051 Qe7-f7
 -2.051 Nc7-a6  -2.051 Bc6-a8  -2.051 Kh6-h7  -2.051 Bc6-b7  -2.051 Qe7-f8
 -2.387 Qe7-e8  -2.387 Qe7-e5+ -2.703 Qe7-d7  -2.703 Bc6-d7  -2.855 Rc3xc2
 -2.930 Nb2-c4  -3.359 Qe7-c5+ -3.895 d5-d6   -4.742 Nc7-e8  -4.742 Nc7-a8
 -6.398 Bb4-a3  -6.418 Bb4-d6  -6.508 Rc3-c5  -6.590 Bb4-c5+

Regards, Reinhard.
Reinhard Scharnagl
 
Posts: 608
Joined: 01 Oct 2004, 08:36
Location: Klein-Gerau, Germany


Return to Programming and Technical Discussions

Who is online

Users browsing this forum: No registered users and 26 guests