Elo Gains from thinking on your opponents time

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

mhalstern
Posts: 484
Joined: Wed Nov 18, 2009 1:09 am

Elo Gains from thinking on your opponents time

Post by mhalstern »

Modern Chess Gui's are a great convenience, as we are able to run engine matches and tournaments in unattended mode. I was wondering if the nature of the matches limited engines strength. When I run matches, the engine that is analyzing the next move takes up 98-99% of cpu usage while the other engine takes up 0%. The only activity that the dormant engine shows is ram usage.


What would happen with this experiment:

Have 2 engines with the same rating play a long series of matches at various time controls, each engine playing on its own pc. Each engine would have an alternative version, that would analyze the game, as if the opponent made the next expected move. This analysis would use all available cpu usage, as if it were the side to move. If the expected move were to be played, the engine could start to analyze at t higher ply. If not, then certainly a lot of relevant information would fill up the hash.

Have a long series of matches, each side playing the modified engine against the others non-modified engine.

How much of an advantage and ELO gain would the modified engines have against their non-modified counterparts?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Elo Gains from thinking on your opponents time

Post by bob »

mhalstern wrote:Modern Chess Gui's are a great convenience, as we are able to run engine matches and tournaments in unattended mode. I was wondering if the nature of the matches limited engines strength. When I run matches, the engine that is analyzing the next move takes up 98-99% of cpu usage while the other engine takes up 0%. The only activity that the dormant engine shows is ram usage.


What would happen with this experiment:

Have 2 engines with the same rating play a long series of matches at various time controls, each engine playing on its own pc. Each engine would have an alternative version, that would analyze the game, as if the opponent made the next expected move. This analysis would use all available cpu usage, as if it were the side to move. If the expected move were to be played, the engine could start to analyze at t higher ply. If not, then certainly a lot of relevant information would fill up the hash.

Have a long series of matches, each side playing the modified engine against the others non-modified engine.

How much of an advantage and ELO gain would the modified engines have against their non-modified counterparts?
You can sort of analyze this logically.

First, a good program will likely predict the moves of a good opponent at least 50% of the time, and more likely around 75%, again assuming both programs are good (a good program will do poorly predicting a bad opponent, and vice versa).

So we predict correctly somewhere between 50% and 75% of the time. And on average, about 1/2 of that will result in saved time. Sometimes we will predict correctly, have a move already ready to play, and save all of the time we would have used. Other times we will predict correctly, but the opponent also moved instantly so we still have to think for the normal time.

Using that model, we save between 25% to 35% of our time. If we could double our think time, we'd get 50-70 Elo. We are speeding things up (because we save time and can take longer to search) by 25%-35%, so you get something in the 15-20 Elo range overall. It isn't huge, but it should never be discounted either.
User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Elo Gains from thinking on your opponents time

Post by hgm »

mhalstern wrote:Have 2 engines with the same rating play a long series of matches at various time controls, each engine playing on its own pc. Each engine would have an alternative version, that would analyze the game, as if the opponent made the next expected move. This analysis would use all available cpu usage, as if it were the side to move. If the expected move were to be played, the engine could start to analyze at t higher ply. If not, then certainly a lot of relevant information would fill up the hash.
What yuo describe is a normal ponder-on tournament, as for instance conducted in ChessWar, not? Or are you suggestng that the engine should start to ponder the next move at the same time as the current move? (And in that case, what if during your normal think you would change move, or change expected repy?)

Grid Chess, the participant of WCCC 2007, did such speculative pondering.
mhalstern
Posts: 484
Joined: Wed Nov 18, 2009 1:09 am

Re: Elo Gains from thinking on your opponents time

Post by mhalstern »

I am not familiar with the ChessWar tournament. I know what "ponder on" is. I can't imagine it have much value, if 2 engines were sharing the same cpu. Whay good would pondering be if that engine only had <2% of available cpu to work with?

I was only suggesting pondering when it is not your turn to move. I was suggesting more than pondering. I was suggesting the same analysis that is used when it is your turn to move.
mhalstern
Posts: 484
Joined: Wed Nov 18, 2009 1:09 am

Re: Elo Gains from thinking on your opponents time

Post by mhalstern »

I am replying to Professor Hyatt's response:

..."so you get something in the 15-20 Elo range overall..."

If I understand the math behind the expected value of results with ELO rating differences, this would mean that the modified engine, always analyzing, would win 2 - 3% more games than the unmodified one, only thinking on its own time.

Please correct my math if inaccurate.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Elo Gains from thinking on your opponents time

Post by bob »

mhalstern wrote:I am not familiar with the ChessWar tournament. I know what "ponder on" is. I can't imagine it have much value, if 2 engines were sharing the same cpu. Whay good would pondering be if that engine only had <2% of available cpu to work with?

I was only suggesting pondering when it is not your turn to move. I was suggesting more than pondering. I was suggesting the same analysis that is used when it is your turn to move.
That's the only way I know how to ponder... normal search and everything is used, take the best move from the PV as the predicted move, and search that while waiting on the opponent.
User avatar
hgm
Posts: 27808
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Elo Gains from thinking on your opponents time

Post by hgm »

mhalstern wrote:I am not familiar with the ChessWar tournament. I know what "ponder on" is. I can't imagine it have much value, if 2 engines were sharing the same cpu.
But of course they don't. The days that PCs had only a single CPU are long behind us... What you propose, most of us already do for many years. We all have duals or quads.