Author: blass uri
Date: 06:32:27 07/30/99
Go up one level in this thread
On July 30, 1999 at 08:50:42, Robert Hyatt wrote: >On July 30, 1999 at 06:16:34, blass uri wrote: > >> >>On July 29, 1999 at 23:07:51, Robert Hyatt wrote: >> >>>On July 29, 1999 at 21:47:26, Peter McKenzie wrote: >>> >>>>On July 29, 1999 at 20:54:08, Bruce Moreland wrote: >>>> >>>>> >>>>>On July 29, 1999 at 18:58:12, Ian Osgood wrote: >>>>> >>>>>>Do other program authors curtail the search when there is a forced move at the >>>>>>root? >>>>>> >>>>>>How do you detect that a root move may be forced? >>>>>> >>>>>>Could you compare the values of the best and second-best root moves after a >>>>>>search iteration to detect a forced root move? (Granted, the second-best score >>>>>>won't be accurate due to alpha-beta, but I figure that if the difference was >>>>>>greater than a queen's value, you could still conclude that the best move was >>>>>>forced.) >>>>> >>>>>The only sure way to do this is if there is only one legal move. >>>> >>>>Another safe one is if you figure out that all other moves get mated instantly. >>>>I don't do that yet in LambChop, but it doesn't sound too hard. >>> >>> >>>How would you discover this? You get a score for the first move (the one you >>>think is obvious) and all the rest fail low and return alpha. >> >>You can get a score for the 2 best moves and not only for the first move. >>If you use the 2 options usually only for 1/10000 of your time then in most of >>the cases you are 0.01% slower but when the evaluation of the second best move >>is mate against yourself you can be faster. >> >>Uri > > >No you can't. Alpha / beta doesn't do this. If you study programs, the first >move at the root takes well over 50% of the total search time. To get the score >for the second-best move will take this much time _again_ above and beyond what >would normally be taken. > >IE in a normal search, with 30 moves at the root, 3 minutes per move as the >target time, > >move1: 90 seconds >move2-30: 90 seconds > >to get the score for the second-best move: > >move1: 90 seconds >move2: 90 seconds >move3-30 87 seconds > >A _huge_ loss. No you do not have to do it like this you can do move 1 0.01 seconds move 2 0.01 seconds moves 3-30 0.87/90 seconds If the exact evaluation of move 2 is close to the exact evaluation of the best move(more than 90% of the cases) then you can get back to normal search and stop calculating the exact value of second best move so you do not lose time. If you see that the evaluation of move 2 is a mate against yourself you can play and save time. If you see a big difference in the evaluation between the best move and the second move but you do not see a mate evaluation then you can continue to search with the 2 options (assuming you want to be carful because maybe your evaluation is wrong) but to search less time then in regular search(for example I think that if the difference is more than a queen after 1/10 of the regular time it is a good idea to stop to search) 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.