Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: To Dr. Hyatt (bug in Crafty?)

Author: Sergei S. Markoff

Date: 12:12:06 10/17/02

Go up one level in this thread


Hello Robert!

================
>[block 1]
1.1 >wfile > bfile+1 if it is btm
1.2 >wfile+1 > bfile+1 if it is wtm
>>    if (wfile+wtm > bfile+1) {
>>      if (wfile < FirstOne8Bit(tree->pawn_score.allb))
>>        pscore+=WON_KP_ENDING;
>>    }
[skip]
>[block 3]
3.1 >bfile > wfile+1 if it is btm
3.2 >bfile > wfile if it is wtm
>Note that the test above is the same as the test in block 1 above.

>>    if (bfile > wfile+1-wtm) { // must be "(bfile > wfile+1-!wtm)" ??
>>      if (bfile < FirstOne8Bit(tree->pawn_score.allw))
>>        pscore+=-WON_KP_ENDING;
>>    }
[skip]
=======================

> Note that the two inequalities:

OK, Robert, mathematically that's all right, no questions.
But I see another problem: what this blocks means logically?
Logically your code means that 1.1 and 3.1 works both when btm.
But I think that in first case (1.1) it must be when btm, and in the
second case (3.1) it must be when _wtm_. It's because of wtm means
that white has one ply in reserve and btm means that black has
one ply in reserve. "Block1" goal is finding the won ending for the
white, "block2" goal is finding the won ending for the black. The first
condition is "(_this_ side king file must be > _other_ side
king file if _this_ side to move) or (_this_ side king file must be >
_other_ side king file +1 if _other_ side to move). But in your
code "this" side in both blocks 1 and 2 is _black_. Why?

In SmarThink I have a simple debug mechanism: function MirrorPosition().
When debugging I switch off all asymmetrical factors and try to evaluate
both current position (when searching) and mirrored position (the example of
mirroring: source pos - white: a2,Ka1; black: Nh8,Kh7; wtm; dest pos -
white: Nh1,Kh2; black: a7,Ka8; btm;). The evaluations must be
exactly equal. If no - I have the symmetry error. The part of Crafty code
that is showed before seems to be asymmetrical...

Or I'm wrong? Sorry for wasting your time and my bad english...

>>P.S. Why Crafty is still not using (ext-d) futility pruning / razoring?

>I didn't like them the last time I tried them.  I am trying to find time to
>evaluate code that was recently sent to me, but time is not easy
>to come by right now.

Aha...
The fact that fp/razoring is generally bad in several endgames when
positional score can be large (for example: pawn endings). In SmarThink
I have dynamical fp/razoring bounds which depends of material on board.
I'm also using additional pruning techniques. But the large problem
for the pruning is trajectory-cutting effect. It's also can be caused
by the null-move pruning. If the piece must do a long way to the goal,
this way can be "cutted" by pruning. There are several positions not
only in endgames in which this effect does his evil job.
And the last sentence about pruning. I saw that Ruffian plays very
well in endgames. I think that probably one reason of that is the
successful solution of "trajectory-cutting" problem.

>>P.P.S. I'm not supports your optimism about new extension limitation scheme, my
>>test shows that old scheme is better... But I may be wrong.

>It isn't clear to me yet, but I like the more consistent time between each
>successive iteration, all else being equal. I'm trying to slow down
>the extensions, not kick them into high gear, for real games rather than
>test p[ositions...

Aha. You're right. Using most of tactical testsets for determining
the real strenght of engine is a bad idea. For example, sorry for offtopic,
I found that singular extensions in SmarThink isn't important in testsets.
But version with this extensions is more successful against other engines
in sparring. Why? I think that it's because of singular extensions is a
good compensation for not using ONEREP_EXTENSION and SmarThink non-usual
pruning methods...

Sincerelly yours,
Sergei

P.S. Oh, I'm forget. About ChangeSide. It is interesting. I will test
it on several compilers.



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.