Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Nolot #5 Q5T Output

Author: Eelco de Groot

Date: 17:29:01 12/30/00

Go up one level in this thread



Hello Bruce, this is the output I got with the Q5T Personality. But when I read
that your program only plays 1.e5 after 66 hours on a quad, with a different
main line of e5 Nh5 Qg6 d5 Qxh5, I'm not really sure what exactly Q5T is seeing
here. Moreover as this position is also part of LCT II testsuite it is probable
that Eric Campos used it as one of the positions to tune his Rebel Q3
personality with it. So a solution time of zero seconds by Q5T does not say all
that much. Still, it is nice to see! But is Q5T seeing completely different
things?


[D]r2qrb1k/1p1b2p1/p2ppn1p/8/3NP3/1BN5/PPP3QP/1K3RR1 w - -

Rebel Engine for ECTool. (c) Ed Schröder

Engine version   :  REBEL CENTURY 2
Rebel personality :  "Q5T under Century 2.0 in ECTool"
Opening book file :  RebelC.mvs
Hash table size  :  12 MB
Analysis mode   :  Analyzing next move
Refresh interval : 500 ms

Game begin

00:00  04.01  1.39  1.e5 dxe5 2.Ne4 Nh5 3.Nf3 Bb5
00:00  05.00  1.77  1.e5 dxe5 2.Ne4 Nh5 3.Ne2 Bc6 4.Rf7
00:01  06.00  1.71  1.e5 dxe5 2.Ne4 Nh5 3.Ne2 Bb5 4.Rf7 Be7
00:02  07.00  1.76  1.e5 dxe5 2.Ne4 Nh5 3.Qg6 Nf4 4.Qf7 exd4 5.Rxf4
00:06  08.00  1.33  1.e5 dxe5 2.Ne4 Nh5 3.Qg6 Nf4 4.Qf7 exd4 5.Rxf4 Rc8
00:16  09.00  1.49  1.e5 dxe5 2.Ne4 Nh5 3.Nf3 Nf4 4.Qg4 h5 5.Nxe5 hxg4
00:58  10.00  1.49  1.e5 dxe5 2.Ne4 Nh5 3.Nf3 Nf4 4.Qg4 h5 5.Nxe5
03:48  11.00  1.85  1.e5 dxe5 2.Ne4 Nh5 3.Nf3 Nf4 4.Qg4 h5 5.Qg3 Qc7 6.Nf6
14:30  12.00  2.19  1.e5 dxe5 2.Ne4 Nh5 3.Nf3 Nf4 4.Qg4 h5 5.Qg3
00:32  13.00  2.37  1.e5 dxe5 2.Ne4 Nh5 3.Nf3 Nf4 4.Qg4 Qc7 5.Nf6 Bb5
(01h00m32s)
13:58  14.00  2.27  1.e5 dxe5 2.Ne4 Nh5 3.Nf3 Nf4 4.Qg4 Qc7 5.Nf6 Bb5
(02h13m58s)
33:53  15.00  2.31  1.e5 dxe5 2.Ne4 Nh5 3.Nf3 Nf4 4.Qg3

--------------------------------------------------------------------------------
This was what Jeremiah put in his post of November 27, the analysis is of the
Deep Thought 2 team, DT 2 needed 4 hours to play 1.e4-e5.

Position #5

r2qrb1k/1p1b2p1/p2ppn1p/8/3NP3/1BN5/PPP3QP/1K3RR1 w - -

   +---+---+---+---+---+---+---+---+
8  | *R|   |   | *Q| *R| *B|   | *K|
   +---+---+---+---+---+---+---+---+
7  |   | *P|   | *B|   |   | *P|   |
   +---+---+---+---+---+---+---+---+
6  | *P|   |   | *P| *P| *N|   | *P|
   +---+---+---+---+---+---+---+---+
5  |   |   |   |   |   |   |   |   |
   +---+---+---+---+---+---+---+---+
4  |   |   |   | N | P |   |   |   |
   +---+---+---+---+---+---+---+---+
3  |   | B | N |   |   |   |   |   |
   +---+---+---+---+---+---+---+---+
2  | P | P | P |   |   |   | Q | P |
   +---+---+---+---+---+---+---+---+
1  |   | K |   |   |   | R | R |   |
   +---+---+---+---+---+---+---+---+
     a   b   c   d   e   f   g   h

Spassky - Petrossian, w ch (19), Moscow 1969

21. e5!! dxe5 22. Ne4! Nh5 23. Qg6!?
	23. Qg4!! Nf4 24. Nf3 Qc7 25. Nh4 +-
23. ...exd4? 24. Ng5 +-

Took 4 hours to find e5!.  1. e5! dxe5 2. Ne4 Nh5 3. Qg6.  More than a
piece up.  The minimum time control needed to play it is around 2 hours/move.
--------------------------------------------------------------------------------

