I have clearly simpler and worse rules in movei.pijl wrote:Is it not that simple. As you undoubtedly know, all of the evaluation of chess program consists of many patterns which all contribute to the evaluation score of the program. One pattern that is present is all of the stronger chess programs is the quadrant rule in pawn endings. Some programs have this rule in a crude form (i.e. if king is outside the quadrant, the pawn is an unstoppable passer and if the opponent doesn't have one, add a big bonus) and rely on the search to correct it in the few cases where it is wrong, while others also try to assess means to stop the passer in different ways and are more hesitant to add a big bonus when the opponent also has passers, especially when they are more advanced. One of those methods is demonstrated by a key position that Rybka may have based its big bonus on:Uri Blass wrote:I consider it as a bug because a program should never evaluate it as +14 in the first place.
[D]8/8/3P1kP1/4p3/1p5p/8/8/7K w - -
The pawn on b4 is the 'unstoppable' in this case, but white can create a more advanced one by moving either of its passers and the king will be out of the quadrant for one of them.
CTD gives a static evaluation for this position of -8.554, but sees quickly that this is incorrect when the search is started.
The Baron has a more refined method of using the quadrant rule when there are more than one passers for one side. As a result, the static evaluation score of the Baron for this position is just -1.64.
The method used is pretty simple:
Instead of applying the quadrant rule to just one pawn, I 'and' the quadrant bitboards of all passers of one side together and test that with the king. Additionally, if the resulting bitboard does not contain all the promotion squares, I know this side will have an 'unstoppable' passer too.
The remaining question is now why it takes so long for Rybka to see that Ne3 is not really the best move. I can only imagine that this is due to the pruning logic in Rybka.
Richard.
I simply do not evaluate pawn as unstoppable if the opponent has more advanced pawns.
I do not claim that it is easy to have correct rules.
The point is that a very big bonus and I talk about +10 and not about +2 is something that you should not give if you are not sure that there are no exceptions.
Uri