Author: Robert Hyatt
Date: 12:26:37 11/12/02
Go up one level in this thread
On November 12, 2002 at 12:45:56, Uri Blass wrote: >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. Of course. However, this is _very_ rare. > >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 I already do that. Another option I use is that while in book, I find the set of non-book moves for my opponent, do a search on those to pick the best one, and then ponder that, because I know if he plays a book move I have an instant response ready...
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.