Я реализую AI для игры Othello, используя MiniMax с обрезкой Alpha Beta. Я реализовал алгоритм 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 Почему мне нужно вернуть результирующее значение? Если, например, мое дерево было двоичным деревом поиска, мне просто нужно было знать, какой из двух узлов выбрать, а не значение? Конечно, хотя мне нужно это значение, чтобы определить, какой узел выбрать. –
Вы просто ответили сами: «чтобы определить, какой ...» –