我正在教自己minimax算法,我只是有几个问题我希望有人可以回答。
首先在第05行 - :=
是什么意思?
同样在第08/14行,我注意到方法max
或min
被调用了两个参数,这个方法会返回什么?它会返回到目前为止发现的最大值或最小值吗?是否存在伪代码示例,还是我误解了?
01 function minimax(node, depth, maximizingPlayer)
02 if depth = 0 or node is a terminal node
03 return the heuristic value of node
04 if maximizingPlayer
05 bestValue := −∞
06 for each child of node
07 v := minimax(child, depth − 1, FALSE)
08 bestValue := max(bestValue, v)
09 return bestValue
10 else (* minimizing player *)
11 bestValue := +∞
12 for each child of node
13 v := minimax(child, depth − 1, TRUE)
14 bestValue := min(bestValue, v)
15 return bestValue
答案 0 :(得分:2)
bestValue := −∞
:将否定无穷大(最低可能的数字)分配给bestValue
max(bestValue, v)
返回bestValue
或 v
,无论哪个更大 min(bestValue, v)
返回bestValue
或 v
,以较小 由于这是伪代码,我们可以假设您将用于实现它的任何语言都提供函数max
和min
。如果没有,您可以自己轻松实现它们。