How do we know whether a eval function is better or worse?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

nkg114mc
Posts: 74
Joined: Sat Dec 18, 2010 5:19 pm
Location: Tianjin, China
Full name: Chao M.

How do we know whether a eval function is better or worse?

Post by nkg114mc »

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!
User avatar
jshriver
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

Post by jshriver »

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.
User avatar
Desperado
Posts: 879
Joined: Mon Dec 15, 2008 11:45 am

Re: How do we know whether a eval function is better or wors

Post by Desperado »

1:

http://chessprogramming.wikispaces.com/Evaluation

2:

you have to play hundreds, better thousands, best ten thousands
of games. (this is not a joke).
Mark
Posts: 216
Joined: Thu Mar 09, 2006 9:54 pm

Re: How do we know whether a eval function is better or wors

Post by Mark »

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.