Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: about using killers in Rebel and about programming

Author: Uri Blass

Date: 17:32:28 12/31/02

Go up one level in this thread


On December 31, 2002 at 19:50:43, Robert Hyatt wrote:

>On December 31, 2002 at 17:49:52, Uri Blass wrote:
>
>>From Ed programmer stuff
>>
>>Killer-One [current ply]      110
>>Killer-One [current ply-2]    108
>>Killer-Two [current ply]      106
>>Killer-Two [current ply-2]    104
>>
>>I until today used only
>>
>>Killer-One [current ply]
>>Killer-Two [current ply]
>>
>>I am interested to know if using 4 killers is a new idea or maybe this idea is
>>known to be used by other programs.
>
>It was known in 1975.  Chess 4.0 used this.  You can find it mentioned in
>the chess 4.7 chapter of "Chess Skill in Man and Machine."
>
>We did that in Cray Blitz, but we also did more killers, going back to the
>root in fact...
>
>
>
>>
>>I did try part of the idea that Ed suggested without clear results.
>>
>>I changed the order of moves in movei to
>>
>>Killer-One [current ply]
>>Killer-One [current ply-2]
>>Killer-Two [current ply]
>>
>>instead of
>>
>>Killer-One [current ply]
>>Killer-Two [current ply]
>>
>>I found that it is better only in part of the cases and have not clear results
>>if it is better or worse than previous order but I had a bug in the
>>implementation and I checked killer[ply-2] even in cases when ply-2<0.
>>
>>It is surprising that the program did not crush and even performed better in
>>part of the cases.
>>
>>I still do not use check bound software.
>>I asked in a previous discussion about checking bounds but I solved the
>>problem that caused me to ask about it and I also read a claim that if a
>>varaible is out of bound the program should crush.
>>
>>I also looked for a software that will help me under visual C++ but after I
>>asked to get it for free evaluation and I only got an email that suggest me to
>>contact them by fax or telephone I did not respond(I responded by email but my
>>email was blocked for some reason and I decided that the subject is probably not
>>very important).
>>
>>I think now that it may be important because a chess program may even play well
>>inspite of the fact that it calls killer[-1] so it is possible that I have more
>>mistakes like that.
>>
>
>That probably won't hurt a thing.  That move probably would not pass your
>legality check, so even a garbage move would just waste a tiny bit of time
>as you notice it is not legal in the current position.

Yes but I can still imagine problems.

1)If I am unlucky a garbage move may be legal so it can be counterproductive.

2)I thought that garbage may do something worse than giving a random
number.
I thought that if my program try to look at some place that does not exist the
program may crush and not give me a random number or may change another array.

I also cared not to have -1
 A[x]=1; and not
if (x>=0)
A[x]=1;

If you are right then it means that there are cases when I can save time by
doing something like

A[x]=1; instead of
if (x>=0)
A[x]=1;

The point is that if I understand correctly then I understand from your post
that a[x]=1 when x=-1 can not change relevant information.

If I assume that the condition x>=0 happen in most of the cases then it seems
clear that A[x]=1 is faster.

Uri



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.