Answers.Body: <p>There're some problems with your question:</p>
  
  <ul>
  <li>Alpha-beta pruning doesn't make you search faster, it makes you search <em>further</em>. For illustration (these numbers are not accurate) if your computer is searching at 1 million nodes (here a "node" is a position) per second, without alpha-beta pruning you might only make it 5 ply deep. With it, you might reach 10 ply.</li>
  <li>Obviously, how fast you search is going to depend on hardware. With sufficiently powerful hardware you can search 1.8 billion nodes per second. For example right now, <a href="http://tests.stockfishchess.org/tests" rel="nofollow noreferrer">Fishtesting</a> is running with this hardware: 650 machines 5048 cores 1.21M nps (6127.86M total nps) 8825 games/minute. That's 6.1 billion nodes per second.</li>
  <li>However note that Fishtesting is running with 5048 cores. A typical desktop computer might have 4 cores, so this is fantastically powerful hardware. If you're getting 1.8 billion nodes per second, and you have reasonably normal hardware, your eval function is probably very simple compared to the top engines.</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-25T21:42:08.577Z
Answers.Text: Additionally, alpha-beta works best when it happens to test the best move first at most levels, in other words when your eval function is quite good
Answers.UserDisplayName: Hagen von Eitzen
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-28T22:57:48.883Z
Answers.Text: @Allure Searching further in the same amount of time could be considered equivalent to searching faster though.
Answers.UserDisplayName: Inertial Ignorance
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-28T23:20:15.023Z
Answers.Text: @InertialIgnorance I wouldn't say they're equivalent. Speed is measured directly by nps, while depth is achieved by pruning.
Answers.UserDisplayName: Allure
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-28T23:24:35.893Z
Answers.Text: @Allure mm ok I see what you mean: so the actual processing speed of the computer on evaluating each individual node. I was referring to the speed of the overall search algorithm.
Answers.UserDisplayName: Inertial Ignorance
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-09-25T00:23:15.920Z
Answers.LastActivityDate: 2019-09-25T00:31:29.830Z
Answers.LastEditDate: 2019-09-25T00:31:29.830Z
Answers.UserDisplayName: Allure
Body: <p>Can a minimax function with just alpha beta pruning really evaluate 1.8 billion chess positions (3 ply = 356) in just a second?</p>
  
  <p>My chess engine, which uses minimax with only alpha beta pruning, takes 30 seconds to search 2 ply deep, evaluate the leaves, and determine the best move.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-09-24T22:05:41.230Z
Comments.Text: Wouldn't 3 ply be roughly 30^3 = 27000 positions? Since there are typically around 30 possible choices for each move. Given this, 2 ply is around 900 positions so your engine shouldn't be taking close to 30 seconds.
Comments.UserDisplayName: Inertial Ignorance
Tags: <engines><minimax>
Title: Speed of minimax with alpha beta pruning in chess engines
ThreadText: # Speed of minimax with alpha beta pruning in chess engines
  
  (Asked by: username_0 on 2019-09-24)
  
  Can a minimax function with just alpha beta pruning really evaluate 1.8 billion chess positions (3 ply = 356) in just a second?
  
  My chess engine, which uses minimax with only alpha beta pruning, takes 30 seconds to search 2 ply deep, evaluate the leaves, and determine the best move.
  
  **Tags:** engines, minimax
  
  > **Comments:**
  > **username_1**: Wouldn't 3 ply be roughly 30^3 = 27000 positions? Since there are typically around 30 possible choices for each move. Given this, 2 ply is around 900 positions so your engine shouldn't be taking close to 30 seconds.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2019-09-25. Score: 2
  
  There're some problems with your question:
  
  * Alpha-beta pruning doesn't make you search faster, it makes you search *further*. For illustration (these numbers are not accurate) if your computer is searching at 1 million nodes (here a "node" is a position) per second, without alpha-beta pruning you might only make it 5 ply deep. With it, you might reach 10 ply.
  * Obviously, how fast you search is going to depend on hardware. With sufficiently powerful hardware you can search 1.8 billion nodes per second. For example right now, [Fishtesting](http://tests.stockfishchess.org/tests) is running with this hardware: 650 machines 5048 cores 1.21M nps (6127.86M total nps) 8825 games/minute. That's 6.1 billion nodes per second.
  * However note that Fishtesting is running with 5048 cores. A typical desktop computer might have 4 cores, so this is fantastically powerful hardware. If you're getting 1.8 billion nodes per second, and you have reasonably normal hardware, your eval function is probably very simple compared to the top engines.
  
  > **Comments:**
  > **username_3**: Additionally, alpha-beta works best when it happens to test the best move first at most levels, in other words when your eval function is quite good  
  > **username_1**: @username_2 Searching further in the same amount of time could be considered equivalent to searching faster though.  
  > **username_2**: @username_1 I wouldn't say they're equivalent. Speed is measured directly by nps, while depth is achieved by pruning.  
  > **username_1**: @username_2 mm ok I see what you mean: so the actual processing speed of the computer on evaluating each individual node. I was referring to the speed of the overall search algorithm.  
  
  ---
  
  