了解minmax伪代码

时间:2016-03-01 11:27:00

标签: pseudocode minimax

我正在教自己minimax算法,我只是有几个问题我希望有人可以回答。

首先在第05行 - :=是什么意思?

同样在第08/14行,我注意到方法maxmin被调用了两个参数,这个方法会返回什么?它会返回到目前为止发现的最大值或最小值吗?是否存在伪代码示例,还是我误解了?

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

1 个答案:

答案 0 :(得分:2)

  • bestValue := −∞:将否定无穷大(最低可能的数字)分配给bestValue
  • max(bestValue, v)返回bestValue v,无论哪个更大
  • min(bestValue, v)返回bestValue v,以较小
  • 为准

由于这是伪代码,我们可以假设您将用于实现它的任何语言都提供函数maxmin。如果没有,您可以自己轻松实现它们。