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.