Author: Uri Blass
Date: 06:53:36 10/01/03
Go up one level in this thread
On October 01, 2003 at 09:42:09, Tord Romstad wrote:
>On October 01, 2003 at 09:08:28, Sergei S. Markoff wrote:
>
>>Hello!
>>
>>>What is the new quasy-Botvinnik extension if
>>
>>Well. I can inform chess community about one of my quasy-Botvinnik methods.
>>I will be glad to receive your own experiment results and/or other
>>considerations about this method.
>>
>>One of Botvinnik ideas is to determine attack/defence targets for further
>>analysis of attack/defend trajectories. One of the way to find this target is
>>null-move search. If the result of null-move search < beta we can see the move
>>which fail low search bound. This move is a current threat. For example it's a
>>threat of losing some piece.
>>
>>During the further search in this node we can found the defending move. The main
>>idea is to extend the search if the threat moves on ply and ply+2 has the same
>>target (capturing the same piece, promotes the same pawn). I can give you
>>example if you want.
>>
>>It's one of simpliest way to use target info. But I think we can receive more
>>improvement exploiting this idea.
>
>Hello!
>
>I just posted a message almost identical to my current one on the Winboard
>forum, but I guess CCC is a better place to discuss this. Is the pseudo-code
>below a correct implementation of your idea?
>
>int search(int alpha, int beta, int depth) {
> int value, null_value;
> move_t *move;
>
> if(depth <= 0) return qsearch(alpha, beta, depth);
>
> make_null_move();
> null_value = -search(-beta, -alpha, depth-R-1);
> unmake_null_move();
> if(null_value >= beta) return null_value;
> else ThreatMove[Ply] = CurrentMove[Ply+1];
>
> generate_moves();
>
> while(move = pick_move(); move != NULL; move = pick_move()) {
> make_move(move);
> value = -search(-beta, -alpha, depth-1);
> unmake_move(move);
> if(value >= beta) {
> if(target_square(ThreatMove[Ply]) == target_square(ThreatMove[Ply+2]))
> /* Extend and re-search */
> value = -search(-beta, -alpha, depth);
> if(value >= beta) return beta; }}
>
> return alpha; }
>
>Tord
I think that it is not correct implementation.
capturing the same piece does not mean capturing the same square.
Uri
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.