Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: questions about book learning

Author: Bob Durrett

Date: 09:30:44 01/05/04

Go up one level in this thread


On January 04, 2004 at 22:07:16, Mridul Muralidharan wrote:

>On January 03, 2004 at 22:42:00, Bob Durrett wrote:
>
><snip>
>>I'll give my ideas later if someone wants my input, but I'm not a chess
>>programmer.
>>
>>Bob D.
>
>Hi,
>
>  Would like to hear them if it is not too much of a bother ....
>
>Mridul

Now retired ten years, my career was in engineering and most of my formal
education in Electrical Engineering [and graduate math/statistics].  One of the
main interests of electrical engineering is control theory.  I see some of the
principles of control theory being applicable to this "book learning" topic.

We are talking about a "system" which changes slowly over time in response to
inputs.  Stability is of particular concern.

If I understood Bob Hyatt's "thumbnail" description of how he implements "book
learning" into Crafty, he only changes the probabilities associated with book
moves but does not use "book learning" to introduce new moves in real time into
Crafty's book.  Instead, he changes the moves in his book manually, "off-line."
Hyatt's method looks very good and has worked well for him and so it is a
"proven" method.  That does not mean that there are no other good ways to do
"book learning."

There are several objectives of "book learning" and these objectives drive the
design.

Sadly, the primary objective [not just for Hyatt] is to make the chess-playing
program stronger and achieve higher ratings in SSDF [and other] computer
tournaments.  There also seems to be a motivation to increase the performance
rating on internet servers such as ICC.  The deficiencies of the engine must be
hidden as best as can be done by using openings which do that.  Better would be
to eliminate the deficiencies!

Another important objective is diversity.  The desire for diversity is not
entirely for the benefit of human users, however.  The main purpose for using
diversity seems to be to avoid someone "booking" the chess-playing program and
finding a line which always wins against it.  Similarly, the use of "book
learning" may not be for the benefit of human users either.  In addition to
improving the strength of the chess-playing program, it also "snips out" opening
lines which might be used repeatedly by an opponent to whip the chess-playing
program.  In fact, this "snipping out" seems to be the essence of Crafty's "book
learning."   [ Snip, snip snip! : ) ]

To me, the ultimate book learning scheme would not rely solely on human inputs
for growth of the book.  Before rejecting a line ["snipping it out"], it might
be good if the engine could try some of it's own "opening ideas."

On the other hand, there is much new innovation in openings coming from the
community of top human [and other?] chessplayers.  It would be a mistake to not
introduce those new ideas into the book as they became available.  Since the
chess-playing program would have no way of "knowing" about such new ideas, it
must rely on human input.

One of the problems introduced by opening diversity is that some of the lines
may put the chess-playing program at a disadvantage.  In other words, the
chess-playing program playing Black might find itself in a +/= position as soon
as the opening book is exited.  If the chess-playing program loses such games,
who's fault is it?  The chess-playing program should not be blamed for problems
introduced by humans.  Nevertheless, the chosen book learning scheme should make
the best of this bad situation.  One could imagine a continual "snipping away"
at the book until only a few or even one line remained!  : )

The "snipping out" of a line need not be done suddenly.  It could, instead, be
done gradually and that is probably the usual practice.  This would be
accomplished by gradual adjustment of the probability assignments of the various
moves in the book.  Adjustments of these pre-set probabilities might be larger
for moves close to the leaf nodes and smaller as one goes back in the line
approaching the initial position of the game.  The amount of change of the
values might have a lot to do with the long-term stability of the book
modification process.

Perhaps games won by the chess-playing engine might also be used to modify the
opening book, or to impact the pre-set probabilities of occurrence associated
with each move in the opening book.  The danger in doing this would be that wins
against beginners might be given more credit than they deserve.  Using "snipping
out" only avoids this problem.

As a user, I am not so interested in seeing the chess-playing programs get a big
ego.  Instead, I want user benefits.  [Maybe this makes me greedy or
inconsiderate?]

Changing the objectives of "book learning" might result in changes to the way it
would be implemented in the chess-playing program.

As a user, I might be interested in forcing the chess-playing program to use my
own personal opening repertoire.  In that case, my objective for "book learning"
would be to find improvements in my own "opening book" [i.e. repertoire].  I
would use the engine, playing many automated games on internet servers, to
improve my own opening repertoire.  This would be an ongoing process in which
changes to the book would come both from the games and from my own inputs [based
on my own games and my study of GM games].

I realize that the above neither provides code nor an algorithm for book
learning in a chess-playing engine.  Like I said, I am not a chess programmer.

Bob D.



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.