Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Shredder wins in Graz after controversy

Author: Robert Hyatt

Date: 12:18:06 12/10/03

Go up one level in this thread


On December 10, 2003 at 13:41:06, Sandro Necchi wrote:

>On December 09, 2003 at 19:49:40, Robert Hyatt wrote:
>
>>On December 09, 2003 at 16:45:37, Sandro Necchi wrote:
>>
>>>On December 09, 2003 at 15:14:00, Frank Phillips wrote:
>>>
>>>>On December 09, 2003 at 14:45:25, Gian-Carlo Pascutto wrote:
>>>>
>>>>>On December 09, 2003 at 10:16:51, Frank Phillips wrote:
>>>>>
>>>>>>This is too subtle for me.  It is an event between machines with the operator
>>>>>>acting as a go between (a mistake in my view).  The machine said draw, >therefore the operator must claim the draw.  As far as I can see it just
>>>>>>another 'move' indicated by the machine and the operator has no right to move
>>>>>>for the machine.
>>>>>
>>>>>By the same reasoning, the machine claimed the draw incorrectly, so
>>>>>the operator has no right to claim the draw correctly, so he had no choice
>>>>>but to play on (or resign).
>>>>>
>>>>>QED
>>>>>
>>>>>--
>>>>>GCP
>>>>
>>>>I do not understand what you are saying.
>>>>
>>>>My point is based on the following:
>>>>
>>>>1.The contest was between machines.
>>>
>>>No, between chess engines.
>>
>>Please show me that distinction in the ICGA tournament rules.  It is a
>>game between two computers playing chess.  Nothing more, nothing less.
>>Further arguments are simply obfuscation.
>
>This is your opinion. If the TD thinks otherwise there should be a reason.

I agree.  But there _was_ no reason.  In fact, this did not enter into the
TD's decision making, according to people present.  So it is a red herring
that is just clouding the issue unnecessarily...


>
>>
>>>
>>>>2.The machine in question was the entity that was the engine plus the chessbase
>>>>GUI.
>>>
>>>OK, but the engine was playing, not the chess GUI.
>>>
>>>>3.It would have been better if the machines played without human interference,
>>>>but failing this the operator should not have been able to influenece the
>>>>result.
>>>
>>>This was allowed as the operator should have been the one to ask the TD to be
>>>allowed to resign...see Darsen post which is complete...
>>
>>Operators should not resign.  Programs should resign.  Then there is no
>>ambiguity whatsoever.  But in this case, the program did its part.  It
>>popped up a dialog box that had to be dismissed before the game could
>>continue.  The program can hardly call the TD over _itself_.
>
>OK, here we agree and it shoud state "I resign".

Mine does.  It also says "I offer a draw".  And if you offer my program a
draw, I make a note, do my normal search on the move you just entered, and
if the resulting score suggests that a draw is in my best interest, I accept
before I make a move.  All according to the rules of chess.

However, I also have code that says that "this is a draw due to 3-fold
repetition", "this is a draw due to the 50 move rule" and "this is a draw
due to insufficient material to force checkmate."

_nowhere_ in those do you see "I claim ..."  I don't believe a computer
can "claim" anything, in fact.  It can just state obvious conditions.

>
>However since the programmer can fix the value for the program to accept a draw
>if this is set a -50 the score evaluation of 0.00 will be ignored by the chess
>engine and the program would not ask for a draw even if able to do it.
>Do you agree on this?

No I don't.  The score is used by the engine to select the best move.  If
the best move leads to a -50, the GUI doesn't care.  All the GUI cares about
is "hey, this repeats the position for a third time, it is therefore a draw."




>So, to claim that a 3-fold repetion is automatically a draw is your
>interpretation of the rules, not the rule.

I have never said it is "automatically a draw".  I said "if the program
says it is a 3-fold repetition, and that is proven to be correct, then it
is a draw."  There is a _great_ gulf between what I said and what you are
claiming I said.




>
>If you state that we were lucky we won (a won game) simply because the opponent
>program did not ask for the draw, I agree, but no more than that.

I state that you won the tournament because (a) your opponent violated clearly
written rules, by not doing what the program said to do;  (b) the TD let that
violation stand because he didn't take the time to fully understand what was
going on at the time;  (c) after he found out his ruling was _really_ wrong,
he came up with lame excuses as to why it is still ok to let the ruling stand.



>
>Also you must agree with me that the aim of the Championship is to show (if
>possible) which program is the strongest and to me this was clear after the
>defeat against Fritz...this is why I was sure we would have won.

That's is _not_ the purpose of such a tournament.  Tournaments _never_
show "which program is strongest".  They show "which program played the best
chess for N rounds."  In that regard, Shredder did not.  It had a major
bug that should have turned a win into a draw.  I hardly call that "the
best program there based on tournament performance."  Yes, I think Shredder
might be the most "skillful program playing there".  But that does not
excuse this.  Otherwise why not just play 8 games each and let a committee
compare the play to see which seems to be strongest, with no regard to who
actually wins or loses any games?






>
>I do not have the crystal ball and my judgement was purely based on looking the
>programs play and their games, so the bugs were not considered...

