Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: one vote for STAND QUIET from Mridul.

Author: Mridul Muralidharan

Date: 02:42:54 09/01/03

Go up one level in this thread


Hi Scott,

  A looong wweekend just went by , hence the delay in my response :)

My comments inline.

Regards
Mridul

<snip>
>>You can easily comeup with a easy set of positions where a check will be pretty
>>stupid to extend after static board analysis (without any search ofcourse !).
>>
>>Examples :
>>
>>1) Simple case :
>>[d] r1bqkb1r/pppp1ppp/2n2n2/4p3/3PP3/P4N2/1PP2PPP/RNBQKB1R b KQkq - 0 4
>>
>>Trivial to see that Bb4+ is to be not extended.
>
>When i first saw your idea I was very excited. I tried that exact case, a check
>the does not capture, and can be captured by a pawn (I didnt look if the pawn is
>pinned against the king or other piece), and chompster's performance on WAC
>dropped significantly.
>
>I think chompster has so much futility pruning, and search reductions code, that
>if we extended something stupid, it gets pruned fairly quickly or reduced (the
>opposite of extension).
>

Mess has no form of reductions and pruning (other than double null move), I have
not found them useful for mess and indeed found them to be unsound.
Futility : what works in qsearch cannot be applied to main search ;) But I dont
want people flaming me on this - this is a purely personal view that I have
constructed after my testing and analysis - to each his own ! :)

Moving furthur , the cases that I illustrated are the basic ones , you can come
up with more.
Actually mess handles many more patterns which require special handling - like
pinned on king , revealed / multiple checks , move that even though check
opponent (hence forcing a response) are also leaving our own side in danger ,
etc.

The last case is tricky - it could be that, such a move would lead to a better
position or a worse position ! such is the beauty of chess. Eg : You sac a piece
with a check to save a higher valued hung and otherwise lost piece , etc !
Beauty is , with a little trick with attacktables (my attacktables differ from
Ed Shroeder's) you can do all this statically !
Also I handle non-cap/non-promotion checks differently as compared to caps and
promotions.

So this path of "selective extensions" (as i call it ;) ) is not a easy one -
and has taken me more than 4 months to develop ! so it cant be done in a day or
two :)
It is not the implementation that matters - but the cases you handle , etc.

Easy way on how to understand this better ?
Just print out the board when you are going to extend a check and notice the
checking move.
You will appalled at the ridiculously high number of stupid moves that get
extended !
The number of checks that come in a search tree are very high in the first place
(in a typical middle game position) - add to that the fact that you are
extending all of them !!

I have just shown a basic view of how mess works.
This sort of selective extensions is just a byproduct of the move ordering code.
For getting this extension reduction thing working , you will have to identify
many more cases - and if you prune in qsearch based on this , then please make
sure that you are not missing some important case.
Also , IF you are missing some important case - your ordering and selective
extension will suffer - so plese do bear that in mind.

In mess , I try out checking moves in qsearch. Also I try out , sometimes , even
loosing captures - especially if you are sure that the opponent does not have a
good move to respond with (Eg : The defender of the piece that we captured is
pinned , multiple/revealed check capture , etc) , then there is no harm in
trying this move !
Note : I dont try out funny stuff like lazy_eval_after_move + margin < alpha
then prune , stuff. NOR do I use lazy eval (have a eval cache though - since
mess has a bit heavy eval ... )

All the best on this , in case you try this path out !



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.