Author: Uri Blass
Date: 05:32:39 01/24/02
Go up one level in this thread
On January 24, 2002 at 06:17:30, David Rasmussen wrote: >IID is activated in my program when I am on the PV, and I have no hash move and >other sensible conditions are met. I have found that in many of these cases, >there is actually a hash entry, but it is an upper bound, that is, a fail low. >So there is no best move. In this case, it doesn't help to do IID, because when >I do the recursive call to Search() with depth - 2, I of course get a hash hit >immediately, returning this upper bound, so no more best move information >becomes available. This makes IID a waste of time in these cases. Is there a way >to deal with this, so that IID works, or would it be smart to check as a >condition for IID that there isn't an upper bound in hash that would make the >recursive call return immediately? > >/David 1)I admit that I understand nothing about hashtables in chess programs but I do not understand what is the problem to find a move at reduced depth and ignore previous hash table information if they can give you only a score and not a move. 2)I may be wrong but it seems to me that you simply read Crafty's code and decided to do the same and this is the reason that you use depth-2(crafty is using depth-2 in search.c) I guess that you also use alpha and beta like Crafty. I understand the idea of internal iterative deepening to find a move that is good enough at reduced move but I do not understand why start with good enough and not start with the best move at even reduced depth. I thought that it may be possible to start with search(-infinite,infinite,depth-4) and only later to continue with search(alpha,beta,depth-2) when you start from the best move that you found at depth-4. Note that it is possible that 4 is not big enough and we need bigger number. The reason is the fact that search(-infinite,infinite,depth-4) may find a mate or winning a queen when search(alpha,beta,depth-2) may find the wrong move(a move that is good enough but not winning and search(alpha,beta,depth) may take more time(in the case of mate it is obvious and in the case of winning a lot of material it also seems usually correct to me because of null move pruning) 3)Note that I do not plan to use hash tables in a similiar way that chess programs use them because I want to evaluate sequance of moves and not only one position so I can see if one side make no progress and punish that side in the evaluation. I dislike the fact that programs use hash tables in a similiar way that I did not learn so they cannot detect fortress position or positions when one side gets the initiative(this is a bigger practical problem and programs do not see that a sequence of moves when the program earns positional bonuses again and again is better than a sequence of moves with slightly better score when the program lose positional bonuses again and again) I do not know today exactly how to use hash tables but I do not plan to do something wrong only because it is better than what I do now. 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.