Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Square-of-the-pawn

Author: Christophe Theron

Date: 11:40:50 01/14/98

Go up one level in this thread


On January 13, 1998 at 20:24:21, Robert Hyatt wrote:

>it was a forward pruning search.  Basically searched roughly 6 moves
>at each ply, to a depth of 5 ply.  There was no capture search after it,
>just a complex (for the time) static evaluation that also used a Static
>Exchange Evaluator to make sure the last move was safe.
>The most interesting parts were the following:
>
>1.  It had about 30,000 lines of code dedicated to analyzing the set of
>legal moves at any ply and pick out the moves that appeared to be
>tactically
>or positionally promising.
>
>2.  It had a "causality analysis" procedure that was invoked at any
>point
>in the search where the score dropped.  Since I found it hard to
>recognize
>I was in trouble and to select moves that would defend against threats
>that
>were hard to see from the "other side" I let my tactical analysis find
>good
>moves, and if it was successful, at the next ply, after searching a
>couple
>of moves and finding that the score was too low, this "causality"
>facility
>could look at the PV and figure out what was going wrong and then select
>moves that had a chance of "fixing" things.
>
>Worked very well, was tactically very dangerous...  but made the typical
>positional mistakes that forward pruning programs do.  Entire program
>was
>over 80,000 lines of code, however.  *very* big, when considering that
>Crafty is under 40,000 lines with a huge number of comments...

Thanks for those informations.

I think it takes time for any programmer to realize that searching
exhaustively can be faster than trying to figure out which moves are
worth extending.

Chess programming is full of counter intuitive things like that. It
takes a lot of time to have a good program ready, because you have to
try as many ideas as you can, most of them being useless. Especially,
when you think you have a great idea you have to try it as soon as
possible. Because most of the time it's not great at all, but it takes
all your attention. So try it and get rid of it quickly, so you can
focus on other ideas! That's how I work.



>>What do you mean by "not even a real quiescence search"?
>
>I searched 5 plies and *quit*.  I did use a static exchange evaluator
>to determine if the tip moves were safe.  This was searching under 100
>nodes per second on a machine that was rated at .7 MIPS.  This program
>finished in a 3-way tie for 2nd at the 1976 ACM computer chess
>tournament,
>but the following year I was "exhaustive"... :)
>
>
>
>>
>>I'm always interested in the history of chess programs, because I have a
>>long history too, and sometimes an old idea turns out to be usable again
>>in a modern context.
>>
>>For example my first program in 1982 was based on a SEE. Later in 1992,
>>I droped the SEE and my program played better. Then in 1994 I used the
>>SEE again and my program was even better. In 1997 I droped the SEE
>>again, and Tiger improved much in the process.
>>
>>Now, I'm considering another interesting way of using a SEE (if I can
>>write a fast enough one), and it may be the heart of the 12th version of
>>Tiger.
>>
>>The SEE is the very first idea I had in 1980 when I tried to write my
>>first chess program. I suppose everybody started with the same idea. A
>>quiescence search, a less obvious idea, is in fact better. But... there
>>are others way to use a SEE, and this old idea is still alive.
>>
>>
>>    Christophe
>
>yep.  I've removed, added, removed and added things many times.  What
>works
>once, might not the next time, but skip a generation and you never know.
>:)

That's why we have a "recycle bin" in Windows (or in MacOs), I suppose
:)


    Christophe



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.