Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Shredder5 vs. Eran - Game Draw! How Come??

Author: Bruce Moreland

Date: 13:14:58 03/19/01

Go up one level in this thread


On March 19, 2001 at 14:34:50, Frank Schneider wrote:

>On March 18, 2001 at 18:15:26, Bruce Moreland wrote:

>>This is a bug, in my opinion.
>
>Why do you think so?

The program drew right out of the opening with a weak player.  It's obviously a
bug of some sort.

>>  It is easy to set a program so it won't do this,
>
>how? Make the program believe the opponent if he tries to repeat?

It works just fine if the goal is to draw in the opening.  If that's the
intended effect, I have no answer.

I think it would be fixed if the program wouldn't try to draw in the opening.
It would be possible to fix the problem by understanding that the position was
an opening position and was something that was normal and not that bad.  Unless
of course it was that bad, in which case this is a book bug, which is still a
bug.

A quick fix along these lines would be to make the contempt factor a pretty
large negative number in the opening.

Another more comprehensive fix would be to not score positions played on the
board as draws unless they have been played twice.

I remember hearing about a commercial program, some time ago, that if you played
1. e4 e5 2. Nf3 Nc6 3. Ng1 against it, would play 3. ... Nb8, trying to draw,
because it had an asymmetrical eval that scored most opening positions as
negative from its point of view.  Even two tempi up it thought it was worse.

Other than the obvious fix of the asymmetric eval, a way to fix this problem
would be to simply not recognize that 3. ... Nb8 is a repetition, because it has
only occurred once.

The argument against this fix has always been that the program might miss some
real repetitions, but I think this argument is poor.  If the program is the one
repeating the position unnecessarily (because it doesn't know that the position
has already happened once), then it will have a chance to do better before
allowing a third rep.  If it's the opponent who is try to draw by repeating the
position, to hell with them.  If the program can find something that preserves
play, I say that it should.

My program scores any position that occurs twice along a search branch as a
draw.  It scores any position that occurs twice in the list of played positions,
plus once in a search branch, as a draw.  It does not score a position a draw if
it occurs once in the list of played positions and once in a search branch.
This has always worked fine.  It even has the added benefit of allowing other
operators to think that my program is going to throw away a win by repeating the
position, just because it does it once.

This fix is also useful against humans who mess up.  If a human has a win in a
position, and misses it, if you do draws Stefan's way you may play into the
position and allow them to find the win the second time.  If you do things my
way, you'll never do this.

Example:  I'm at -2.  My opponent makes a reversible move that allows me to make
a reversible move that I score as -1.  They then realize their error and undo
their move.  A lot of programs will undo their own move, in order to get back to
the "drawn" position that is really -2, rather than continuing along the -1
line.  Mine won't.

This is a practical case.  I saw it in one of the first ICC rated games my
program played.

>Frank
>
>P.S.: is Pat still slow?

Pat still has all of that video, but he's kind of a weenie.  His email address
is patw@microsoft.com if you want to kick him a little.

bruce

>>and even if you choose to keep things the way they are, Shredder's scoring
>>shouldn't allow it to call it a draw in a game with that much play left.
>>
>>bruce



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.