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
Depth vs playing strength
Moderators: hgm, Rebel, chrisw
-
- Posts: 85
- Joined: Sun May 29, 2011 11:56 pm
- Location: San Diego
-
- Posts: 155
- Joined: Mon Feb 15, 2010 9:33 am
- Location: New Zealand
Re: Depth vs playing strength
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.
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.
-
- Posts: 85
- Joined: Sun May 29, 2011 11:56 pm
- Location: San Diego
Re: Depth vs playing strength
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.
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.
-
- Posts: 3232
- Joined: Mon May 31, 2010 1:29 pm
- Full name: lucasart
Re: Depth vs playing strength
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.cppwhittenizer 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
-
- Posts: 686
- Joined: Thu Mar 03, 2011 4:57 pm
- Location: Germany
Re: Depth vs playing strength
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...
If you want it really simple use a "go movetime 20000" command, which gives the engine 20 sec for the next move.
Thomas...
-
- Posts: 1357
- Joined: Wed Mar 08, 2006 10:15 pm
- Location: San Francisco, California
Re: Depth vs playing strength
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).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
jm
-
- Posts: 85
- Joined: Sun May 29, 2011 11:56 pm
- Location: San Diego
Re: Depth vs playing strength
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
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