Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How do other programs handle check extensions?

Author: KarinsDad

Date: 08:32:15 05/05/99

Go up one level in this thread


On May 04, 1999 at 23:40:34, Peter McKenzie wrote:

>On May 04, 1999 at 15:59:25, KarinsDad wrote:
>
>>On May 04, 1999 at 15:03:01, Dave Gomboc wrote:
>>
>>>On May 04, 1999 at 11:26:29, KarinsDad wrote:
>>>
>>>>I was wondering how deeply most programs extended the search at a given ply for
>>>>check.
>
>I extend one ply for giving check, always - there is no limit on this.  I never
>extend more than one ply at a given node.

I am doing the opposite. I extend whenever anything interesting is going on
(such as non-quiescence) almost as far as I can go. I then mark the
non-quiescent children nodes as being searched so that they do not get
re-searched (when I get to the next ply).

>
>>>
>>>Maybe a simple fixed multiple of the depth you are searching to is sufficient in
>>>practice.  2 or 3 or something.  You could experiment to optimize it.  There's a
>>>lot of useless checks sometimes, but there's often a correct sequence too.
>>>
>>>>I implemented singular extensions, check extensions, and capture extensions into
>>>>my code last night, but ran into the problem of check extensions potentially
>>>>expanding the extensions into near infinity.
>
>This is unlikely to be check extensions causing this.  It will be check
>extension in combination with single response extention, see below.

Yes, my main problem here is that I have not yet implemented my hash tree, so I
do not yet check repeats. Once I do that, this will get pruned a lot. That was
the first reason for my concern, however, if you have a king out in the middle
of the board and the opponent has a few minor pieces around, I could see where
the king could be checked a lot as well (and the checks may not be worth much).
The expense here would not be great, however, if I can prune it a little also,
that would be nice.

>
>>>
>>>I believe it. :)  Did you implement PV or FH singular extensions (or both)?
>>>Have you experimented with your margin at all yet?
>>
>>I do not understand these terms (if you could please explain them; I haven't
>>been doing this type of stuff for long). There are two types of singular
>>extension that I perform. The first is that of extending a move when it is the
>>only move available (real simple). The other is that of extending a move when
>
>This extension is what will cause your search tree to explode.  While
>technically it is a singular extension, it is usually refered to as the single
>response extension because it is such a special case.  It is ESSENTIAL that you
>limit this extension in some way.

Thanks for the info.

>
>>is significantly better than all of the other choices. The determination of the
>>significance varies in the search. Is this what you mean by margin? In any case,
>
>This is the real singular extension, it is notoriously difficult to implement
>(a) correctly and (b) efficiently.  I believe there are a number of forms of it.
>
>One of the tough things is figuring out if a move is singular (better than all
>the rest).  This typically involves actually searching the move (and all others
>at the node), and then re-searching the best move to a greater depth if it is
>singular.  Is that what you are doing?  That is pretty expensive.

Yes, I am doing this. However, there are a few limits. I only do this for
quiescent nodes (non-quiescent nodes are extended due to check or capture). I
also do not do this if the scores returned by the non-quiescent nodes are not
lower scores as well. And, if I get I cutoff, I do not do this.

[snip]
>
>How is your move ordering?  Expect your nps to drop as your move ordering
>improves.

I keep hearing this type of statement, but I haven't figured out the reason for
it. Could someone tell me the rational behind this?

As to my move ordering, I have a sophisticated one in the design spec, but at
the moment, we have a simple one of pieces most likely to be moved in chess
first, other pieces later. The order is the same throughout the entire game (at
this point of the implementation).

KarinsDad :)



This page took 0.01 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.