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.