Computer Chess Club Archives




Subject: Re: What approach do you use to handle castling/en passant for repetition?

Author: Robert Hyatt

Date: 14:56:25 02/29/00

Go up one level in this thread

On February 29, 2000 at 11:34:53, Tom Kerrigan wrote:

>On February 28, 2000 at 16:53:45, Robert Hyatt wrote:
>>How about if I tell you that if you compute x=a/b where b=0 you are going
>>to have problems?  Do you need confirmation of the problem?  Or if you are
>I would appreciate it if you didn't trivialize the issue.
>I asked you to back up your argument and you gave me some random numbers. Now
>you are asking me if I need confirmation that divide-by-zero is bad. It's no
>secret that you are being extremely insulting to me.

Tom...  look at _your_ response.  A curt "run some tests and prove I am wrong."
My position is "you run some test and prove you are right."  I already gave one
case where I _know_ not hashing EP status cost me a game.  It was not real easy
to debug, and it was early in the crafty development where it could have been
_anything_.  But cost me it did as I found _exactly_ what went wrong (as I
explained in my post).  Vincent had said something similar happened to him.

But all that aside, it is _intuitive_ that ignoring EP is bad.  Ignoring
castling is not nearly so bad (IMHO) as once you castle, this goes away for
all time, but EP hangs around until all pawns are gone or past each other.
It was discussed in Greenblatt's original paper I believe, as yet a third
reference to its importance.

If you don't want to hash it, that is fine by me.  If you want to pretend it
can't cause a problem, that is also fine by me.  I am reminded of Burton
Wendroff who didn't do underpromotions in his chess engine Lachex _period_.
And at the ACM event in Albuquerque, he lost a game when he announced a mate,
but failed to notice an underpromotion to a knight that led to his getting
mated instead.  He had played thousands of games on ICC without seeing a
problem.  But needless to say, he fixed it after seeing one important loss.

I saw one loss that I caught.  There may have been others.  But any loss is
pointless if it can be fixed, and fixing EP hashing is trivial.

>I don't understand why you would be so aggressive/insulting/defensive (?) unless
>you can't back up your point. Here is a direct quote from you:
>>All you have to do is run with and without EP hashed into your signature to
>>see the problem.  I lost a game early in the crafty development due to this.
>If it's so easy to prove your point ("All you have to do...") then why don't you
>just comment out a few lines of code, run a little test, and post the results?
>I suspect the reason you are being insulting is because it's extremely difficult
>to prove your point with actual data. So Crafty lost 1 game in n thousand due to
>this "bug." That doesn't tell me that it's the severe problem that you imply.

Why do _I_ have to do something to prove a point?  I didn't make the original
claim that it was "OK".  I said it wasn't.  That EP is needed in the hash
signature to avoid errors.  If you want me to construct a position where
knowing/not-knowing about EP makes a big difference, I'll be happy to do
so.  I'm not interested in running some tests that do take time, when I hardly
have time to work on Crafty at present, at all.

I made a statement that knowing about EP is important.  I don't have to test
that hypothesis as I have already been burned by it.  If you don't agree, stick
with your hypothesis, or test it until you prove it or change your mind.  But
don't expect me to do the work for you...

>The reason I want actual data is because my own program does not hash EP
>squares. So far, I have not seen one single program that can be attributed to
>this. I would honestly like to know if I should change my program or if it's a
>waste of my time.

just construct a position where EP is possible, and then search it allowing
EP and then not allowing EP.  And decide if the difference in score is worth
it.  Then count the number of EP captures in your search to see if the number
is large enough to worry you.  One error in a billion nodes can be safely
ignored.  One error in a hundred can't...

>But if you want to tell me that "lightning is bad for computers" or something
>else that's frikking inane, you're welcome to do so.

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