Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What Does the Engine Do When User Sets Maximum Ply Depth?

Author: Robert Hyatt

Date: 11:28:05 01/30/04

Go up one level in this thread


On January 30, 2004 at 13:36:57, Bob Durrett wrote:

>On January 30, 2004 at 13:20:47, Robert Hyatt wrote:
>
>>On January 30, 2004 at 12:05:30, Bob Durrett wrote:
>>
>>>
>>>A friend is playing games against his chess-playing program on his PC and asked
>>>this question.  I do not know the answer.
>>>
>>>Suppose the user sets the ply depth to 5 ply.  There are several things the
>>>engine could do in that case, assuming in the middlegame.
>>>
>>>If sufficient time were available:
>>>
>>>The entire tree could be exhaustively analyzed.
>>
>>I am not sure what that means...
>
>I guess I was not too clear.  Sorry about that.
>
>I envisioned "un-pruning."  In the beginning the engine does not know how much
>time the user will allow.  Perhaps the programmer can decide this, but surely
>the engine must consider the possibility that the user will issue a "move now"
>command.  Hence, I would expect pruning so that the engine would have a move
>available almost immediately.  Then, as more time were made available, the
>engine could go back and consider previously pruned portions of the tree.

Wouldn't help.  Alpha/Beta only prunes stuff that it can _prove_ is not useful
to search.  IE if you went back and did a full minmax search to the same depth,
which would take _much_ longer, you would still get the same best move, best
score, and PV.  That's why alpha/beta is so important...

>
>>
>>>
>>>The position evaluation could be done more extensively/thoroughly.
>>
>>
>>Nor that since the normal Evaluation() stuff is done at appropriate points
>>inside the tree already.  There's no other places where it could be done..
>
>Again, I did not make myself clear.  Sorry again!
>
>My thought was that the programmer will give the position evaluation a limited
>amount of time to do it's work.  This might be accomplished simply by making the
>position evaluation code be "fast."
>
>If more time became available, however, maybe the position evaluations could be
>revisited and a more time-consuming [hence, presumably, better] evaluation be
>done.

I don't know of a program that has two separate evaluations, however.  Some do a
"quick" eval for ordering or pruning decisions, and a complete eval as needed,
but the quick eval is only used to determine if it is worthwhile to do the full
evaluation... or if it would be a waste of time to do so.



>
>>
>>
>>>
>>>Do any engines to the above?  Or, do they just stop prematurely?
>
>
>>>
>>>Bob D.
>>
>>
>>If "prematurely" means "when you said to stop" then I guess the answer is they
>>stop "prematurely".  If you say "5 plies" they do 5 plies and that's all...
>
>
>My choice of the word "prematurely" may have been premature.  : )
>
>The idea was that "haste makes waste" in real life as well as in software.
>Software designed to reach an answer, or result, in a very short time may be
>compromised in some way.  That does not mean that the number of positions
>evaluated be reduced [although that could happen with a "move now" command] but
>rather that position evaluations would have to be done quicker than what would
>be ideal.
>
>Bob D.

I think that all I could do would be to search another ply deeper, but then that
would violate your depth limit...  Alternatively you could eliminate your depth
limit and give it a time limit instead, which lets the program decide how to use
the time.




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.