Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: How your programs handle this?

Author: Robert Hyatt

Date: 06:15:19 10/26/98

Go up one level in this thread


On October 26, 1998 at 06:00:32, Jari Huikari wrote:

>A newbie question again...
>
>My program has a fixed maximum thinking time. It uses iterative deepening. And
>when thinkingtime=maximum time, it interrupts the search. If it was e.g.
>interrupted during evaluating the move number 6, it uses the scores from
>previous iteration for moves number 6 or higher, and for those five moves
>calculated deeper than the others, I give a small bonus, because they are
>deeper and better.
>
>Problem is that move ordering comes from alpha-beta search. The score of
>the first move is an exact value for it, and the rest are upper bounds for
>move values.
>
>Now if move number 1 turns to be bad in the deepest search, and time ends
>just when it had been found, the program chooses another move. But it knows
>only the UPPER BOUND of that. And the actual score may be much much worse...
>and it can sometimes happen that program makes a very very ugly move.
>
>How should I handle this?
>
>(I have found one solution, but I think there must be better ways.)
>
>					Jari



I ignore all of this between two distinct searches (ie not between iterations
on the same search which is handled differently).  I sort at the root based on
the static eval, then start searching.  As different moves become best, I sift
them to the top of the ply=1 move list, without disturbing the order of the
others, which means bestmoves collect at the front, the rest follow.

Between iterations I keep the best move at the top, and sort the rest based on
the total nodes searched for each one, which will bring (generally) potential
new best moves to the front since they produce larger trees...




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.