Author: Will Singleton
Date: 15:30:08 12/07/98
I have an issue I've been thinking about for awhile, appreciate any comment. In order to play reasonable moves, I have special scoring functions that apply only to the ply 1 move. They include a queen-move when not developed penalty, castling bonus, kside pawn move penalty, development bonus, king move after castle penalty, and a couple more. These scores are set at the time of the ply 1 move, and added to the evaluation score for all ensuing ply. Now I have a theory about this, which is that this is a bad thing. I think it can lead to inconsistencies in scoring, and also result in a bigger search tree. For example, the hash table will contain a certain score for a position, which will differ from that same position reached thru transposing the moves at ply 1 and 3. While the stored hash move may be good, the score is not good as a valid or as a limit score. Another example: let's say I want to inhibit White from moving his castled kside pawn at g2. The ply 1 score penalty will handle this, but ply 3 might like g4. That will cause the ply1 move to be suspect, because it relies on a bogus ply 3 move. So I have convinced myself that this ply 1 scoring method is wrong, and I want to replace it. The possibilities are 1) use a piece-square table to inhibit/promote moves, and 2) keep ply 1 out of the search. Method 1 would seem to suffer from the familiar problem of getting the program to understand that it must play a certain move (like castling) *now*, and not put it off until ply 3. Method 2 would involve scoring each ply 1 move, then doing the search starting from ply 2, and adding the ply 1 score to the score returned from the search. That would seem to avoid the hash-table problem, because the ply 1 scores would never be stored. But I don't know, seems like there are still problems with this. Comments? Will
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.