Author: Don Dailey
Date: 23:01:49 05/07/98
Go up one level in this thread
On May 08, 1998 at 00:45:59, Howard Exner wrote: >I've read here and on RGCC that some programs using something called >pre-processing. Could someone explain what this is? > >What programs use pre-processing? >What are the basic pros and cons? Hi Howard, The term pre-processing is normally used in the context of an evaluation function. It's a process where you make most of your evaluation decisions BEFORE the search begins. Typically you determine where each piece should go and essentially build a 64 square table for each piece type of each color on the chess board. You might decide that the c file is open and so you give rooks a big bonus if they can get to the c file. Once you make this decision it doesn't change during the search. So if the c file suddenly gets blocked during the search, the rooks won't know this and still try to get on the c file. Preprocessing has many advantages and disadvatages. Here is a list of them: PRO'S --------- Very fast, evaluation almost free. Trivial to implement. Can put huge amounts of knowledge in chess program with essentially no slowdown. This is because all the real work is done in a fraction of a second before the search begins. Especially good with pawn patterns. (but not pawn structure) CON'S ------- The evaluation is very dependant on the starting position. Deeper searches suffer more than shallow one. Ironically, you can do deeper searches if you do lots of pre-processing. Very difficult to put in dynamic endings where relationships change quickly. Concepts like mobility are covered very inexactly. Pawn structure terms cannot be calculated with any reliability. Makes it problematic whether to use hash table aging because it affects the hash tables in strange ways. The problem is that 2 identical positions can have different scores if they are decendants of different starting positions. --------- There are probably other pro's and con's I didn't think of. Many really good programs use this method, but almost always there is a mixture of pre-processing with more dynamic stuff like pawn structure which might be hashed, or calculated quickly with incremental updating schemes. There is quite a bit of diversity and opinion on this subject. Some swear by it and others shun it completely. I don't use it any more but my older programs did. My feeling is that with ever increasing depth, it becomes more and more troublesome. Imagine a program doing 60 ply searches. The end nodes of the tree will not bear very much resemblence to the initial position where the decisions were made. But since we don't usually look 60 ply deep pre-processing is still a workable method. But I believe you can still write very strong programs that do a substantial amount of pre-processing. Fritz is one example. Genius also does substantial pre-processing. I think probably more programs use this than not. My old program REXCHESS was almost all pre-process with a little dynamic pawn structure mixed in! Pre-processing does not neccessarily have to be pure piece/sq tables. You can make other evaluation decisions in advance too and prepare them for fast execution during the search. - Don
This page took 0.01 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.