Answers.Body: <p>It must have been a bug. Lichess's Stockfish 8 has the following internal settings:</p>
  <ul>
  <li>Skill level 20/20</li>
  <li>Depth up to 22</li>
  <li>Think up to 1000ms</li>
  </ul>
  <p>I got the following information from the source code in Fishnet. Not sure how strong it is but definitely not a level that would drop a knight like this.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-14T14:44:00.067Z
Answers.Text: What does "skill level" mean?
Answers.UserDisplayName: David
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-15T17:34:06.297Z
Answers.Text: @David Stockfish has 20 AI levels. We call it "skill level" in computer chess.
Answers.UserDisplayName: SmallChess
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-13T16:19:10.060Z
Answers.LastActivityDate: 2021-08-13T16:19:10.060Z
Answers.UserDisplayName: SmallChess
Body: <p>I’m trying some practice games against Stockfish level eight. I always lose but sometimes Stockfish makes obviously bad moves and I get ahead. Here for example, Stockfish makes an inaccuracy followed by what seems to be an obvious blunder. I believe Stockfish level 8 is supposed to be ~2500 level, but I think a computer would avoid basic blunders. What causes such a misevaluation?   <a href="https://i.sstatic.net/S7ld8.jpg" rel="noreferrer"><img src="https://i.sstatic.net/S7ld8.jpg" alt="enter image description here" /></a></p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-24T21:17:42.523Z
Comments.Text: Computers have no way to simulate how a 2500 rated human plays. It just mixes optimal moves with a random amount of terrible moves
Comments.UserDisplayName: David
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-25T03:23:42.927Z
Comments.Text: but there’s no higher level! is stockfish set to always blunder some amount of the time?
Comments.UserDisplayName: curious
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-25T05:12:31.263Z
Comments.Text: It would be very bad if Stockfish were programmed that way, though from your example it seems that it is clearly the case. A better way would be to make the AI have a centipawn loss distribution similar to what humans at that rating have. Contrary to what David says, it is definitely possible for a computer to simulate human players, even if it would be very complicated compared to just mimicking the centipawn loss distribution, which in turn is still far better than what you have observed.
Comments.UserDisplayName: user21820
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-25T08:44:58.433Z
Comments.Text: @curious if Stockfish level 8 plays at 2500 strength, then there are indeed higher levels
Comments.UserDisplayName: David
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-25T19:09:05.010Z
Comments.Text: @user21820 What do you mean by "centipawn loss distribution"? Distribution as a function of what? NB: People have tried experiments like Stockfish picking a lower option (but still high) than its top choice unless this costs a lot of eval. It didn't work, the engine is still invincible to humans. (Why? Because in most classical games, and almost all faster games, humans lose because of significantly weakening moves, not slightly suboptimal choices.)
Comments.UserDisplayName: Mobeus Zoom
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-26T06:15:53.430Z
Comments.Text: @MobeusZoom: Given a human player and a given time control, this model assumes that each move made incurs a centipawn loss drawn from a fixed [distribution](https://en.wikipedia.org/wiki/Probability_distribution). As I said, this would give far more human play than the asker observed Stockfish to give, but if you want even better mimicking then you need more work. It is **not** impossible, regardless of whether other people managed to do it.
Comments.UserDisplayName: user21820
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-26T17:08:58.483Z
Comments.Text: @user21820 Let's dig a bit further to see how your idea could work meaningfully. By "each move", do you mean 'on each move number' or 'in each given position'? If the latter, don't you have the problem of generalizability to unseen positions, and if the former, wouldn't strange play remain in the game since the computer must incur a certain amount of loss at certain times?
Comments.UserDisplayName: Mobeus Zoom
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-26T18:56:48.373Z
Comments.Text: @MobeusZoom: For simplicity let's restrict to fixed time per move. Let D(k) be the distribution of centipawn loss over all moves that the player makes on the k-th move (based on all past games). On the k-th move, the AI chooses from the possible moves independently from the previous moves from a distribution on those moves such that the induced centipawn loss has distribution as close as possible to D[k] (with a reasonable definition for closeness). Why do you think there is mandated loss at certain times? If your 10th move is perfect with probability 10%, the AI mimicking you also does that.
Comments.UserDisplayName: user21820
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-27T12:03:36.667Z
Comments.Text: @user21820 I want to commend you for an interesting idea that provides food for thought! But, I'm not sure it's so different from the above (choosing the nth best move): evaluation assumes optimal follow-up, so the introduced weakness can only be exploited via near-optimal play, while for a player of low rating the position may not appear any worse. (By "restrict to fixed time per move", I don't see what difference that would make to the moves played: guess you refer to time taken.) Btw how about "it is definitely possible for a computer to simulate human players" - what method do you imagine?
Comments.UserDisplayName: Mobeus Zoom
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-27T17:11:16.650Z
Comments.Text: @MobeusZoom: (n-th best move) is really bad in comparison because it does not take into account the values of the moves. A good player would almost never make a move with a loss-in-1 value, even if it is the 2nd-best move. As for evaluation assuming optimal follow-up, indeed the recursive evaluation itself needs to be altered if we want to simulate human play perfectly, but I stand by my claim that what I suggested would already perform well enough to be hard for humans to tell apart from human play. There are many details in a human-like AI but I don't have the time to tell you all of it now.
Comments.UserDisplayName: user21820
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-27T17:14:18.337Z
Comments.Text: As for "fixed time per move", I didn't want to have to explain what I think is a good simulation scheme for the usual kind of time controls (e.g. 5 min plus 3 s increment). It is much more complicated because humans play worse and worse as time runs out, so simulating that would need some kind of dependency on remaining time besides other factors, all of which won't exist for fixed time per move.
Comments.UserDisplayName: user21820
Tags: <engines><stockfish><computer-chess>
Title: How do computers end up blundering?
ThreadText: # How do computers end up blundering?
  
  (Asked by: username_0 on 2021-05-24)
  
  I’m trying some practice games against Stockfish level eight. I always lose but sometimes Stockfish makes obviously bad moves and I get ahead. Here for example, Stockfish makes an inaccuracy followed by what seems to be an obvious blunder. I believe Stockfish level 8 is supposed to be ~2500 level, but I think a computer would avoid basic blunders. What causes such a misevaluation? [![enter image description here](https://i.sstatic.net/S7ld8.jpg)](https://i.sstatic.net/S7ld8.jpg)
  
  **Tags:** engines, stockfish, computer-chess
  
  > **Comments:**
  > **username_1**: Computers have no way to simulate how a 2500 rated human plays. It just mixes optimal moves with a random amount of terrible moves  
  > **username_0**: but there’s no higher level! is stockfish set to always blunder some amount of the time?  
  > **username_2**: It would be very bad if Stockfish were programmed that way, though from your example it seems that it is clearly the case. A better way would be to make the AI have a centipawn loss distribution similar to what humans at that rating have. Contrary to what username_1 says, it is definitely possible for a computer to simulate human players, even if it would be very complicated compared to just mimicking the centipawn loss distribution, which in turn is still far better than what you have observed.  
  > **username_1**: @username_0 if Stockfish level 8 plays at 2500 strength, then there are indeed higher levels  
  > **username_3**: @username_2 What do you mean by "centipawn loss distribution"? Distribution as a function of what? NB: People have tried experiments like Stockfish picking a lower option (but still high) than its top choice unless this costs a lot of eval. It didn't work, the engine is still invincible to humans. (Why? Because in most classical games, and almost all faster games, humans lose because of significantly weakening moves, not slightly suboptimal choices.)  
  > **username_2**: @username_3: Given a human player and a given time control, this model assumes that each move made incurs a centipawn loss drawn from a fixed [distribution](https://en.wikipedia.org/wiki/Probability_distribution). As I said, this would give far more human play than the asker observed Stockfish to give, but if you want even better mimicking then you need more work. It is **not** impossible, regardless of whether other people managed to do it.  
  > **username_3**: @username_2 Let's dig a bit further to see how your idea could work meaningfully. By "each move", do you mean 'on each move number' or 'in each given position'? If the latter, don't you have the problem of generalizability to unseen positions, and if the former, wouldn't strange play remain in the game since the computer must incur a certain amount of loss at certain times?  
  > **username_2**: @username_3: For simplicity let's restrict to fixed time per move. Let D(k) be the distribution of centipawn loss over all moves that the player makes on the k-th move (based on all past games). On the k-th move, the AI chooses from the possible moves independently from the previous moves from a distribution on those moves such that the induced centipawn loss has distribution as close as possible to D[k] (with a reasonable definition for closeness). Why do you think there is mandated loss at certain times? If your 10th move is perfect with probability 10%, the AI mimicking you also does that.  
  > **username_3**: @username_2 I want to commend you for an interesting idea that provides food for thought! But, I'm not sure it's so different from the above (choosing the nth best move): evaluation assumes optimal follow-up, so the introduced weakness can only be exploited via near-optimal play, while for a player of low rating the position may not appear any worse. (By "restrict to fixed time per move", I don't see what difference that would make to the moves played: guess you refer to time taken.) Btw how about "it is definitely possible for a computer to simulate human players" - what method do you imagine?  
  > **username_2**: @username_3: (n-th best move) is really bad in comparison because it does not take into account the values of the moves. A good player would almost never make a move with a loss-in-1 value, even if it is the 2nd-best move. As for evaluation assuming optimal follow-up, indeed the recursive evaluation itself needs to be altered if we want to simulate human play perfectly, but I stand by my claim that what I suggested would already perform well enough to be hard for humans to tell apart from human play. There are many details in a human-like AI but I don't have the time to tell you all of it now.  
  > **username_2**: As for "fixed time per move", I didn't want to have to explain what I think is a good simulation scheme for the usual kind of time controls (e.g. 5 min plus 3 s increment). It is much more complicated because humans play worse and worse as time runs out, so simulating that would need some kind of dependency on remaining time besides other factors, all of which won't exist for fixed time per move.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_4 on 2021-08-13. Score: 2
  
  It must have been a bug. Lichess's Stockfish 8 has the following internal settings:
  
  * Skill level 20/20
  * Depth up to 22
  * Think up to 1000ms
  
  I got the following information from the source code in Fishnet. Not sure how strong it is but definitely not a level that would drop a knight like this.
  
  > **Comments:**
  > **username_1**: What does "skill level" mean?  
  > **username_4**: @username_1 Stockfish has 20 AI levels. We call it "skill level" in computer chess.  
  
  ---
  
  