2.1 Min-Max方法
假设在博弈过程中,对抗者1总是选择使得博弈值最小的移动,那么作为对手的对抗者2则总会选择是的博弈值最大的移动,对抗者1称为min,对抗者2称为max.由于博弈双方是交替移动的,所以博弈树的结点及其父结点分属于两个对抗者中的一个,他们的种类(type)分属max和min.博弈树上的每个结点对应于一个深度(depth),叶结点的深度为0.因此,在任意的结点node,对博弈双方均最优的博弈值为[3]:

由此,很自然地得出Min-Max算法,用来求出满足一些条件的二人零和博弈问题的博弈值:
MiniMax(node)
1: if node.depth = 0 then
2: return Evaluate(node)
3: if node.type = max then
4: score ← -∞
5: else
6: score ← +∞
7: for i ← 1 to node.branch.length
8: new_node ← Traverse(node, node.branch[i])
9: value ← MiniMax(new_node)
10: if node.type = max then
11: if value > score then
12: score ← value
13: else
14: if value < score then
15: score ← value
16: return score
上述伪代码中,结点node各自的有种类(max或者min结点),分支(branch).Evaluate()函数就是叶结点的估值函数.Traverse()函数用于产生node的第i个分支(node.branch[i]).
Min

本文介绍了Min-Max方法在并行博弈树搜索中的应用,该方法基于深度优先搜索策略,用于求解二人零和博弈的最优解。通过Nega-Max简化形式,可以消除max和min节点的区别,使每个节点的目标都是最大化其价值。在Nega-Max中,评价函数也需要相应调整,以适应节点类型的转换。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



