Author: Robert Hyatt
Date: 06:47:01 01/14/98
Go up one level in this thread
On January 14, 1998 at 09:08:45, Don Dailey wrote: >Hi Stuart, > >I'll bet square of the pawn differs significantly in what it adds to >each program. I'm guessing that if you don't have good passed pawn >heuristics it will make a bigger difference. When I specifically >tested it a previous program it did not show up as being a big deal. >But >most programs probably have bonuses for getting the king closer to >passed pawns (which mine does) and this may tend to serve the same >function (but not nearly as precise.) > >But it's still very important to have this heuristic in my opinion. >You WILL definitely lose and draw games you didn't need to. When it >shows up it really does put your program in a different class and it's >easy to implement the basic algorithm. There are some fine points you >may want to cover later though like recognizing pawn races but you'll >get 90% of the benefit with the simple version of square of pawn. > >I don't remember the test results specifically but I do remember it >was enough to measure with little trouble. This implies at least 20 >rating points but it could be somewhat more. But 20 rating points >is a lot, a couple 20 pointers and you have a noticably better program. > > >- Don > > I view this as a totally different concept. Pushing passed pawns is one thing. This is completely different. This idea comes into play when (say) both sides have passed pawns and perhaps a bishop vs knight or something, and you discover you can rip your opponent's knight and win one or two pawns as a result. Unless you have truly huge passed pawn push scores, your program might do this, only to discover a few moves later that it can't catch that pawn of the opponent's. Granted that with a decent hashing algorithm, searching 15 or so plies is not too hard given enough time, and you ought to search this and find it. But suppose your q-search discovers this tactical trick near the end of the search and that looks like the best score. So you win two pawns, and a few moves later discover uh-oh... So I don't depend on this to advance passed pawns... I depend on it to help me avoid trading into a material-up but dead lost ending. Without it I found myself making lots of mistakes. This was one of the earliest things I added to Crafty. Fortunately it is basically "free" in terms of computational costs, when using bitmaps. I'd bet that a program without this will make huge mistakes in endgames, particularly at quick time controls. You have to hope that a move made at the root, which leads to an unstable position at the tip (where a pawn can run) leaves you an option to "bail out" later before you reach the critical (lost) position. If it does, you survive. If it is an early committment to an irreversible plan, you could be doomed. For the cost of the algorithm, it can't be wrong to do this. And it is actually easy to implement... just iterate over all the pawns to see if one side has a pawn that can't be stopped. If both do, you can get fancier as I have, and see which queens first, if one queens with check, or if one queens and simultaneously attacks the queening square of the other pawn, or if the latter is true does the king also defend the queening square so the pawn can promote anyway and draw? The more correct answers, the fewer mistakes you make. And the more games you don't lose to silly mistakes...
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.