Author: Don Dailey
Date: 14:23:15 02/17/99
Go up one level in this thread
On February 17, 1999 at 03:47:25, Amir Ban wrote: >On February 15, 1999 at 08:01:14, Steffen Jakob wrote: > >>On February 15, 1999 at 05:58:35, Jeff Anderson wrote: >> >>>On February 15, 1999 at 03:22:50, Jouni Uski wrote: >>> >>>>In was quite surprised, that in two consecutine(!) tournament game between >>>>Junior 5 and Crafty 16.3 Junior eats a7 pawn with bishop. So after b6 bishop is >>>>lost. I have never seen Mchess or Rebel even considering that. Hmmm... >>> >>>I believe that Crafty has something in its eval that keeps it from playing this >>>move even when it cannot actually see the bishop being captured after it's >>>trapped. Is there any test position to see if a program will do this or not? >> >>I just cannot believe that Amir has simply forgotten to implement a "trapped >>bishop" penalty. Amir? > >The bishop is considered trapped at a7, but not at b8, which may be why Junior >and several other programs (Rebel included) fail here. > >Bobby Fischer fell for it against Spassky, so it's quite respectable :) > >Amir I think in the end it was never clear whether Fischers move was right or wrong, the obvious calculations didn't tell the whole story. I have had the trapped bishop code in and out of my programs at various times. I have seen my program take that pawn many times and get away with it. I think it's probably best to have the penalty, but I hate to make this assumption. A big problem is that you cannot split the difference with a small penalty, you must give your program a pretty hefty incentive to not take the pawn. And then you have code in your program that makes it not win material or it lets the opponent win material without a fight. I have the score now adjusted so that it will sometimes take and sometimes not take. The idea is that it will "think twice" about taking, and let other considerations become a factor. But I have seen programs win against us in private test games because we let them have the pawn when we didn't need to. That's the problem and of course it's always a problem with any kind of evaluation. I think there are probably some ways to condition this rule to make it more accurate but I haven't thought enough about it. But having a pawn that is posted to attack b6 might be a start (assuming the bishop took on a7.) 7k/ppp1bpp1/7p/8/8/1P1PB2P/1P3PP1/5K2 w - - In the test position that was posted, it looks like some trouble was taken to make this position demonstrate the evils of taking on a7. Also, other than the fact that white wins a pawn, his pawn structure is bad. One problem for instance is that white is forced to play a certain way to keep from losing his own b pawn. His saving pawn levers a5 and c5 are never possible since he doesn't have an a or c pawn! In fact I wonder if white can hold even if he doesn't take the pawn? But this is probably not the typical position. In a middlegame it could be that having the extra material makes winning the bishop easier. But if it's easy enough, the search will handle it and I'm not eager to override this with strange scores that could be way off. In games against other computers I could see the opponent being oblivious in the example position because the opponent machine will not know that the bishop can be won in a zillion moves. But programs with the trapped bishop code will play to keep the bishop trapped, which is a good thing. That's why I like having the code in, even if it doesn't always prevent the machine from taking the pawn. When your opponent is a human, it's a big problem and really demonstrates the differences between man and machine. The human, even if a relatively weak player, will be focused on important issues and will make the plan to win the bishop. Interestingly though, our program has won a few games against humans who went after this bishop. They lost time trying to win the bishop and never did! Finally, I wonder how many programs use asymetric scoring? You could concievable program defensively and say, "I don't want my program taking that pawn! But let's make sure the opponent cannot take ours!" So since I'm on the subject, how many of the programmers out their subscribe to asymmetric scoring, where certain terms get weighted differently depending on whether the computer or the computers opponent possess them? The idea is that it might be easier to prevent something you don't understand, although you might not take a chance on doing it yourself. A simple example is king safety. We may not want to commit our program to a risky king side attack against the opponent, but it might make sense to be paranoid about allowing the opponent a similar chance. In one case you are playing a committal and risky move, and in the other you may simply be playing a simple move to prevent any possible trouble. - Don
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.