Computer Chess Club Archives


Search

Terms

Messages

Subject: Prioritization While "Searching"

Author: Bob Durrett

Date: 09:09:08 02/12/04



Bob Hyatt recently made a comment here which seemed to say that the overriding
purpose of what goes on inside a chess engine is to shape a tree [sort of like a
digital horticulturist with snippers].  If this is right, position evaluation is
no exception.  The implication is that evaluation of positions at internal nodes
is primarily for shaping of the tree.  Even the evaluation of leaf node
positions serve that purpose.  Somewhere in there is the need to determine which
leaf node is "best," but that seems to be more or less a necessary evil
afterthought.  Tree shaping is "the thing."

When an internal node position is being evaluated, the first order of business
seems to be to decide which continuation [i.e. "move"] is to be considered
first.  Then, later, IF the position is revisited, the same choice must be made
again to select the continuation to be considered next.  This process may or may
not be repeated until all the legal moves from that position are exhausted.  The
choice of whether or not to return to that position to examine another move is
something which must be made based on some rational criteria.

The process described above, irrespective of the details, is not unlike what
happens in a strong chessplayer's mind.  The strong chessplayer looks at a
position [in his mind, usually] and goes through a mental process which leads to
consideration of a continuation [i.e. a move from the position being
considered].  He/she then "thinks" about that move and the whirrings inside the
mind continue.

You see books like "Judgement and Planning in Chess" which imply that the
chessplayer first "judges" or evaluates a position and then figures out what
sort of continuation is indicated.

This is where improvement in chess engines is possible, IMHO.  Chess
programmers, in the interest of keeping things simple [for the sake of speed],
have historically programmed their engines to be "dumb."  [Forgive me if this
sounds too harsh.]

Much has been written about the evaluation of positions and the drawing of
inferences as to how to determine the best direction for the game to follow.  In
fact, the amount of knowledge accumulated and written about this is comparable
to the amount of knowledge accumulated over the centuries about opening theory.

[Incidentally, pawn structure alone is insufficient for deciding the best course
for the game to follow.  There is more. Much more.]

So, what does this all have to do with "prioritization" while searching???

The processes whereby choices are made, either by a silicon chessplayer or a
carbon-based chessplayer, are all made based on priorities.  "It's all a matter
of priorities."

The human GM searches based on guidance obtained from evaluation of positions.
He/she is guided by a variety of things, but when it's time to move, the GM will
have looked at a "tree" which was shaped.

Planning is something different.  When a GM looks at a position where
formulation of a plan is possible [not all positions are like that], he is
guided by position evaluation(s) which indicate the general direction the game
should follow.  But a plan is a concrete "do this, do that" sort of thing and
not just a wishy-washy general direction.  A different mental process is
required to produce something concrete.  This is one area where chess engines
may "shoot themselves in the foot" so to speak, since they are forced to think
"dumb."

As noted by Hyatt, the "rubber hits the road" when the software makes a choice
of which move to consider next.  Today, this is NOT a sophisticated process,
IMHO.  Much could be learned from study of the sophisticated mental processes of
GMs.

Human GMs have a more sophisticated way to set priorities.  They are often
guided by memory of similar positions, to be sure, but if that were all there
were to it, GMs would be just as mindless as computers.  Generally, GMs
prioritize their choices based on perceptions they have as to how the game ought
to continue.  They then SEARCH for continuations which achieve those goals.
[They actually "think" about things.  Computers don't.  : ) ]

In my opinion, searching in chess engines is much too unconstrained and
simplistic.  Searching for a continuation which might achieve the indicated
objectives is simply not seen in engines, as evidenced by all the bulletins
posted here at CCC from day one.  Furthurmore, I see no evidence in the CCC
bulletins that chess engines are programmed to draw inferences [from a position
being considered] about the indicated general course the game should follow.  No
code is provided to search for continuations which would achived a predetermined
objective.

Search, numerically evaluate, search, numerically evaluate, forever until it's
time to move.  Surely we can do better than that!

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.