Author: Michael Yee
Date: 11:43:43 12/22/03
Go up one level in this thread
On December 22, 2003 at 13:52:47, Bob Durrett wrote: >It is Christmas time and I'm in the Christmas spirit. That makes me a little >giddy, but that's OK. > >I don't know whether or to what extent the following ideas are already in use or >incorporated into amateur and commercial chess programs. > >Please consider the following ideas: > >POSITION EVALUATION: > >Generally, chess programmers try to make their position evaluation software >capable of evaluating all positions reasonably well. That much is obvious. > >But what if a programmer were asked to optimize the position evaluation software >to look at only one kind of position [such as open early middlegame without >queens, for example] and were assured that the software would never have to >evaluate any other kind of position? How would the programmer optimize his >position evaluation code to do best at that kind of position but not care about >other types? Would the position evaluation code differ significantly from >position evaluation code intended for ALL types of positions? I suspect that >the code optimized for that specific type of position might be quite different. > >What if that same programmer, having completed the above task, were asked to >repeat the process but for a very different type of position? Presumably, the >resulting code would differ from the code produced for the first type of >position. > >This process could be repeated until either the programmer quit, or he completed >this task for ALL distinct types of positions. My guess is that the code for >some position types might differ considerably from the code for some other >position types. > >Now, having completed the above tasks, suppose the programmer is asked to >produce code whose purpose were solely to identify the type of position. > >It should be evident by now where all this is leading. The idea is to have each >type of position evaluation code in the engine and then cause the engine to use >the appropriate code for each type of position. > >The programming challenges would include minimization of wasted time so that >essential evaluation computations would take up most of the used time. > >Generally, there are two top-level approaches to doing this. The brute force >but simplest approach would be to have separate blocks of code, one for each >type of position. A more sophisticated approach might be to minimize >duplication but rely on switching or other means of reconfiguring a single [or >few] block of code to optimize for each type of position. The attempt to have a >single block of reconfigurable code might become a nightmare for the programmer >but some sort of compromise leading to a "partially sophisticated" >reconfiguration scheme might be feasible. > >SEARCHING, PRUNING AND SIMILAR: > >Conceivably a similar approach might be used for this. Perhaps there are better >ways to do these things for different types of positions or different types of >game situations. > >Bob D. Hi Bob, Those are good ideas... In fact, many programs already do a toned-down version of what you suggest by having different types of evaluation for at least the opening, middlegame, and endgame. For instance, in early stages of the game, the King is encouraged to stay at the edge or corner and preferably have a pawn shield. But in the endgame, the King is usually encouraged to be centralized. Michael
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.