So much for Q5T's handling of position 5. It had more trouble with Nolot
position No. 2 but found the solution 1.Rc1xc5 after 36 minutes on the Celeron
500MHz again, Q5T in Century 2.0 that is, since the Century 3.0 versions of Q5T
I tried needed at least 14 plies minimum which was a surprise! I broke of their
search as they were running with 40 Mb hash and made the computer very slow,
haven't got a solution yet. Normal Century 3.0 solved position two in the
fifteenthy ply. I will do some more testing of that position #2 later.

Assuming Q5T isn't seeing nonsense variations I couldn't help thinking yesterday
that a "Drei Hirn" or multibrain approach as Stefan Meyer-Kahlen has been
working on might be still be interesting maybe, Bruce? Especially with a
multi-processor system like your Quad Xeon, or for Rober Hyatt maybe with one of
his Beowulf clusters? It shouldn't be infeasible to make a version of one's
program that has different strengths and weaknesses in some types of positions
compared to your original program. The main problem of course lies in the
adjudication code needed, the "arbiter" program. It needs enough knowledge to
decide which of the two programs understands a given position better. And if you
have that knowledge it should also be possible to write a third program which
combines mainly the strengths of the two programs and thus be more efficient
than the original set-up. The problem there is I think that there are so many
different types of positions. So writing that third more efficient program, not
with the Drei Hirn approach, would be a very hard thing to do. I believe you
stated so yourself that for every program it is probably true that it
"understands" some positions well but in other types of positions it has
problems. Hence also the importance of having opening lines in your book that
are suited to the program and avoid its bigger weaknesses. A human player will
also based upon the (tactical) lines he sees go look for different (positional)
motifs in a position, change the way he looks at a position with the feedback
from those lines. I read in Jeremiah's post that Deep Thought 2 used more time
for a position if the evaluations (as seen from the different iterations
probably?) were unstable, that seems to be a similar idea. If you have two very
different evaluations of a position it basically means you should take a better
look at it, provided of course it is part of an important line. Statistically
with two measurements you automatically have some measure of its accuracy which
you may not have have with just one measurement. You can now compute something
like a standard deviation of the evaluation better.

I thought a relatively simple implementation could start with choosing a
different "personality" as program 2. That way all leaf-evaluations can have
something of the form of a1X+b1Y+c1Z+...; a2X+b2Y+c2Z+...; the XYZ parts are the
same for all personalities and can be stored in a communal hashtable, the aNbNcN
are different but are just integer values. Each personality N needs its own
hashtable with aNX+bNY+cNZ values but if it doesn't find that and another
Personality has looked at the position it can get the corresponding XYZ from
shared memory. A "minor" complication is that an evaluation function isn't a
simple linear equation though. That complicates things.

Personality 2 can do with just a small share of CPU time initially and could
function as a sort of scout, going deep and being more selective than main
Personality 1. It doesn't have to look closely at all moves because clearly bad
moves will be prunable by looking at it with personality 1 anyway so it can go
deep and search for a PV. If Personality 1 finds an entry in hashtable done by 2
it computes its own eval by multiplication of (a1 b1 c1)(X Y Z), if the eval
differs a lot from (a2X b2Y C2Z) it can decide to take a deeper look at it than
normal in the next iteration.


This only is that simple for an entry of a leaf position or something close to
the tip, this is of course a problem because the two personalities differ, so
entries of positions not at the leaves of the chess-tree but closer to the root,
positions that have gone through the alpha-beta process where White as side to
move chooses the highest evaluation and Black subsequently picks the lowest of
those, can not be interchanged by the simple (aN bN cN)(X Y Z) multiplication.
You could still do so if you think the accuracy of the evaluation by the other
personality is good enough for the purpose, the eval is high enough by some
margin for a alpha-beta cut-off for instance.


It is probably best not to have done too much quiescence search already here in
the position where you compare the two evaluations -if you decide the first
evaluation isn't reliable enough for the purpose-, because comparison of the two
evals then decides how much deeper the position will be looked at in this
iteration or the next. As personality 2 already has been there (because there
was a hash entry) a deeper look will hopefully not cost too much because there
likely are already hash entries of deeper branches done by 2. Important is I
think to have some measure of the "standard deviation" of an evalution because
that's what the whole idea of getting these "second opinions" is about.

Maybe lots of things would have to be done differently because of alpha-beta
considerations etc. that I don't understand very well as you can see, but maybe
something like this could work? I basically thought this up last night so maybe
the whole concept above would have to be done differently. Well that would be
just the first stages of the idea, Shredder's author already spent many years at
similar things so I'm sure there is much to be found out here, at least I would
think so?

  Eelco



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.