Author: Uri Blass
Date: 09:45:56 11/12/02
Go up one level in this thread
On November 12, 2002 at 10:55:58, Robert Hyatt wrote: >On November 12, 2002 at 01:14:36, Uri Blass wrote: > >>On November 11, 2002 at 21:31:09, Robert Hyatt wrote: >> >>>On November 11, 2002 at 12:04:03, Uri Blass wrote: >>> >>>>On November 11, 2002 at 10:28:33, Robert Hyatt wrote: >>>> >>>>>On November 11, 2002 at 01:10:23, Uri Blass wrote: >>>>> >>>>>>On November 10, 2002 at 23:53:19, Robert Hyatt wrote: >>>>>> >>>>>>>On November 10, 2002 at 22:38:03, Jeremiah Penery wrote: >>>>>>> >>>>>>>>On November 10, 2002 at 21:29:43, Robert Hyatt wrote: >>>>>>>> >>>>>>>>>On November 10, 2002 at 21:15:07, Jim Bumgardner wrote: >>>>>>>>> >>>>>>>>>>Which of these strategies for "think on opponent's time" makes more sense? >>>>>>>>>> >>>>>>>>>>A) To only search the top-move from the principle variation. If >>>>>>>>>>the opponent makes that move, continue searching, otherwise reset and >>>>>>>>>>search again. >>>>>>>>> >>>>>>>>>This is the _only_ way to do it. I've explained this many times, but it >>>>>>>>>is probably time to go it again... >>>>>>>> >>>>>>>>For the general case. But it shouldn't be hard to find situations where it's >>>>>>>>very easy to tell the ponder move is probably wrong. In those cases, it's >>>>>>>>obvious, IMO, that switching to a different ponder move would help. >>>>>>>> >>>>>>>>One possible scenario is when the ponder move keeps failing high - either the >>>>>>>>ponder move is wrong, or you ponder some other move and you'll find the >>>>>>>>fail-highs again anyway if they play the original ponder move. Otherwise, >>>>>>>>you'll have a better chance of pondering on a better move. You could always >>>>>>>>save the result of the first ponder search just in case. >>>>>>> >>>>>>> >>>>>>>That is a good point of course. If you get the fail high _before_ using the >>>>>>>"target time" then you can safely switch to pondering something else, knowing >>>>>>>you will have time to find the "fail high" again, if the opponent makes the >>>>>>>expected move. >>>>>>> >>>>>>>The bad side might be that you don't fail high until you are beyond your target >>>>>>>time, so that if you start pondering something else, you might not be able to >>>>>>>find the fail high for real if the opponent actually makes that move... >>>>>> >>>>>>You assume here that you are going to forget the fail high. >>>>>> >>>>>>You can rememeber the move that you want to play against the expected move in >>>>>>case of fail high and continue to search other moves and when the opponent plays >>>>>>the expected move you can play the move that you remember in 0 seconds. >>>>> >>>>>Yes, although I am trying to adhere to the KISS principle here. The above >>>>>would work well, but it would introduce additional complexity and the >>>>>opportunity for bugs. But it might be worth it too... >>>>> >>>>>> >>>>>>I also believe that the best strategy is not to ponder only on one move but to >>>>>>have a lot of threads(for every legal move of the opponent a different thread) >>>>>>and to give different priority for different moves. >>>>> >>>>>How about some math to show how the above is going to be better than pondering >>>>>one move that is correct over 50% of the time. I don't see any way to improve >>>>>except in special cases such as a terrible fail-high that lets you know your >>>>>opponent probably won't play that move... >>>> >>>>I admit that there is not a big improvement but if you want some math then here >>>>is is: >>>> >>>>What is better? >>>> >>>>Case A:You ponder the expected move 60% of the cases and ponder another move in >>>>40% of the cases >>>> >>>>case B:In the same 60% of the cases you use 90% of the time for the expected >>>>move. >>>>In the rest of the 40% of the cases you use 30% of the time for the move that is >>>>going to be played. >>>> >>>>0.6*0.9+0.4*0.3=0.66>0.6 >>>> >>> >>>You are making assumptions that are unsound. >>> >>>I am _certain_ that I ponder the correct move 50% of the time (actually >>>significantly better than that, but 50% will do for now). >>> >>>I am _also_ certain that I can't be sure that in your case B that I can use >>>30% of the time for the move that is going to be played. How can I know that >>>until it is played? I can't. And if the probability that the best move from >>>the search is right 50% of the time, it is wrong 50% of the time. How are >>>you going to be so accurate that you can get _the_ move that will be played >>>to ponder in your above approach? >>> >>>I don't see how it is possible. If the "best move" is wrong 50% of the time, >>>then _clearly_ the second_best move will be wrong _more_ than 50% of the time. >>>If we had a way to get the second-best move anyway... >> >> >>If we evaluate every possible move by having a thread for every legal move >>then we have an idea about the second best move. > >How? You will spend so little time on each move the score will be meaningless. >Because to search every move independently means no alpha/beta efficiency >between >the moves. Normally the first move takes 90% of the time and the remaining >moves >take maybe 10%. With this approach _every_ move will take that 90%. > >> >>If we see in the search fail high after the >>best move then it means that the best move >>is no good and it may be better to use more time >>for the second best move based on our evaluation. >> >>I do not plan to try to do something like that in >>the near future and today there are even cases when >>Movei waits and do nothing during pondering >>and I do not plan to fix it in the near future. > >That is trivial to fix. > >(1) probe the hash table for a move to search; > >(2) do a short search for the opponent to find his "best move" and then ponder >using that move. > >That way you will _never_ sit and wait. Possible problems 1)If I get a mate score against the opponent move or get the maximal depth then I sit and wait and the only way to fix it is to start to ponder on another move of the opponent. 2)If I am in book then I need to search for the best move of the opponent that I have no reply for it in book and it is not trivial. 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.