Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Internal Iterative Deepening

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.