Question

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

Philou
Posts: 32
Joined: Fri Dec 04, 2009 1:58 pm
Location: France

Question

Post by Philou »

Hi :-)

Excuse me one more time for my english.

I am the author of the engine philou, and i test it with the good tool cutechess (thank's to ilary).

This is my problem:

When i make a tournament with the 2 same engine, with the same time and the same book and the option repeat, i think when the engine clear hash after every game that the two games are the same, but it is not the case with many engines, Fruit, Twisted logic, Philou....

I don't understand why :?:

Thank you, have a nice day :-)
Gian-Carlo Pascutto
Posts: 1260
Joined: Sat Dec 13, 2008 7:00 pm

Re: Question

Post by Gian-Carlo Pascutto »

1) Book lines will differ
2) Small differences in timing can cause small differences in depth reached at each move. The small differences accumulate and the game diverges.
Osipov Jury
Posts: 186
Joined: Mon Jan 21, 2008 2:07 pm
Location: Russia

Re: Question

Post by Osipov Jury »

Gian-Carlo Pascutto wrote:1) Book lines will differ
With the option "repeat" this does not happen.
Gian-Carlo Pascutto wrote:2) Small differences in timing can cause small differences in depth reached at each move. The small differences accumulate and the game diverges.
Try to run with the option "depth = <arg>" without time control.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Question

Post by bob »

Osipov Jury wrote:
Gian-Carlo Pascutto wrote:1) Book lines will differ
With the option "repeat" this does not happen.
Gian-Carlo Pascutto wrote:2) Small differences in timing can cause small differences in depth reached at each move. The small differences accumulate and the game diverges.
Try to run with the option "depth = <arg>" without time control.
That will repeat, for sure, but it gives wrong results. You won't know which of the two programs is better, since N plies to one program is not the same as N plies to another. If you try to measure improvements, any change that makes your tree larger (more extensions, fewer reductions, etc) or any change that makes you slower (more eval, more complex tests in search) will look good because with fixed depth, the slower search speed will not hurt you because you always go to the same depth regardless of speed...
Philou
Posts: 32
Joined: Fri Dec 04, 2009 1:58 pm
Location: France

Re: Question

Post by Philou »

Hi :-)

Thank you for the response.

It' Ok with option depth = <arg>, but for me it is amazing that almost 100 % of games differ, with only some ms per move :?:

good evening :-)
metax
Posts: 344
Joined: Wed Sep 23, 2009 5:56 pm
Location: Germany

Re: Question

Post by metax »

Philou wrote:Hi :-)

Thank you for the response.

It' Ok with option depth = <arg>, but for me it is amazing that almost 100 % of games differ, with only some ms per move :?:

good evening :-)
Well, the little time per move could actually _cause_ the games to differ almost always because small depths are calculated in a very short time. If there is a small difference in timing and you get 50 ms for a move instead of 60, this can make a big difference. If you get 10050 ms instead of 10060, this will hardly make a difference.
Philou
Posts: 32
Joined: Fri Dec 04, 2009 1:58 pm
Location: France

Re: Question

Post by Philou »

metax wrote:
Philou wrote:Hi :-)

Thank you for the response.

It' Ok with option depth = <arg>, but for me it is amazing that almost 100 % of games differ, with only some ms per move :?:

good evening :-)
Well, the little time per move could actually _cause_ the games to differ almost always because small depths are calculated in a very short time. If there is a small difference in timing and you get 50 ms for a move instead of 60, this can make a big difference. If you get 10050 ms instead of 10060, this will hardly make a difference.
I have almost 100% of differents games with 300 s per games, for me it was surprising.
Osipov Jury
Posts: 186
Joined: Mon Jan 21, 2008 2:07 pm
Location: Russia

Re: Question

Post by Osipov Jury »

bob wrote:
Osipov Jury wrote:
Gian-Carlo Pascutto wrote:1) Book lines will differ
With the option "repeat" this does not happen.
Gian-Carlo Pascutto wrote:2) Small differences in timing can cause small differences in depth reached at each move. The small differences accumulate and the game diverges.
Try to run with the option "depth = <arg>" without time control.
That will repeat, for sure, but it gives wrong results. You won't know which of the two programs is better, since N plies to one program is not the same as N plies to another. If you try to measure improvements, any change that makes your tree larger (more extensions, fewer reductions, etc) or any change that makes you slower (more eval, more complex tests in search) will look good because with fixed depth, the slower search speed will not hurt you because you always go to the same depth regardless of speed...
Bob, you are absolutely right. But sometimes the tests at a fixed depth are useful.
User avatar
ilari
Posts: 750
Joined: Mon Mar 27, 2006 7:45 pm
Location: Finland

Re: Question

Post by ilari »

Philou wrote:I am the author of the engine philou, and i test it with the good tool cutechess (thank's to ilary).
Thanks, and don't forget Arto, the other developer. He doesn't participate here (he's THAT smart), but he's the guy behind most of the inner "architecture" in Cute Chess.
When i make a tournament with the 2 same engine, with the same time and the same book and the option repeat, i think when the engine clear hash after every game that the two games are the same, but it is not the case with many engines, Fruit, Twisted logic, Philou....
Others already explained why the games may always differ when using time limits instead of depth limits. But you just gave me an idea: the "option.name=value" option needs a flag that sets the option for each game instead of just once when the engine is started. Then engine options like "Clear Hash" would actually be useful in cutechess-cli.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Question

Post by bob »

Osipov Jury wrote:
bob wrote:
Osipov Jury wrote:
Gian-Carlo Pascutto wrote:1) Book lines will differ
With the option "repeat" this does not happen.
Gian-Carlo Pascutto wrote:2) Small differences in timing can cause small differences in depth reached at each move. The small differences accumulate and the game diverges.
Try to run with the option "depth = <arg>" without time control.
That will repeat, for sure, but it gives wrong results. You won't know which of the two programs is better, since N plies to one program is not the same as N plies to another. If you try to measure improvements, any change that makes your tree larger (more extensions, fewer reductions, etc) or any change that makes you slower (more eval, more complex tests in search) will look good because with fixed depth, the slower search speed will not hurt you because you always go to the same depth regardless of speed...
Bob, you are absolutely right. But sometimes the tests at a fixed depth are useful.
Yes they are. I use 'em for debugging all the time, particularly where I have an unexpected crash that is infrequent. Because with fixed depth, I can always replay to the same point and get the same crash every time. It is pretty hard to find bugs if you can't recreate them on demand...