Computer Chess Club Archives


Search

Terms

Messages

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

Author: Peter McKenzie

Date: 20:40:34 05/04/99

Go up one level in this thread


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.

>>
>>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.

>>
>>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.

>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.

>I probably need some work here.
>
>KarinsDad :)
>
>>
>>>How many checks do most programs consider is enough when extending?
>>>
>>>Thanks,
>>>
>>>KarinsDad :)
>>>
>>>PS. Will, we realized that our nps is way off. We were compiling the code in
>>>debug mode as opposed to optimized mode. So, our 100 knps went up to 209 knps.

How is your move ordering?  Expect your nps to drop as your move ordering
improves.

>>>Duh!
>>
>>Doh! :)
>>
>>Dave



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.