Author: Robert Henry Durrett
Date: 14:15:31 08/29/98
A problem discussed occasionally here is: If a chess engine is optimized to play certain types of middlegame positions, then it may play poorly in other types of middlegame positions. This is a constraint on the engine designer. He/she must make sure the engine will perform acceptably well for virtually all possible chess positions. As a result, perhaps, the multi-purpose engine may not play optimally for any given type of position. The theoretical, if not practical, answer is to replicate the available engine [such as Crafty]and optimize each copy for one type of chess position. If the set of all possible chess positions could be partitioned into, say, ten distinct classes, then ten copies of the engine could be used, each being optimized for one class. Then, if the ten engines were to share a single processor, all that would remain to be done would be to create some new software whose purpose would be to quickly evaluate the current position to determine which position type was on the chessboard at that time. It would also then switch control to the appropriate engine. It would also have to detect chances in position type as the game progressed. I do not know if the design of this new software would be trivial or not. So, consider the following: Ten copies of Crafty stored on the hard drive, all tied together with the new software, and each optimized for a different class of positions. Of course, moving large chunks of software from the hard drive into RAM would be very time consuming. So, what would be the solution? Answer, only load those portions which were to be different, and not load an entire Crafty each time the position type changed. [Really, it would not be necessary to completely replicate all of Crafty after all.] Well, Bob, could you do it if you really wanted to??? One might note that further improvements might be obtained if different engines were used, such as several of the top-rated engines. In each case, the engine designer would optimize his engine for the particular class of positions to which that engine would be assigned. Incidentally, I do not seriously propose that this be done. But, . . . COULD it be done, and would doing so net an improvement over existing engines?
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.