我应该为Minimax使用什么类型的树

时间:2015-01-07 08:30:07

标签: java tree artificial-intelligence minimax

我正在构建一个跳棋应用程序。

我已经开始构建AI并且我已经阅读了很多关于minimax的内容。

有些东西我无法理解,我应该使用什么类型的树来构建“游戏树”(我在JAVA编程)

2 个答案:

答案 0 :(得分:2)

一般来说,minimax游戏树很简单:每个节点代表一个游戏状态,并包含一个代表所有允许移动的子节点的集合。

这是一个可能的实现:

class Node {
    private Board state;
    private Map<Move, Node> children;
}

答案 1 :(得分:0)

也可以在不明确编码游戏树的情况下实现minimax算法。在每个递归步骤中,移动实际上是在游戏板的某些表示上完成的,然后再次重新调用评估,并且在评估之后不执行移动以进行评估。这种方法具有更高的内存效率,因为只有所考虑的游戏树的节点才被明确表示。在这种方法中,调用堆栈和游戏板表示可以一起解释为游戏树的节点迭代器。