Author: Bruce Moreland
Date: 12:01:15 02/09/99
Go up one level in this thread
On February 09, 1999 at 13:26:47, Dann Corbit wrote: >I agree that a mate is a mate is a mate. If your program knows for sure it can >win with a given sequence it is as good as any other -- even if it takes one >hundred ply. Just to clarify, I'm not making an apology for any program, I am merely stating that checkmating in the shortest possible time is a human trait that's easily implemented on a computer. It's not mentioned in the FIDE rules of chess, I believe, other than that you can't exceed the 50-move rule. >>The choice of move is necessarily >>subjective, but everyone can agree that a particular move would be most >>effective against the known classes of opponent. >Is there an effective way to measure this? No, it's heuristic. Being up a queen is a good thing, if you are trying to close out the game. That translates to +9 in the typical program, but that's a heuristic, there's no objective way to measure it, all you can do is write heuristics that you think will work well against the typical opponent class. If you have an opponent who can't see rook moves that are longer than two squares, your heuristics would be different. The heuristics we all use assume that nobody has a problem with this. >>We are really testing these programs against hypothetical opponents who have >>approximately known characteristics. >These are all very excellent points. My real concern is with some EPD problem >that suggests something like bm Bxh3 >A program eats that row and spits out: >; bm Bxh3; ce -1291 pv Bxh3 Nd4... > >Now, the program chose the right move, but it really getting its butt kicked, >according to its own opinion. I have had a lot of emails for the rockpile where >I get "solutions" just like the above. If the move is supposed to be such a >dandy, why are we down a queen and 3 pawns? If we really are that far in the >hole it is time to resign. So there is no best move. Or if there is one, we >*really* have no idea why it is good. Once again I'm not going to apologize for programs, but one reason that they do this is that they see that every other move craters, and one stays alive, however near death the program thinks it is. This can be an effective strategy, sometimes it takes some tactical oomph to see that everything else dies. >In other words, I think a best move should: >1. Result in a draw or checkmate for the one making the move. This is always the best situation. >2. Result in a large positive change in ce for the one making the move. This is second best. If the program appears to understand the situation, then it is likely that it is playing the move as a result of heuristics that apply correctly, in the sense that they lead to the right game-theoretical result. >3. If, even after the large positive change, you are still down 3 pawns or >more, then there *is no best move* for that position. A lost position has no >best move. If somehow, you are not really down 3, it still does not count >unless your program can see it. In other words, if you accidentally fall on top >of a solution, it should not count. You can generate a position like this easily, just put a white pawn on h7, a white king on g8, a black king in the a1 corner somewhere, and the queen somewhere more or less at random. There are lots of cases where this is drawn, but the side with the pawn will score it as -8. Tables fix this, and perhaps there is a general heuristic that will fix this (but if so, I would like to know about it). Sometimes a program will stumble into a situation like this (as white), because it sees that everything else gets killed, everything else loses the pawn and either returns a mate score or +20 or something. Bravo program. It's nice to have the knowledge, though, because it might make you more confidence that it will identify these cases early on and play for them or avoid them as appropriate. If you are the poor fool on the nominally stronger side of this though, it doesn't matter whether the program returns +0.00 or -25.00. As a practical matter, it's worth noting when you report a score whether or not you think the program actually understands what is going on. As a programmer I don't always find it necessary to return 0.00 in drawn cases though, I might tell the thing to avoid this or that situation, and it might come back with +1 in a case where one side is up tons of material. It still understands it, but it doesn't necessarily return an "exact" score. >In all cases, the program claiming to have found the best move should be able to >justify the choice. A fine opinion for a human to express, but in response to this logic the program will pull down its pants and moon you. bruce
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.