Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: start your engines ...

Author: Tord Romstad

Date: 10:41:13 03/11/04

Go up one level in this thread


On March 10, 2004 at 12:49:49, Jonathan Kreuzer wrote:

>I'm think I understand you, and indeed not searching very far in winning lines
>sounds like a good idea to me. (I've thought about this and other eval-based
>'pruning', but never implemented any. Actually I'd consider null-move
>eval-dependent pruning, but null-move is all I do.)
>
>However it seems to me like you could do this in some form and still find mates
>very quickly.

I suppose it must be possible, but so far I haven't found it to be worth
the effort.  As long as my engine finds the win, I don't care much about
how soon it is able to announce mate.

>So on fail-high moves, you'd want them to fail high as fast as possible, hence
>dropping extensions, etc. for the winning side.
>
>However for the PV, if a human thinks a move is winning, he/she will probably
>search even deeper along that line. When you've found a mate is when you have no
>worries about a very deep refutation of the winning line. Actually now that I
>think of it, I guess the reason for Gothmogs slowness declaring mate here is,
>though searching the stronger initial move more deeply would find mate sooner,
>it searchs non-mating follow up moves more deeply? I was initially confused by
>the "make sure there isn't a very deep refutation of the (apparently) winning
>line" because in this position using the time to declare mate once the crushing
>move is found is the quickest way to do this, but in other positions it probably
>isn't. So now that I've completely forgotten what either of us were talking
>about, I'm done thinking about search, it's too confusing =)

I am no less confused -- I no longer understand how my search works.  :-)

There is, however, one other factor which probably contributes to making
my engine slow at announcing mates, which I forgot to mention in my
previous post:

When I start iteration n, I assume that the new root score will be within
a window of +- 3 pawns of the root score from iteration n-1.  Many of my
pruning rules depend on the correctness of this assumption.  When it turns
out that the score is outside the window, I have to clear the hash table
and restart iteration n with most of my pruning disabled.  This is very
expensive.  In practice, this isn't such a big problem, because it usually
only happens when the game is won or lost.

>PS. Though I haven't done much of it myself, I do think evaluation-directed
>search (or knowledge-directed search) is the best way to go, and Gothmog is one
>of the more interesting engines out there.

Thanks for the compliments.  Personally I think that knowledge-directed
search has a great theoretical potential, but that it is hard to do right,
and that it might not be the way to go for a relatively weak engine like
mine.  I use this approach mostly because it is what I consider most fun
at the moment.

Tord






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.