Answers.Body: <p>I think the answer is that, although the engine has indeed calculated to depth 25, it has certainly not been able to store anywhere near the amount of the tree it examined during that search, no matter the memory allocated to the transposition table (hashtable). A <em>lot</em> of that tree (even of the pruned tree) is discarded as the depth-25 calculation continues, and so it pretty much has to be recreated after each move.</p>
  
  <p>You may object that, almost certainly there must be a depth-24 value for the position after Nf3 stored in the hashtable left over from the previous depth-25 calculation. But that kind of proves the point -- the hashtable only stores a single value and a single "principle variation" leading to that value, not the whole depth-24 tree from which that principle variation was determined, by any means.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-07-15T03:39:30.800Z
Answers.Text: Upvoted because I believe you to be correct - but any documentation you might be able to link to?
Answers.UserDisplayName: maxwell
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-07-21T14:00:51.380Z
Answers.Text: @Maxwell Just knowledge of how chess is programmed: https://chessprogramming.wikispaces.com/
Answers.UserDisplayName: Jeff Y
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-21T18:45:24.830Z
Answers.LastActivityDate: 2016-06-21T18:45:24.830Z
Answers.UserDisplayName: Jeff Y
Body: <p>I'm using SCID with the latest Stockfish 7 on my Ubuntu PC. When I'm analyzing a position, I can see the depth counter on the left. After seeing that the move, Nf3 say, get to depth 25, I go to play the move. I would expect that when the engine is analyzing this new position, it would start at depth 25, but this is not the case. The engine needs to work up to there from the first observed depth considering the exponential increase in time-computing depth, around 14 or so. </p>
  
  <p>Am I misinterpreting the depth counts or is there some technical reason as to why this is happening? One reason I thought, might be because if I hadn't chosen Nf3, and chose one of the worst moves, then there would be many missing branches due to pruning between candidate moves. This would mean evaluating the move using previous information would save little time since few variations have been examined. </p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-06-20T01:12:16.447Z
Comments.Text: I was trying to answer your question but stopped. I don't think I understand your second paragraph. The engine always assume best-play, it believed the best move was Nf3. Can you explain "using previous information would save little time"?
Comments.UserDisplayName: SmallChess
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-06-20T01:13:30.483Z
Comments.Text: Also, the title is a bit misleading for the question. Do you mean "why Stockfish didn't save searched branches into something like a hash table?"
Comments.UserDisplayName: SmallChess
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-06-20T01:14:27.550Z
Comments.Text: If you mean why Stockfish didn't save the searched results - Stockfish does save evaluations in a hash table. Does that answer your question?
Comments.UserDisplayName: SmallChess
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-06-20T01:22:06.720Z
Comments.Text: what part of the second paragraph don't you understand? Or all of it?
Comments.UserDisplayName: Qwertford
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-06-20T01:23:48.610Z
Comments.Text: My understnading is that you were asking why Stockfish didn't save evaluated moves for further analysis. Am I right?
Comments.UserDisplayName: SmallChess
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-06-20T01:34:38.383Z
Comments.Text: well that's the only one i have, so just in case its a unique problem, i put the name "stockfish" in there.  my second paragraph basically talks about how if we analyse a position until alll moves are of depth 25, and then picked the worst move, it would make sense that we don't start off at depth 25, and instead start at depth 14, since that move probably got pruned pretty fast by the other candidate moves. However, here im analyzing the best move in the position, so the other candidate moves shouldn't affect it at all.
Comments.UserDisplayName: Qwertford
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-06-20T01:36:49.183Z
Comments.Text: In short, im asking is it normal for us to see the engine analyze every move to depth 25 and then when we play one of the moves have the depth start from 15 or so.
Comments.UserDisplayName: Qwertford
Tags: <engines><stockfish><scid>
Title: If I analyze a move in a position to depth 25, then why am i only up to depth 15 immediately after playing the move?
ThreadText: # If I analyze a move in a position to depth 25, then why am i only up to depth 15 immediately after playing the move?
  
  (Asked by: username_0 on 2016-06-19)
  
  I'm using SCID with the latest Stockfish 7 on my Ubuntu PC. When I'm analyzing a position, I can see the depth counter on the left. After seeing that the move, Nf3 say, get to depth 25, I go to play the move. I would expect that when the engine is analyzing this new position, it would start at depth 25, but this is not the case. The engine needs to work up to there from the first observed depth considering the exponential increase in time-computing depth, around 14 or so.
  
  Am I misinterpreting the depth counts or is there some technical reason as to why this is happening? One reason I thought, might be because if I hadn't chosen Nf3, and chose one of the worst moves, then there would be many missing branches due to pruning between candidate moves. This would mean evaluating the move using previous information would save little time since few variations have been examined.
  
  **Tags:** engines, stockfish, scid
  
  > **Comments:**
  > **username_1**: I was trying to answer your question but stopped. I don't think I understand your second paragraph. The engine always assume best-play, it believed the best move was Nf3. Can you explain "using previous information would save little time"?  
  > **username_1**: Also, the title is a bit misleading for the question. Do you mean "why Stockfish didn't save searched branches into something like a hash table?"  
  > **username_1**: If you mean why Stockfish didn't save the searched results - Stockfish does save evaluations in a hash table. Does that answer your question?  
  > **username_0**: what part of the second paragraph don't you understand? Or all of it?  
  > **username_1**: My understnading is that you were asking why Stockfish didn't save evaluated moves for further analysis. Am I right?  
  > **username_0**: well that's the only one i have, so just in case its a unique problem, i put the name "stockfish" in there.  my second paragraph basically talks about how if we analyse a position until alll moves are of depth 25, and then picked the worst move, it would make sense that we don't start off at depth 25, and instead start at depth 14, since that move probably got pruned pretty fast by the other candidate moves. However, here im analyzing the best move in the position, so the other candidate moves shouldn't affect it at all.  
  > **username_0**: In short, im asking is it normal for us to see the engine analyze every move to depth 25 and then when we play one of the moves have the depth start from 15 or so.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2016-06-21. Score: 6
  
  I think the answer is that, although the engine has indeed calculated to depth 25, it has certainly not been able to store anywhere near the amount of the tree it examined during that search, no matter the memory allocated to the transposition table (hashtable). A *lot* of that tree (even of the pruned tree) is discarded as the depth-25 calculation continues, and so it pretty much has to be recreated after each move.
  
  You may object that, almost certainly there must be a depth-24 value for the position after Nf3 stored in the hashtable left over from the previous depth-25 calculation. But that kind of proves the point -- the hashtable only stores a single value and a single "principle variation" leading to that value, not the whole depth-24 tree from which that principle variation was determined, by any means.
  
  > **Comments:**
  > **username_3**: Upvoted because I believe you to be correct - but any documentation you might be able to link to?  
  > **username_2**: @Maxwell Just knowledge of how chess is programmed: https://chessprogramming.wikispaces.com/  
  
  ---
  
  