hgm wrote:jwes wrote:I have seen this effect, but it means that the evaluation is flawed, particularly in the position above which is totally won. Those regrouping moves that appear to cause the evaluation to drop, are actually improving the position, at least is the sense of bringing checkmate closer (which is really what is important), and so should have higher scores. Putting in a delayed loss bonus is hiding the problem rather than fixing it.
Again, you are absolutely right: the evaluation is not perfect. But with a perfect evaluation, a one-ply search is enough to play a perfect game. And in tablebase play we indeed have that.
But when there are more than 7 pieces on the board, even the top engines usually search deeper than 1 ply. In fact, the very reason they are top engines is jusually that they do search deeper than the others. Becaus when you search 20 ply, you whack an opponent that searches only 17 ply.
That search served no purpose at all, other than to 'hide' the problems in the evaluation. And the search that can hide such problems best is the superior search, and a search that cannot hide the problems at all is a crappy search.
This is why a good search needs a delayed-loss bonus. And let us know when you have 'fixed' your evaluation so that you can beat Rybka (or NEG, for that matter) with a one-ply search...
This is a really interesting discussion!
It made me kinda think about the correlation between search and evaluation.
The search tries to spot the errors in the evaluation, but at the same time the evaluation drives or guides the search. By using the hashtable best moves for move ordering, the evaluation is guiding the search to "Look in this direction first. This looks promising!"
Now in situations where the evalution function is really good, then the number of surprises discovered by the search are very small.
I guess that is why engines with a very good evaluation function, like Rybka and others, have a relatively stable PV output. Where as my own engine for example i many situations have an extremely fluctuating PV, causing a lot of PVS researches and a lot of wasted effort!
So if your evaluation continously pushes the search in the wrong direction, then why not try to fix it?
Then "fixing" the search afterwards is double good! Icing on the cake!
But maybe there is a third issue at work here: Move ordering (at the root?).
If the engine can see a forced promotion at depth 9, then the move leading to this should be the current best.
If the engine then finds a forced promotion for a different move, at depth 10, leading to the same evalution, then the move ordering becomes important. If the move ordeting at the root is kept, then the forcing move at depth 9 is still kept as the current best move, to be played when time is up. If the forcing move at depth 10 is instead chosen as the current best, then I think it opens up for situations like this, where the goal is continously pushed further ahead.
Am I making any sense?
One scenario where this issue becomes very important, is when returning mate scores. You need to be careful not to return a mate score, just because you see one! Make sure it is a faster mate than at the previous move, before breaking the search early.
By the way, Pupsi does not have "delayed-loss" in the search, and I have never had problems of pushing the win continously ahead. Well... not that I have ever seen, anyway!
Kind regards,
Jesper