我正在使用Alpha Beta修剪的MiniMax實現一個Othello遊戲的AI。我已經實現了Alpha Beta算法,告訴我可以獲得的價值,但不知道我應該選擇哪個節點?所以我的問題是如何使用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
_不是什麼結果值_ - 但你也需要這樣做。你需要返回2件事情。一個確切的答案將取決於你的'節點',編程語言等的定義。 –
@HenkHolterman爲什麼我需要返回結果值?例如,如果我的樹是二叉搜索樹,我只需要知道要選擇哪個節點,而不是該值是什麼?當然,儘管我需要這個值來確定選擇哪個節點 –
你剛剛回答自己:「確定哪個...」 –