Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Chess program improvement project (copy at Winboard::Programming)

Author: Stuart Cracraft

Date: 13:28:19 03/08/06

Go up one level in this thread


On March 07, 2006 at 19:28:44, Dann Corbit wrote:

>On March 07, 2006 at 19:10:19, Stuart Cracraft wrote:
>
>>On March 07, 2006 at 13:58:48, Dann Corbit wrote:
>>
>>>On March 07, 2006 at 04:39:52, Uri Blass wrote:
>>>
>>>>On March 07, 2006 at 03:47:06, Dann Corbit wrote:
>>>>
>>>>>On March 07, 2006 at 03:02:17, Uri Blass wrote:
>>>>>
>>>>>>On March 07, 2006 at 00:46:27, Dann Corbit wrote:
>>>>>>
>>>>>>>On March 07, 2006 at 00:41:55, Dann Corbit wrote:
>>>>>>>
>>>>>>>>On March 07, 2006 at 00:34:48, Stuart Cracraft wrote:
>>>>>>>>
>>>>>>>>>On March 07, 2006 at 00:31:45, Dann Corbit wrote:
>>>>>>>>>
>>>>>>>>>>On March 07, 2006 at 00:27:43, Stuart Cracraft wrote:
>>>>>>>>>>[snip]
>>>>>>>>>>>Very interesting indeed. A clever test.
>>>>>>>>>>>
>>>>>>>>>>>If one's results do not rotate approximately as described
>>>>>>>>>>>for the four positions and you say the evaluation is an
>>>>>>>>>>>issue, what kinds of evaluation issues have you seen that
>>>>>>>>>>>could explain it?!?
>>>>>>>>>>
>>>>>>>>>>The most common thing that I see is something that is good for white being
>>>>>>>>>>counted as positive for black also on the evaluation.  Often, when we are
>>>>>>>>>>writing the eval, we are thinking from the perspective of white. And so if we
>>>>>>>>>>are not very careful, we may invert the sign of some evaluation component and
>>>>>>>>>>count something that is good for white as something that is good for black (or
>>>>>>>>>>vice versa, though the reverse is seen less often for some reason).
>>>>>>>>>>
>>>>>>>>>>There are, of course, many other possible causes besides that.
>>>>>>>>>
>>>>>>>>>A good point. I try to avoid that by always doing things from the
>>>>>>>>>side on move, almost always. There are a few in there however with
>>>>>>>>>respect to white and black specifically, but they are then folded
>>>>>>>>>together with the stm variable and stm^1 which translate to white/black
>>>>>>>>>or black/white depending on who's on move. I could try this: rerun
>>>>>>>>>your rotation test with successively less in the evaluation table
>>>>>>>>>until nothing but material and see what happens.
>>>>>>>>
>>>>>>>>Right.  If you have divided off the eval components, you could binary search
>>>>>>>>until you find the problem component.
>>>>>>>>
>>>>>>>>Now, we do not know for sure that it is an eval sign problem.  However, the fact
>>>>>>>>that the records are similar in pairs makes it very suspicious.
>>>>>>>
>>>>>>>I guess that when you have gotten your eval symmetrical, you will miss less than
>>>>>>>ten problems on WAC.
>>>>>>
>>>>>>I think that you are wrong here.
>>>>>>Stuart may have evaluation bugs but his main problem is the search.
>>>>>
>>>>>I think it likely that it is both.
>>>>>
>>>>>Given:
>>>>>5rk1/2p4p/2p4r/3P4/4p1b1/1Q2NqPp/PP3P1K/R4R2 b - - bm Qg2+; id "-rotXTDa.1";
>>>>>1kr5/p4p2/r4p2/4P3/1b1p4/pPqN2Q1/K1P3PP/2R4R b - - bm Qb2+; id "-rotXTDg.1";
>>>>>r4r2/pp3p1k/1q2nQpP/4P1B1/3p4/2P4R/2P4P/5RK1 w - - bm Qg7+; id "-rotXTDc.8";
>>>>>2r4r/k1p3pp/PpQn2q1/1B1P4/4p3/R4P2/P4P2/1KR5 w - - bm Qb7+; id "-rotXTDe.8";
>>>>>
>>>>>When I changed to material only eval, here is the result:
>>>>>
>>>>>st 5
>>>>>ts
>>>>>position file? [wac.epd] rot.epd
>>>>># of test positions to test? 4
>>>>>maxtime = 500
>>>>>Interrupt current ply and return move at timeout
>>>>>Testsuite: rot.epd 4 positions
>>>>>*** Problem   Solution(s): Qg2+ (bm)
>>>>>[D] 5rk1/2p4p/2p4r/3P4/4p1b1/1Q2NqPp/PP3P1K/R4R2 b - - bm Qg2+
>>>>>*** Problem   Solution(s): Qg2+ (bm)
>>>>>-- ** -- ** -- BR BK **
>>>>>** -- BP -- ** -- ** BP
>>>>>-- ** BP ** -- ** -- BR
>>>>>** -- ** WP ** -- ** --
>>>>>-- ** -- ** BP ** BB **
>>>>>** WQ ** -- WN BQ WP BP
>>>>>WP WP -- ** -- WP -- WK
>>>>>WR -- ** -- ** WR ** --
>>>>>mv 1 stage 0, black to move, computer plays black
>>>>>hash=62305c813f5fad4
>>>>>pawnhash=3da7edf6c1ba87ea
>>>>>0 0 0 0 0 0
>>>>>Alpha=-400 Beta=400 Maxdepth=9999999 MaxTime=500 xboard=1
>>>>>Ply Score Time  Nodes PV
>>>>>1.  40     3 12 c6d5 e3d5
>>>>>1.  900     5 74 f3g2 e3g2
>>>>
>>>>Qg2+ is a sacrifice so it is not logical so if the computer choose it at depth 1
>>>>then it means that there is a serious bug.
>>>
>>>It may find the result by quiesce().
>>>
>>>I think you are probably right about search problems also.
>>>
>>>However, having errant terms in his eval, and having search stability problems,
>>>and yet still solving 3/4 of WAC, I suspect he will make rapid progress once he
>>>irons out some simple details.
>>
>>That is hopeful, but...
>>
>>Unfortunately, these issues have cost me a substantial fraction of
>>my life and I need to move to the next phase in the development but
>>will sit on this issue until I get some sort of reasonable forward
>>movement.
>>
>>While I am willing to pay significant money directly for consultation that
>>produces a significant forward advance, I thought the idea of contributing to
>>the board more palatable since I wouldn't know which volunteer (if any) to pick.
>>Besides it's cheaper.
>>
>>I should recreate Bob's evtest/flip/flop that can be used for any
>>position to check and compare the evaluations of any given EPD suite
>>and then run it on WAC itself. A further version could narrow it down
>>to the function and then the term within the function.
>>
>>That is something that does not require a lot of understanding or new
>>kind of thinking on my part to get to somewhere useful. I'm not tired
>>of thinking, just tired of banging my head against a wall.
>>
>>My goal is simply to get a reasonable tactictian before the next phase
>>which I doubt will be as hard.
>
>The VB program I sent to you by Les Fernandez does exactly that.  You can
>trivially do it also in C.

Thanks.



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.