Author: Gerd Isenberg
Date: 13:00:16 10/31/02
Go up one level in this thread
On October 30, 2002 at 16:13:36, Gerd Isenberg wrote: >Position from Shark - IsiChessMMX, Leiden Round 10 > >[D] r4rk1/2n1b1pN/pqb1p1Qp/1p6/P1p3n1/N1P1B3/1PB2PPP/R2R2K1 b - - ; bm Rxf2 > >Even if the position is already won by black, finding the spectacular 24...Rxf2 >seems quite difficult for some engines. Ruffian is clearly the fastest i tried >so far on my 2.1XP+ : > >Ruffian 1.0.0 2 seconds >Shredder5 14 seconds >IsiChessMMX 47 seconds > >May be a bad testposition due to Nxe3 wins too. > >Cheers, >Gerd Hi all, Thanks for all your replies. IsiChess is even better now - 6 seconds at depth 7. A matter of lazy eval threshold - and a design error. I hold a recursive variable MaxPositionalScore, member of CNode, which got initialized at the root and copied from parent to child nodes during the search. If MaterialBalance + MaxPositionalScore is less alpha (together with some other conditions and some depth dependencies), i use lazy eval. If the absolute positional score, determined by some interior node eval, exceeds this value, i used this maximum so far for shallower nodes. But in positions like this, if both kings have some trouble, two relative huge kingsafety penalties compensate each other and gave a relative small positional sum. So unfortunately at the critical leaves no increase of MaxPositionalScore occured in the path and lazy eval got triggered with a minimum threshold of only 2.5 Pawn units, which is obviously to less if you sacrificed a queen. Maybe the whole idea of dynamic lazy eval threshold sucks due to alpha-beta dependency, even if i look whether max(whitePos, blackPos) exceeds MaxPositionalScore. Actually i threw it out and use a rather huge constant instead. Cheers, Gerd
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.