Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Quiescent Pruning.

Author: Anthony Cozzie

Date: 05:27:40 10/07/03

Go up one level in this thread


On October 06, 2003 at 22:24:18, macaroni wrote:

>What are the usualy ways of pruning the quiescent search. I don't use bitboard,
>so that cuts out some stuff, and makes a swap function heaps harder. At the
>moment, I just say a capture is no good if it doesn't increase the score above
>alpha-margin (50 centipawns for position stuff at the moment). Are there any
>other simple, or sort of simple ways?
>Cheers

1. You stepped on a mine here.  Your "I don't use bitboards, because ____" will
start a huge flamewar.  Mark my words.

2. When you say "swap-off" function, I think you mean a capture evaluator.
However, there is no reason you can't write a capture evaluator without
bitboards (actually, there isn't really a good way to do it _with_ bitboards
IMO).  All you do is scan down each ray looking for pieces.  Stop if you hit the
edge or a piece that can't attack.  There will need to be some special logic for
pawns.  This will give you data such as:

White: attacks square with Q, B, P, N
Black: attacks square with R, K, P, P

So, from there you can write another function that guesses how much material the
attacker will win/lose.  Neither of these functions is easy to write actually,
but IMO they are extremely necessary to writing a semi-strong chess program.

Zappa in Q-search simply does not try losing captures.  I personally do not like
futility pruning.  I am in the process of removing all alpha-beta dependent
stuff from Zappa with the exception of null move.  However, in an engine without
significant position evaluation (beancounter) you may be able to get away with
it <shrug>.  I would *definitely* avoid extended futility pruning and razoring
though.

anthony



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