Depth vs playing strength

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

whittenizer
Posts: 85
Joined: Sun May 29, 2011 11:56 pm
Location: San Diego

Depth vs playing strength

Post by whittenizer »

Hi there,

I know the default strength level in Stockfish is set at 100. Does that have anything to do with the depth of the search? One of my first questions on this site was why is the engine playing so poorly if I simply pass a command "go" with no depth or any extra params. I know now of course :-) Forgive my ignorance as I'm not a C++ at all, mostly C#. So no in depth knowledge of chess programming but I'm surely learning.

Anyways, so if I pass a command "go depth 10" and then "go depth 20", can we calculate approx how much the playing level will increase between these two depths? Also, in doing this change in depths, is the strength level of "100" effected? Seems like it would be but just a bit confused on these two areas.

Thanks again all.

David
micron
Posts: 155
Joined: Mon Feb 15, 2010 9:33 am
Location: New Zealand

Re: Depth vs playing strength

Post by micron »

Engines normally run under time control. The depth reached is variable, depending on the position, search speed and time allocated for a move.

Fixed depth has limited uses, mainly certain kinds of testing during development.
FWIW, I ran a match with my engine (fixed depth 10 vs fixed depth 8), and found the difference to be around 260 Elo.

Depth 20 would win every game against depth 10.
whittenizer
Posts: 85
Joined: Sun May 29, 2011 11:56 pm
Location: San Diego

Re: Depth vs playing strength

Post by whittenizer »

Hi,

Thanks for the input. I've finally got to the point where I can talk to stockfish engine via my silverlight app. I'm slowing getting it to be fully UCI compliant but will take some time. For starters, I'd like to know what are the optimal settings for stockfish to play at full strength besides having the strength level set at 100. Here is what I'm doing:

cmd: position startpos moves e2e4... etc
cmd: go depth 20

So maybe using the fixed depth as I'm doing is not the ideal way to go to achieve the strongest play?

Thanks much.
User avatar
lucasart
Posts: 3232
Joined: Mon May 31, 2010 1:29 pm
Full name: lucasart

Re: Depth vs playing strength

Post by lucasart »

whittenizer wrote:Hi there,

I know the default strength level in Stockfish is set at 100. Does that have anything to do with the depth of the search? One of my first questions on this site was why is the engine playing so poorly if I simply pass a command "go" with no depth or any extra params. I know now of course :-) Forgive my ignorance as I'm not a C++ at all, mostly C#. So no in depth knowledge of chess programming but I'm surely learning.

Anyways, so if I pass a command "go depth 10" and then "go depth 20", can we calculate approx how much the playing level will increase between these two depths? Also, in doing this change in depths, is the strength level of "100" effected? Seems like it would be but just a bit confused on these two areas.

Thanks again all.

David
StockFish's implementation of limited strength is more complicated than that. I suggest you have a look at the source code and find out for yourself. It basically uses the multipv and choosed between the first few lines based on the strength parameter and a condition to avoid blunders. See search.cpp
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: Depth vs playing strength

Post by tpetzke »

Hi, you don't want a "go depth 20" command for a real game, this might take forever in a complicated position.

If you want it really simple use a "go movetime 20000" command, which gives the engine 20 sec for the next move.

Thomas...
JVMerlino
Posts: 1357
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Re: Depth vs playing strength

Post by JVMerlino »

lucasart wrote:StockFish's implementation of limited strength is more complicated than that. I suggest you have a look at the source code and find out for yourself. It basically uses the multipv and choosed between the first few lines based on the strength parameter and a condition to avoid blunders. See search.cpp
Interesting. Johan's implementation in The King was different and simpler to understand, but I don't know if it produced a more interesting/useful result to the user. In a nutshell (at least, the way he described it to me) all he did was add/subtract a random amount of centipawns to the eval of every root move (within a range specified by how much the strength was lowered from optimal).

jm
whittenizer
Posts: 85
Joined: Sun May 29, 2011 11:56 pm
Location: San Diego

Re: Depth vs playing strength

Post by whittenizer »

Hi there,

Thanks for the info. Yeah, I'm playing around with a strength option in my silverlight UI and trying to figure out how to accurately calculate the strength based off of options I pass in with the "go" command. I'm going to leave the default strength of "100" as is but I'll play around with the movetime and a few others to get a nice balanced playing strength.

Thanks for the reply,

David