Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Tree search programs

Author: JW de Kort

Date: 07:06:16 05/25/03

Go up one level in this thread


On May 25, 2003 at 09:54:56, Uri Blass wrote:

>On May 25, 2003 at 09:39:48, JW de Kort wrote:
>
>>On May 25, 2003 at 08:48:31, Uri Blass wrote:
>>
>>>On May 25, 2003 at 07:53:59, JW de Kort wrote:
>>>
>>>>Hi friends,
>>>>
>>>>My chess engine currently has two search related problems.
>>>>
>>>>1) Sometime a e.g. 8 ply search only returns a pv a say 4 or 5 or sometimes even
>>>>only one move. Can this be a result of using the hashtable?
>>>>
>>>>2) The engine searches until a certain amount of time is spend.
>>>
>>>This is a mistake because if there is a fail low it is better to use more time
>>>aqnd there are cases when it is better not to use time for your move(if there is
>>>a single move).
>>>
>>> If the search
>>>>notices that the time has ran out, the search is stopped an beta is returned.
>>>
>>>Why do you return beta?
>>>
>>> I
>>>>think this is the correct thing to do.
>>>
>>>No
>>>It is not.
>>>Your engine should play the best move that it found and not a move that it
>>>considers.
>>>
>>>I see no reason to return beta when you have no idea about the score.
>>>
>>>Uri
>>
>>Thanks Uri for your reply. I will explain.
>>Suppose the engine has reached a debt of 5 ply and then time has run out. The
>>search must be terminated. Alpha bet is a recursive algorithm so something has
>>to be returned because the iteration has to stop. I use beta because to signal
>>that the move is less in value than all the other moves searched so far. I'am
>>not sure that this is the correct procedure, though.
>>
>>How do you go about?
>>
>>Thanks again
>
>I do not understand what you are talking about.
>I remember the best move in the pv and if the pv is not updated the move in the
>pv is played.
>
>Uri

I will explain further. In alpha beta a move is analysed by recursively calling
alpha beta. If we are at ply 6, a value will be returned to ply 5 but then the
original position is not restored because the preceeding moves must also be
taken back. To do this ply 5 has to return a score to ply 4 and ply 4 to ply 3
etc. In my program i do this like this:

if (Time is up)
   return beta

this proces is repeated until every thing is restored to the original position.

Jan Willem




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.