Author: Sune Fischer
Date: 06:51:28 11/17/03
Go up one level in this thread
On November 17, 2003 at 08:25:09, Tord Romstad wrote: >On November 17, 2003 at 07:30:59, Daniel Shawul wrote: > >>you are right,i meant deeper? Do you know any good place sir? >>i have found rebel's programming >>topics(http://members.home.nl/matador/chess840.htm) but you know >>they evaluate each node of the tree,which is quite costy for my program. > >Without evaluating interior nodes, how are you going to do any static >forward pruning or reductions at all? > >>Also I tried to reduce the search depth by 1, if score + margin < alpha >>for depths greater than 3. > >Techniques like this seem to be very common (even in strong programs like >Rebel), but I am becoming more and more convinced that they are >fundamentally unsound. The problem is that you may encounter the same >position somewhere else in the search tree where the value of alpha is >different. When you look up the old search results in the hash table, >you get a search inconsistency. It is quite hard to get this working, although I think there is something sound in the idea. E.g. it makes little sense to try a big sacrifice 1 or 2 plies before qsearch, probably you don't have enough depth left to see the rewards (of a semi-long tactical line). Likewise if you are far below alpha close to the leaf it takes something drastic _right now_ to pull the score up, anything else isn't worth trying. However there must be lots of exceptions one needs to handle here if this is to work properly, for me it just creates instability and lots of expensive fail-high researching. >IMHO, it is a sounder idea to base forward pruning, extension and reduction >decisions on how each move affects the different components of the evaluation >function. As an example, you could consider the following idea: > >In a position where one of the pieces for the side to move is hanging, >reduce all moves which satisfies all of the following criterions: > >1. The move is not a capture. >2. The move is not a check. >3. The move does not defend the hanging piece, nor bring the hanging > piece into safety. >4. The move does not threaten any of the enemy pieces. >5. The move does not increase the pressure on the opponent's king. >6. The move does not increase the passed pawn evaluation (for instance > by advancing a passed pawn, or by supporting an unblocked advanced > passed pawn by a rook or a king). Yes I've also been toying with that (of course!:). I'm not sure you need a full eval to do this though, most often you just need eval of a square/the moved piece rather than eval of the full board. -S. >Tord
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.