Author: Uri Blass
Date: 05:39:32 01/02/03
Go up one level in this thread
On January 02, 2003 at 08:21:51, Uri Blass wrote: >This trick is from Rebel programming stuff: > >MARGIN = 3.00 // 3 pawns safe-guard value > MARGIN + highest hanging piece value // Queen=900, Rook=500 etc. > MARGIN + 9.00 when own_king_was_in_check_before_make_move > MARGIN + 6.00 when the opponent can promote the next ply > if (SCORE-MARGIN > BETA) -> return TRUE > else return FALSE > >1)Why score-margin>beta? >I think that score+margin<alpha is more logical. > >If the score of the side to move is already bigger than beta I return beta >except special cases(like a case when the king is in check) > >2)What is the maximal value that margin can get? > >Am I right to assume that it can get maximal value of 3+9+9+6=27 if >the side to move gave check in the previous move and the side to move can >promote and the side to move can capture a queen? > >3)Am I right to assume that the only risk here are cases when there is mate or >cases when the evaluation is changed by more than 3 pawns? > >I think that the main risk is cases of mate when there is no check before it. > >I tested static margin of 12 pawns in the gcp test suite and found some >positions that there were positions that were solved one ply later(using your >full formula is possible but in that case I need to do some bigger changes in my >source code). > >The first position is the following position > >[D]1k1r2r1/pp3p1p/B2q1n2/8/3Pb1p1/2Q5/PR3PPP/2B1R1K1 w - - 0 1 > >Movei(with margin=12) found that Bxb7 is winning at depth 8 so it missed Bf4 >that is even better and needed to wait to depth 9. > >Uri I now tested this position with margin=12 or 21 when 21 is used when the king in check in the previous ply and it solved the problem in that position. 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.