And that's your mistake.  Bugs affect the game.  I have lost several games
due to bugs.  The program with the fewest bugs generally wins such short
events.  That would appear to be Fritz, as it didn't make such silly mistakes
during its games.


>
>>
>>>
>>>>4.The machine claimed a draw (ie its 'move' was draw).
>>>
>>>No, the machine did not claimed a draw. The GUI advised that there was a 3-moves
>>>repetition. This is not a draw claim.
>>
>>Again, nit-picking nit-splitting obfuscation.  When the machine says
>>"my move is Nf3" it is not "claiming that is its move".  It is advising
>>the operator that is what it wants to play.
>
>OK, this is correct, so the same it is true it is advising there is a 3-fold
>repetition and than...this does not mean a draw automatically...this is chess
>and the FIDE rules are clear on this matter.
>If programmers like you are not able to make programs with follows the FIDE
>rules is that my fault?

First, my program _does_ follow FIDE rules, yours does not.  Let's clear that
up right now.  Second, the program said this is a repetition.  There is no
mandated draw claim wording in my FIDE rules of chess.  So "3-fold repetition
detected" is more than enough.  I have run tournaments with international
players, and sometimes we have to resort to their holding up 3 fingers to
signal me they want to claim a 3-fold repetition.  I've never said "no, I don't
accept 3 fingers because the FIDE rule book says you have to .."  Because the
rule book doesn't spell out what has to be said.  It simply spells out the
procedure for claiming such draws.


>I think it is your fault and you should only blame yourself not to have it made
>clear and following the FIDE rules.


Fine, except my program follows the FIDE rules.  Here is the snippet from
main.c (my text-mode UI):

      if (RepetitionDraw(tree)==1) {
        Print(128,"%sI claim a draw by 3-fold repetition after my move.%s\n",
              Reverse(),Normal());
      }
      if (RepetitionDraw(tree)==2) {
        Print(128,"%sI claim a draw by the 50 move rule after my move.%s\n",
              Reverse(),Normal());
      }
      if (Drawn(tree,last_search_value) == 2) {
        Print(128,"%sI claim a draw due to insufficient material after my
move.%s\n",
              Reverse(),Normal());
      }
   ... a but later ...

     I print the actual move returned by the seearch.

It has already been reported that Shredder and other commercial programs
do not do this.  So shouldn't you first fix your own shortcoming with respect
to the rules, before telling me to fix something I have already done correctly?


>If this was made clear there would not have been so many different opionions.
>I guess you would agree on this or not?

No, it is _already_ clear.  You can't claim draws right.  Nobody in the
event apparently claimed draws right.  Yet the draw claims were certainly
accepted.  Did shredder claim any draws in the event?  Were they accepted?
Were they according to the FIDE rules of chess (probably not if there were
any).

However, the _human_ is the interface between the chess computer and the
outside world.  The _human_ knows how to claim a draw correctly.  But this
particular human chose to ignore the programs repetition claim and keep
playing.  That is _not_ acceptable.




>
>>Why this silly semantic game???
>>
>>
>>
>>
>>>Since the programmer can set the draw value in it's program. If the setting is
>>>accept a draw only when the score is -50, than the GUI showing a 3 moves
>>>repetition would be ignored by the engine...so this is not a draw claim, but
>>>only a info display...
>>
>>That is crap.  If the program repeats the position for the third time, it
>>is _clearly_ saying "I want the draw by repetition".  Any other interpretation
>>is simply ridiculous.
>
>Show me the rule that states this.

Shall I give you a lecture on how alpha/beta works, and how the program
chooses between two root moves if one has a score of 0.00 and the other
has a score of 0.01, as opposed to 0.00 and -0.01?  If the program repeats,
it is _not_ by accident.  It is because the search said that repeating to
get the draw score was the best it could do.

I have _no_ idea what you are talking about when you say "rule".  The rule
says that if the engine claims a draw, or makes a move, or asks for the clock
timing, the operator must do whatever it takes to make those "requests" happen
on the real board.  _that_ is the rule that was violated.  The engine said
"I want a draw" the human said "no, we are playing on."


>
>>Unless you buy the idea that when it prints out a move,
>>it is merely suggesting that that move be played...
>>
>>
>>>It is therefore wrong to claim that an info advising a 3 moves repetions is an
>>>automatic draw. The program should state clearly "I am going to play "..." which
>>>will draw the game according to FIDE rule..." this was not done...so the
>>>operator could not force the draw, nor ask for it...
>>
>>Your program doesn't do it right either.  Do you _still_ claim repetition
>>draws???
>>That's what I thought...
>>
>>pot... kettle...
>
>Did I said our program does it correctly?

You certainly imply it.  IE I don't quite see how you can suggest me fixing
mine, if you haven't fixed yours.  BY the way, mine _does_ do it correctly.

>>
>>>
>>>>5.Therefore a draw should have been the result.
>>>
>>>No, see above...
>>>
>>>>
>>>>So I have missed the point as to why the machine claimed the draw incorrectly.
>>>
>>>Did not claim a draw at all!
>>>
>>>>I was working on the premise that the GUI (part of the entered machine) said
>>>>draw (point 4).  Is this wrong?
>>>
>>>Yes, I hope now it is clear.
>>>>
>>>>Frank
>>>
>Sandro



This page took 0.03 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.