Author: Uri Blass
Date: 10:04:37 11/11/02
Go up one level in this thread
On November 11, 2002 at 12:10:55, Andreas Stabel 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 >> >> >>Uri > >The math here is wrong - it should be: >0.6*0.9 + 0.4*0.1*0.3 = 0.54 + 0.012 = 0.0552 The math is correct You cannot change my calculation and decide that my math is wrong. I think that you assume that I assume that the program always use 90% of the time for the move that it expects. I did not say it. There are 2 kind of moves: Moves type A:Moves that the program has the move that is going to be played in the pv. Moves type B:Moves that the program does not have the move in the pv. I assume that moves type A are 60% of the moves. I said that it is possible that the program use in average 90% of the time for the played move in moves type A and 30% of the time for the played move in moves type B. The point is that moves type A are not random moves and most of them are forced positionally or tactically so the program can see after a short search that one move is better than the other moves so it is using 90% of the time for the expected move. The moves type B are not forced moves and in most cases there are 2 or 3 moves that have the same score or almost the same score so the program can use 30% of it's time for every one of these moves. 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.