Do engines remember previous analysis?












2














Suppose I let the engine analyze a given position (let's say for simplicity the starting position), and then I execute the move suggested by the engine (let's say 1. e4). Then I let the engine analyze the upcoming position (black to move after 1. e4), and after a while I take the move back and let the engine again analyze the original position (the starting position, white to move again), will it:




  1. utilize the analysis done on this position last time and look wider at each PLY?

  2. utilize the analysis done on the upcoming position (after I played 1. e4) and possibly reevaluate 1. e4 based on that?










share|improve this question





























    2














    Suppose I let the engine analyze a given position (let's say for simplicity the starting position), and then I execute the move suggested by the engine (let's say 1. e4). Then I let the engine analyze the upcoming position (black to move after 1. e4), and after a while I take the move back and let the engine again analyze the original position (the starting position, white to move again), will it:




    1. utilize the analysis done on this position last time and look wider at each PLY?

    2. utilize the analysis done on the upcoming position (after I played 1. e4) and possibly reevaluate 1. e4 based on that?










    share|improve this question



























      2












      2








      2







      Suppose I let the engine analyze a given position (let's say for simplicity the starting position), and then I execute the move suggested by the engine (let's say 1. e4). Then I let the engine analyze the upcoming position (black to move after 1. e4), and after a while I take the move back and let the engine again analyze the original position (the starting position, white to move again), will it:




      1. utilize the analysis done on this position last time and look wider at each PLY?

      2. utilize the analysis done on the upcoming position (after I played 1. e4) and possibly reevaluate 1. e4 based on that?










      share|improve this question















      Suppose I let the engine analyze a given position (let's say for simplicity the starting position), and then I execute the move suggested by the engine (let's say 1. e4). Then I let the engine analyze the upcoming position (black to move after 1. e4), and after a while I take the move back and let the engine again analyze the original position (the starting position, white to move again), will it:




      1. utilize the analysis done on this position last time and look wider at each PLY?

      2. utilize the analysis done on the upcoming position (after I played 1. e4) and possibly reevaluate 1. e4 based on that?







      engines






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 1 hour ago









      Brian Towers

      14k32563




      14k32563










      asked 3 hours ago









      acye

      451111




      451111






















          2 Answers
          2






          active

          oldest

          votes


















          1














          Yes. This is what hash is: it stores previous analysis.




          Hash is a database that stores information about positions previously searched, how deeply they were searched, and what was concluded about them. See also https://www.chessprogramming.org/Hash_Table







          share|improve this answer





























            1














            I can't speak for all game playing engines, but a good engine would indeed remember past analysis. Having a "first-draft" evaluation of a position (and all the positions that can arise from each move) allows the engine to do move-ordering. This is where it looks at all possible moves in the order of "probable best" to "probable worst", based off the aforementioned "first-draft" evaluations that it saves.



            By looking at the subtrees of moves that are probably better first, the engine is able to perform the minimax + alpha-beta algorithms MUCH more efficiently. Already looking at a good move/subtree allows you to prune a bad move/subtree, but not vice versa.



            High quality engines actually perform their search via iterative-deepening. Search one move ahead, then go back to the starting position. Search two moves ahead, then go back to the starting position. All the way up to N moves ahead. That might seem inefficient, but it shows how powerful having some preliminary knowledge of a position and its moves can be before expanding further on it.



            For your specific question, I assume you mean when you go forward and backwards manually in ChessBase. In this case I'm not sure if the engine remembers everything it calculates, because that's a lot of data to store just for the specific case of the user clicking back to a previous position. It seems pretty space inefficient. I tested it on ChessBase by making a move and seeing how fast the engine's depth climbed. Getting to depth 20 was slightly faster on the second time than the first time, but it wasn't instantaneous on the second time (which it should be if it did remember all its calculations the first time I manually brought it to the position).






            share|improve this answer





















              Your Answer








              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "435"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              noCode: true, onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fchess.stackexchange.com%2fquestions%2f23352%2fdo-engines-remember-previous-analysis%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              1














              Yes. This is what hash is: it stores previous analysis.




              Hash is a database that stores information about positions previously searched, how deeply they were searched, and what was concluded about them. See also https://www.chessprogramming.org/Hash_Table







              share|improve this answer


























                1














                Yes. This is what hash is: it stores previous analysis.




                Hash is a database that stores information about positions previously searched, how deeply they were searched, and what was concluded about them. See also https://www.chessprogramming.org/Hash_Table







                share|improve this answer
























                  1












                  1








                  1






                  Yes. This is what hash is: it stores previous analysis.




                  Hash is a database that stores information about positions previously searched, how deeply they were searched, and what was concluded about them. See also https://www.chessprogramming.org/Hash_Table







                  share|improve this answer












                  Yes. This is what hash is: it stores previous analysis.




                  Hash is a database that stores information about positions previously searched, how deeply they were searched, and what was concluded about them. See also https://www.chessprogramming.org/Hash_Table








                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 1 hour ago









                  Allure

                  905215




                  905215























                      1














                      I can't speak for all game playing engines, but a good engine would indeed remember past analysis. Having a "first-draft" evaluation of a position (and all the positions that can arise from each move) allows the engine to do move-ordering. This is where it looks at all possible moves in the order of "probable best" to "probable worst", based off the aforementioned "first-draft" evaluations that it saves.



                      By looking at the subtrees of moves that are probably better first, the engine is able to perform the minimax + alpha-beta algorithms MUCH more efficiently. Already looking at a good move/subtree allows you to prune a bad move/subtree, but not vice versa.



                      High quality engines actually perform their search via iterative-deepening. Search one move ahead, then go back to the starting position. Search two moves ahead, then go back to the starting position. All the way up to N moves ahead. That might seem inefficient, but it shows how powerful having some preliminary knowledge of a position and its moves can be before expanding further on it.



                      For your specific question, I assume you mean when you go forward and backwards manually in ChessBase. In this case I'm not sure if the engine remembers everything it calculates, because that's a lot of data to store just for the specific case of the user clicking back to a previous position. It seems pretty space inefficient. I tested it on ChessBase by making a move and seeing how fast the engine's depth climbed. Getting to depth 20 was slightly faster on the second time than the first time, but it wasn't instantaneous on the second time (which it should be if it did remember all its calculations the first time I manually brought it to the position).






                      share|improve this answer


























                        1














                        I can't speak for all game playing engines, but a good engine would indeed remember past analysis. Having a "first-draft" evaluation of a position (and all the positions that can arise from each move) allows the engine to do move-ordering. This is where it looks at all possible moves in the order of "probable best" to "probable worst", based off the aforementioned "first-draft" evaluations that it saves.



                        By looking at the subtrees of moves that are probably better first, the engine is able to perform the minimax + alpha-beta algorithms MUCH more efficiently. Already looking at a good move/subtree allows you to prune a bad move/subtree, but not vice versa.



                        High quality engines actually perform their search via iterative-deepening. Search one move ahead, then go back to the starting position. Search two moves ahead, then go back to the starting position. All the way up to N moves ahead. That might seem inefficient, but it shows how powerful having some preliminary knowledge of a position and its moves can be before expanding further on it.



                        For your specific question, I assume you mean when you go forward and backwards manually in ChessBase. In this case I'm not sure if the engine remembers everything it calculates, because that's a lot of data to store just for the specific case of the user clicking back to a previous position. It seems pretty space inefficient. I tested it on ChessBase by making a move and seeing how fast the engine's depth climbed. Getting to depth 20 was slightly faster on the second time than the first time, but it wasn't instantaneous on the second time (which it should be if it did remember all its calculations the first time I manually brought it to the position).






                        share|improve this answer
























                          1












                          1








                          1






                          I can't speak for all game playing engines, but a good engine would indeed remember past analysis. Having a "first-draft" evaluation of a position (and all the positions that can arise from each move) allows the engine to do move-ordering. This is where it looks at all possible moves in the order of "probable best" to "probable worst", based off the aforementioned "first-draft" evaluations that it saves.



                          By looking at the subtrees of moves that are probably better first, the engine is able to perform the minimax + alpha-beta algorithms MUCH more efficiently. Already looking at a good move/subtree allows you to prune a bad move/subtree, but not vice versa.



                          High quality engines actually perform their search via iterative-deepening. Search one move ahead, then go back to the starting position. Search two moves ahead, then go back to the starting position. All the way up to N moves ahead. That might seem inefficient, but it shows how powerful having some preliminary knowledge of a position and its moves can be before expanding further on it.



                          For your specific question, I assume you mean when you go forward and backwards manually in ChessBase. In this case I'm not sure if the engine remembers everything it calculates, because that's a lot of data to store just for the specific case of the user clicking back to a previous position. It seems pretty space inefficient. I tested it on ChessBase by making a move and seeing how fast the engine's depth climbed. Getting to depth 20 was slightly faster on the second time than the first time, but it wasn't instantaneous on the second time (which it should be if it did remember all its calculations the first time I manually brought it to the position).






                          share|improve this answer












                          I can't speak for all game playing engines, but a good engine would indeed remember past analysis. Having a "first-draft" evaluation of a position (and all the positions that can arise from each move) allows the engine to do move-ordering. This is where it looks at all possible moves in the order of "probable best" to "probable worst", based off the aforementioned "first-draft" evaluations that it saves.



                          By looking at the subtrees of moves that are probably better first, the engine is able to perform the minimax + alpha-beta algorithms MUCH more efficiently. Already looking at a good move/subtree allows you to prune a bad move/subtree, but not vice versa.



                          High quality engines actually perform their search via iterative-deepening. Search one move ahead, then go back to the starting position. Search two moves ahead, then go back to the starting position. All the way up to N moves ahead. That might seem inefficient, but it shows how powerful having some preliminary knowledge of a position and its moves can be before expanding further on it.



                          For your specific question, I assume you mean when you go forward and backwards manually in ChessBase. In this case I'm not sure if the engine remembers everything it calculates, because that's a lot of data to store just for the specific case of the user clicking back to a previous position. It seems pretty space inefficient. I tested it on ChessBase by making a move and seeing how fast the engine's depth climbed. Getting to depth 20 was slightly faster on the second time than the first time, but it wasn't instantaneous on the second time (which it should be if it did remember all its calculations the first time I manually brought it to the position).







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered 1 hour ago









                          Inertial Ignorance

                          2,98019




                          2,98019






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Chess Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.





                              Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                              Please pay close attention to the following guidance:


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fchess.stackexchange.com%2fquestions%2f23352%2fdo-engines-remember-previous-analysis%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Costa Masnaga

                              Fotorealismo

                              Sidney Franklin