jdart wrote:I think this is quite interesting and am planning to give it a try.
I think though there are some parameters that are probably not going to be effectively tuned by this method. One example is the classic trade down bonus. If you are very far ahead in material, your score is always going to predict a win and you will win a very large percentage of the time. The trade down bonus will scarcely affect that. But it does help you convert the advantage to a win faster.
My program has a piece trade bonus and I did include it in the optimization. After optimization the bonus was adjusted such that if you are one queen ahead and trade a rook, the trade bonus is about 1cp. So the bonus is currently very close to zero. I can see at least three possible reasons for this result:
1. The optimization does not care about how quickly a game is won, only the final result counts. So if the piece trade bonus does not improve winning chances but does improve the average number of moves to mate, the optimization will think the bonus is useless.
2. Maybe the piece trade bonus does not make sense for computers. When I learned to play chess, the motivation for the trade bonus I heard was to simplify the game and give the opponent less opportunities to create complications and set traps. It is quite possible that this aspect does not apply to computer programs that are tactically very strong.
3. My program has other evaluation terms that behave similarly to the piece trade bonus and may make the piece trade bonus redundant. For example, I have a term for "redundancy of major pieces", which gives the side with more major pieces a bonus of ~75cp for trading a major piece. Also the bishop pair bonus grows when minor pieces are traded.
An effect similar to the piece trade bonus problem appears if you would try to tune the evaluation function used to guide the search in KBNK endgames. (My program does have such a function but I don't include its weights in the optimization.) The optimal evaluation function would return +infinity for all positions in this endgame, except for the rare exceptions when the defending side can quickly capture one of the pieces. However an evaluation function that always returned +infinity would of course be completely useless for guiding the search in this endgame.