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.