Author: Matthew Hull
Date: 15:22:46 12/10/03
Go up one level in this thread
On December 10, 2003 at 17:51:26, Robert Hyatt wrote: >On December 10, 2003 at 16:52:47, Matthew Hull wrote: > >>On December 10, 2003 at 15:27:14, Robert Hyatt wrote: >> >>>On December 10, 2003 at 10:25:20, Bob Durrett wrote: >>> >>>>On December 10, 2003 at 10:07:07, Robert Hyatt wrote: >>>> >>>>>On December 10, 2003 at 09:41:18, Bob Durrett wrote: >>>>> >>>>>>On December 09, 2003 at 23:22:12, Robert Hyatt wrote: >>>>>> >>>>>>>On December 09, 2003 at 19:36:05, Bob Durrett wrote: >>>>>>> >>>>>>>>On December 09, 2003 at 13:21:35, Robert Hyatt wrote: >>>>>>>> >>>>>>>>>On December 09, 2003 at 13:02:56, Bob Durrett wrote: >>>>>>>>> >>>>>>>>>>On December 09, 2003 at 11:13:56, martin fierz wrote: >>>>>>>>>> >>>>>>>>>>>On December 09, 2003 at 10:50:23, Sune Fischer wrote: >>>>>>>>>>> >>>>>>>>>>>[snip] >>>>>>>>>>> >>>>>>>>>>>>If the bare engine had been playing he would have had to add a few things the >>>>>>>>>>>>GUI normally takes care of. >>>>>>>>>>>>For UCI engines it is expected that the GUI handles certain (trivial) things. >>>>>>>>>>> >>>>>>>>>>>claiming a draw on 3-fold repetition is *not* a trivial thing. there are >>>>>>>>>>>different possible cases: >>>>>>>>>>> >>>>>>>>>>>1) if your opponent avoids it, he loses >>>>>>>>>>>2) if your opponent avoids it, he wins >>>>>>>>>>> >>>>>>>>>>>in case 2) you should of course claim the draw, because perhaps he will notice >>>>>>>>>>>he could avoid it. in case 1) however, you can safely repeat the moves, and not >>>>>>>>>>>claim the draw. it is *not* mandatory to claim a draw on the 3rd repetition. so >>>>>>>>>>>you should basically not claim it if you might win if your opponent avoids the >>>>>>>>>>>draw. >>>>>>>>>>> >>>>>>>>>>>how do you expect a GUI to make the right decision? imagine the following >>>>>>>>>>>absurdity: jonny is running without GUI and happily repeats moves against >>>>>>>>>>>shredder, and does not claim the draw because the engine doesn't know about it. >>>>>>>>>>>shredder has a bug and allows a 3-fold repetition but will deviate before the >>>>>>>>>>>fourth repetition. now shredders GUI stops shredder from moving, and says "i >>>>>>>>>>>claim a draw with my move XY because of 3fold repetition" - this would have been >>>>>>>>>>>hilarious for everybody except SMK :-) >>>>>>>>>>> >>>>>>>>>>>since 3fold repetition is something you claim or don't claim based on the >>>>>>>>>>>current position, it is clearly something the GUI shouldn't be doing! >>>>>>>>>>> >>>>>>>>>>>cheers >>>>>>>>>>> martin >>>>>>>>>> >>>>>>>>>>THIS suggests the obvious changes which should be made to engines and GUIs ASAP >>>>>>>>>>by all chess programmers. >>>>>>>>>> >>>>>>>>>>Before an engine &/or GUI claims a draw, it should evaluate the position and >>>>>>>>>>determine whether or not it has a strong advantage. >>>>>>>>> >>>>>>>>>The engine already _does_ this. It searches every root move individually >>>>>>>>>and chooses the one that produces the best score. If you get a draw >>>>>>>>>score back, you can safely assume that no other move will give you a >>>>>>>>>"strong advantage" since the score of 0.00 was better than any other move. >>>>>>>>> >>>>>>>>>QED. It chose the drawing move, thinking a draw was the best outcome >>>>>>>>>possible in this particular position. >>>>>>>>> >>>>>>>>> >>>>>>>>>> If it does have a strong >>>>>>>>>>advantage, then claiming a draw would be precluded by the programmer. In other >>>>>>>>>>words, the software would be programmed in advance to make the sensible choice. >>>>>>>>> >>>>>>>>>Which it already does, as I explained. >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>Similarly, the engine/GUI should be programmed to claim a draw by repetition in >>>>>>>>>>cases where repetition can be played and when also the engine evaluates the >>>>>>>>>>position as being a strong disadvantage. >>>>>>>>>> >>>>>>>>> >>>>>>>>>The engine will evaluate the position as 0.00 in the above case. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>>Obviously, humans avoid claiming repetition draws whenever they are winning and >>>>>>>>>>claim repetition draws whenever they can if they are losing otherwise. In >>>>>>>>>>positions perceived to be equal, humans may or may not claim the draw by >>>>>>>>>>repetition depending on other factors such as tournament standing. >>>>>>>>> >>>>>>>>>If you play a move that repeats for the third time. You can claim the >>>>>>>>>draw. Or your opponent can claim the draw immediately when it is his >>>>>>>>>move. Playing a repetition for the 3rd time and wishing your opponent >>>>>>>>>would not notice reminds me of "Grumpy old men". "You can wish in one >>>>>>>>>hand and crap in the other, and see which one fills up first." >>>>>>>>> >>>>>>>>>:) >>>>>>>>> >>>>>>>>>> >>>>>>>>>>Chess computers should be programmed similarly. >>>>>>>>>> >>>>>>>>>>Bob D. >>>>>>>> >>>>>>>>Bob Hyatt: I don't mean to be unkind, but perhaps you should read my bulletin >>>>>>>>again. >>>>>>>> >>>>>>>>Bob D. >>>>>>> >>>>>>>I also don't mean to be unkind, but must respond "why". Do you think I >>>>>>>missed something or misunderstood something? >>>>>>> >>>>>>>This nonsense about playing a 3-repeat move and hoping the opponent won't >>>>>>>see it is totally ridiculous in the context of alpha/beta searching that we >>>>>>>are all using. >>>>>> >>>>>>Another relevant thought: >>>>>> >>>>>>I have seen engines play a move [and display 0.00] which is obviously intended >>>>>>to give the opponent an opportunity to repeat the position a third time. Upon >>>>>>further extensive analysis, I have sometimes found that the engine's doing so >>>>>>was a terrible mistake. Two types of "terrible mistakes" can occur: >>>>>> >>>>>>(a) the engine could have played a much stronger move but didn't, or >>>>>>(b) the opponent engine does not repeat the position a third time but instead >>>>>>plays a much stronger move which could have been prevented. >>>>>> >>>>>>In my view, engines which make these mistakes have "bugs" in them, or simple >>>>>>programming errors. >>>>>> >>>>>>Bob D. >>>>> >>>>> >>>>>Let's define the context precisely here. I have seen what you describe. But >>>>>it is not a bug. Any more than an engine grabbing a pawn that later loses the >>>>>game is a bug. The context is "the engine search space". If this search >>>>>space says "repeating for a 3rd time to get a draw score is the best I can do" >>>>>then that is the best the engine can do, within its search horizon and search >>>>>space. That isn't a "bug". It is a "shortcoming" of insufficient depth or >>>>>knowledge. As a human have you ever played a move that you later discovered >>>>>was bad? Was that a "bug" in your neurons, or just a lack of search or >>>>>understanding? >>>> >>>>Only a computer programmer can define the word "bug." : ) >>>> >>>>Bob D. >>> >>>Actually I believe Grace Hopper originally defined it. :) >>> >>>A moth in a relay. :) >> >>We had a possum get fried in an electrical power breaker box, taking down the >>entire datacenter. Stank horribly, too. > > >We see some of that with squirrels which appear to be pretty stupid. :) They >like to bridge two power lines where they come in to a building, since the bare >metal is exposed and is sometimes less than 24" apart. We can't call that a bug though. If a program has a rodent, then that's a completely different animal.
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.