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
結果の値が何であるかはわかりませんが、それも必要です。あなたは2つのものを返す必要があります。正確な答えは、あなたの 'node'、プログラミング言語などの定義に依存します。 –
@HenkHoltermanなぜ結果値を返す必要がありますか?たとえば、私のツリーがバイナリ検索ツリーの場合、値が何であったかではなく、2つのノードのどちらを選択するのかを知る必要があります。もちろん、選択するノードを決定するためにはその値が必要ですが –
あなたは自分自身に答えました。「どちらを決定するか」 –