Answers.Body: <p>The answer is yes and no. </p>
  
  <p><a href="http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/chess-programming-part-iv-basic-search-r1171" rel="nofollow">http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/chess-programming-part-iv-basic-search-r1171</a> 
  Has a pretty good explanation on how chess engine works. </p>
  
  <p>In Chess, for example, a typical branching factor in the middle game would be about 35 moves. That is, after every move, there will be around 35 possible valid moves. </p>
  
  <p>Using a "smart brute force algorithm"  (aka Min-Max search), the time complexity of the algorithm is O( B^n ). That is, you need around that B^n operations n-ply search.</p>
  
  <p>An 8-ply search of a chess position would need to explore about 1.5 million possible paths! That is a LOT of work. Adding a ninth ply would make the tree balloon to about 50 million nodes, and a tenth, to an impossible 1.8 billion! A typical game has 30-40 moves, so you will need to search for 30^35 - 40^35 positions. </p>
  
  <p>Assuming your CPU is running at 3GHz, and it takes only one clock cycle to analyze one position, it will take more than 1x10^42 years to complete the search.  So short answer is no.  </p>
  
  <p>However, endgames with small number of pieces have been thoroughly analyzed, and can be determined if mate is possible.  By August 2012, tablebases had solved chess for every position with up to seven pieces (According to wiki <a href="http://en.wikipedia.org/wiki/Endgame_tablebase" rel="nofollow">http://en.wikipedia.org/wiki/Endgame_tablebase</a>) </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-04-22T05:48:24.837Z
Answers.LastActivityDate: 2014-04-22T05:48:24.837Z
Answers.UserDisplayName: vincentleest
Body: <p>Are there chess engines that carry out brute force search, looking at all possible moves to each depth?  An engine like this could be used to generate for solutions to tactical puzzles where the key move gets pruned by engines with selective search.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-09-30T12:45:56.990Z
Comments.Text: Answer: Rybka Winfinder and the Tactical mode of Houdini were designed for use in solving problems, and will examine a wider range of lines than most engines.
Comments.UserDisplayName: A passerby
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2015-10-03T22:57:19.073Z
Comments.Text: Komodo 9 apparently has a Selectivity parameter.  By lowering the default value of 80, you cause Komodo to examine more lines.
Comments.UserDisplayName: A passerby
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-02-21T16:10:18.360Z
Comments.Text: There is a special build of Stockfish called DeepFishMZ which has pruning disabled.
Comments.UserDisplayName: A passerby
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2014-04-14T11:27:15.550Z
Comments.Text: You need to define your criteria better, if it also looks for material advantage then it's apparently doing a positional evaluation, and I wouldn't call that "pure brute force" anymore. There are also engines specializing in solving problems, but I don't know if they are "pure brute force".
Comments.UserDisplayName: RemcoGerlich
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2014-04-14T11:30:22.357Z
Comments.Text: If it's looking for material advantage, it should only count the pieces on the board with their standard values. Not much calculations there. Basically, just to test if every possible outcome is good for one side. An "engine" that just checks for mate would meet the criteria as well.
Comments.UserDisplayName: chaosflaws
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2014-04-15T00:52:47.877Z
Comments.Text: A pure brute force engine would not be very strong due to its inability to weed out unpromising lines, and therefore, would be lacking depth. However, I am sure that someone has a project on github, that does just that: brute force chess engine.
Comments.UserDisplayName: Akavall
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2014-04-15T05:51:08.763Z
Comments.Text: On the other hand, pruning is not very helpful when you are trying to *find out with absolute certainty* that a certain position is won/lost.
Comments.UserDisplayName: chaosflaws
Tags: <analysis><theory><engines>
Title: Are there brute force engines which examine all possible moves to each depth?
ThreadText: # Are there brute force engines which examine all possible moves to each depth?
  
  (Asked by: username_0 on 2014-04-14)
  
  Are there chess engines that carry out brute force search, looking at all possible moves to each depth? An engine like this could be used to generate for solutions to tactical puzzles where the key move gets pruned by engines with selective search.
  
  **Tags:** analysis, theory, engines
  
  > **Comments:**
  > **username_2**: You need to define your criteria better, if it also looks for material advantage then it's apparently doing a positional evaluation, and I wouldn't call that "pure brute force" anymore. There are also engines specializing in solving problems, but I don't know if they are "pure brute force".  
  > **username_0**: If it's looking for material advantage, it should only count the pieces on the board with their standard values. Not much calculations there. Basically, just to test if every possible outcome is good for one side. An "engine" that just checks for mate would meet the criteria as well.  
  > **username_3**: A pure brute force engine would not be very strong due to its inability to weed out unpromising lines, and therefore, would be lacking depth. However, I am sure that someone has a project on github, that does just that: brute force chess engine.  
  > **username_0**: On the other hand, pruning is not very helpful when you are trying to *find out with absolute certainty* that a certain position is won/lost.  
  > **username_1**: Answer: Rybka Winfinder and the Tactical mode of Houdini were designed for use in solving problems, and will examine a wider range of lines than most engines.  
  > **username_1**: Komodo 9 apparently has a Selectivity parameter.  By lowering the default value of 80, you cause Komodo to examine more lines.  
  > **username_1**: There is a special build of Stockfish called DeepFishMZ which has pruning disabled.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_4 on 2014-04-22. Score: 1
  
  The answer is yes and no.
  
  <http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/chess-programming-part-iv-basic-search-r1171>
  Has a pretty good explanation on how chess engine works.
  
  In Chess, for example, a typical branching factor in the middle game would be about 35 moves. That is, after every move, there will be around 35 possible valid moves.
  
  Using a "smart brute force algorithm" (aka Min-Max search), the time complexity of the algorithm is O( B^n ). That is, you need around that B^n operations n-ply search.
  
  An 8-ply search of a chess position would need to explore about 1.5 million possible paths! That is a LOT of work. Adding a ninth ply would make the tree balloon to about 50 million nodes, and a tenth, to an impossible 1.8 billion! A typical game has 30-40 moves, so you will need to search for 30^35 - 40^35 positions.
  
  Assuming your CPU is running at 3GHz, and it takes only one clock cycle to analyze one position, it will take more than 1x10^42 years to complete the search. So short answer is no.
  
  However, endgames with small number of pieces have been thoroughly analyzed, and can be determined if mate is possible. By August 2012, tablebases had solved chess for every position with up to seven pieces (According to wiki <http://en.wikipedia.org/wiki/Endgame_tablebase>)
  
  
  ---
  
  