I have developed an engine and I recently implemented null move pruning.
However I don't understand why we pass - beta + 1 as an argument in the function call (like this):
Code: Select all
-alphabeta(depth-1-R,-beta,-beta+1)Moderator: Ras
Code: Select all
-alphabeta(depth-1-R,-beta,-beta+1)Because with null move, your alpha is (beta-1), hence -alpha = -(beta-1) = -beta+1. You're trying to see whether you get a fail-high, i.e. whether you get a score of at least beta returned. Anything below beta would not be a fail-high, so you make the window as small as possible, that's why you choose alpha as beta-1.DaOnlyOwner wrote: ↑Fri Oct 29, 2021 12:19 amHowever I don't understand why we pass - beta + 1 as an argument in the function call (like this):Why not how it's always done with -alphabeta(depth-1-R,-beta,-alpha)?Code: Select all
-alphabeta(depth-1-R,-beta,-beta+1)
Another point to the already mentioned ones is, that most people do not use nullmove at a pv node.DaOnlyOwner wrote: ↑Fri Oct 29, 2021 12:19 am Hello,
I have developed an engine and I recently implemented null move pruning.
However I don't understand why we pass - beta + 1 as an argument in the function call (like this):Why not how it's always done with -alphabeta(depth-1-R,-beta,-alpha)?Code: Select all
-alphabeta(depth-1-R,-beta,-beta+1)