Hello every one, I want to ask some questions about evaluation which have confused me for a long time:
1) How do we know that a eval function of an chess engine is exact or not?
I know there is a lot of features in one position, but sometimes for some similar positions it's really hard to determine which position will lead to better game status in the future.
Each position can lead to thousands of child positions, maybe some child position will cause a totally different result compared with current evaluation value.
Althought I am programming for chess engine, I am an totally amateur chess player who almost know nothing about chess knowledge except the rule in fact.
So what should I do to write a "exact" eval function for my engine? Learn how to play chess? Or some other way to go?
2) How do we confirm that one eval function is better than the other function?
In fact I have one method that two engine using the same searcher with each eval function play a game, the winner's function should be better.
But, does this method correct? Does one game enough(but sometimes result would be the same though they play more than one games because there is no random feature in the program)?
There are also additional conditions as some one's option in which he mentioned that the searcher should search to a fixed depth with infinitive time, and mostly "the fixed depth" is a shalow one(1 to 3 ply).
Can some one answer these two questions for me? Thanks a lot!
How do we know whether a eval function is better or worse?
Moderators: hgm, Rebel, chrisw
-
- Posts: 74
- Joined: Sat Dec 18, 2010 5:19 pm
- Location: Tianjin, China
- Full name: Chao M.
-
- Posts: 1342
- Joined: Wed Mar 08, 2006 9:41 pm
- Location: Morgantown, WV, USA
Re: How do we know whether a eval function is better or wors
Run a lot of games between copies of your engine with the different evals and see who wins
xboard -size small -fcp eval1 -scp eval2 -sgf games.pgn -mg 1000
Load games.pgn in scid and check statistics.
xboard -size small -fcp eval1 -scp eval2 -sgf games.pgn -mg 1000
Load games.pgn in scid and check statistics.
-
- Posts: 879
- Joined: Mon Dec 15, 2008 11:45 am
Re: How do we know whether a eval function is better or wors
1:
http://chessprogramming.wikispaces.com/Evaluation
2:
you have to play hundreds, better thousands, best ten thousands
of games. (this is not a joke).
http://chessprogramming.wikispaces.com/Evaluation
2:
you have to play hundreds, better thousands, best ten thousands
of games. (this is not a joke).
-
- Posts: 216
- Joined: Thu Mar 09, 2006 9:54 pm
Re: How do we know whether a eval function is better or wors
Just a note here that the time control doesn't have to be long. It's more important to have more games. I'm getting started on my eval and am experimenting with using 1/10 second/move, which gives me about 3 games/minute or a thousand or so overnight.