Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Shredder wins in Graz after controversy

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.