并行博弈树搜索算法-第2篇 博弈过程的抽象:MinMax方法

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

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

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值