我正在使用带有 Alpha Beta 修剪的 MiniMax 为 Othello 游戏实现 AI。我已经实现了一个 Alpha Beta 算法,它告诉我可以获得的值,但不告诉我应该选择哪个节点?所以我的问题是如何使用 Alpha-Beta 来告诉我应该选择哪个节点,而不是结果值是什么。这是我的 Alpha-Beta 算法的伪代码。
01 function alphabeta(node, depth, α, β, maximizingPlayer)
02 if depth = 0 or node is a terminal node
03 return the heuristic value of node
04 if maximizingPlayer
05 v := -∞
06 for each child of node
07 v := max(v, alphabeta(child, depth – 1, α, β, FALSE))
08 α := max(α, v)
09 if β ≤ α
10 break (* β cut-off *)
11 return v
12 else
13 v := ∞
14 for each child of node
15 v := min(v, alphabeta(child, depth – 1, α, β, TRUE))
16 β := min(β, v)
17 if β ≤ α
18 break (* α cut-off *)
19 return v