Author: Eelco de Groot
Date: 18:01:38 12/10/99
Go up one level in this thread
On December 10, 1999 at 13:04:18, Paulo Soares wrote: >Thanks by the explanations to my question in a previous line. >Plus a question: > >" Static evaluation " is the first evaluation of the position for >a program, that is to say the evaluation even before of depth 1. Rigth? >As I could know the value of the " Static evaluation " of a program for >a certain position? > >Paulo Soares, from Brazil Hi Paulo, I see that famous names have gone before me now in trying to answer your question. I hope this part is more clear now, but please ask if any questions!. I wrote some things down but maybe some of it only adds to the confusion at this point? It would be nice sometimes to see more of how the static evaluation of the rootposition is built up. A static evaluation of the root-position would have to be rather inaccurate though. The programmers could make their evaluation of a single position more accurate but they have to find a balance between accuracy and speed. If they can do more evaluations per second, they can look deeper. Every "leafposition" has to be looked at with this evaluationfunction as well. So for fast programs that can easily run into 200.000 calls to this evaluation function per second! Speed is of the essence! Did I read that in a 1920's book or something? Doesn't matter. Now what happens with those leaf positions? Suppose it were all moves by Black that lead to this positions, and that the static evaluation is seen through the eyes of White, so a high score is good for White. Now what would Black do? He/she would choose the lowest scoring position! If you go down one ply lower to the root it is again White's turn. What does he/she do? Choose the highest score out of the ones that Black has chosen! This is called "Minimax", White tries to maximize the score, Black to minimize. You could say: "Why not only evaluate leafpositions then?" That could be done but it turns out that if you find a way to order all the moves provisionally by shallow searches first, you can gain more time than you loose by those searches. This is the basis of "iterative deepening" and "alpha-beta" but I better leave that to another posting sometime.. There is maybe something more I could say. Sorry Paulo, things become more complicated now but I just wrote down what was on my mind. I think most programmers will agree that the evaluation functions for greater depths have to be tuned slightly differently than for a typical rootposition. This is what I remember of the genetic algorithm tuning and neural network experiments by Alex van Tiggelen, author of ALEXS. Apart from the fact that you have to evalute middlegame positions with other parameters than endgame positions etc., Alex van Tiggelen said: "If I optimalize the parameters using 20 seconds per move and then use those values with 180 seconds per move, the results go down!. What is the explanation? There is strategical knowledge and tactical knowledge. You have to evaluate strategical knowledge differently if the tactical knowledge [of a position] increases. It increases when there has been more time [to look deeper into the chesstree]." Leafpositions tend to be at the end of tactical capturing sequences more than root-positions. So if you had some positional advantage in the root-position, in the leafposition because of the tactical exchanges this will have likely been converted into something else. Finding the right moment for such a conversion is real grandmaster-stuff, I think. In a chessprogram is deciding if you should look for such a conversion best done near the root where you have more time per position? Or better at the leaves when all possible conversions can be compared with one another? Opinions of top-programmers differ on this. It's a very interesting discussion. Regards, Eelco
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.