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

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-Max方法对博弈树进行深度优先搜索.相对于广度优先搜索,深度优先搜索需要非常少的存储空间,而且存储空间的需求不随树的大小而指数增长.

通过Min-Max方法可以找到对于博弈双方都是最优的博弈值,称这个博弈值为最小最大值(minimax value).

2.2 Min-Max方法的Nega-Max简化形式

Min-Max方法可以通过消除max结点和min结点的区别来进行简化[4].简单地将递归函数MiniMax()返回值取负再返回,就可以将所有的min结点都转化为max结点.注意此时还要改变评价函数Evaluate()为EvaluateNegaMax(),使得叶结点根据结点的种类(max或者min)来返回估值.

NegaMax(node)
1:	if node.depth = 0 then
2:		return EvaluateNegaMax(node)
3:	score ← -∞
4:	for i ← 1 to node.branch.length
5:		new_node ← Traverse(node, node.branch[i])
6:		value ← NegaMax(new_node)
7:		if value > score then
8:			score ← value
9:	return score
EvaluateNegaMax(node)
1:	if node.type = max then
2:		return Evaluate(node)
3:	else
4:		return -Evaluate(node)

在经过这样的简化之后,除了叶结点每个结点的策略将不再区分种类(max或者min).对每个结点的搜索都尝试让结点值(value)最大.

本文章欢迎转载,请保留原始博客链接http://blog.csdn.net/fsdev/article


[3] Stuart Russell and Prter Norvig (1995). Artificial Intelligence, AModern Approach. Prentice-Hall, Egnlewood Cliffs, 1995.

[4] Knuth, D.E. and Moore, R.W. (1975). An Analysis of Alpha-Beta Pruning.Artificial Intelligence, 6:293–326.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
并行图论算法是一种在计算机系统中并行执行的算法,用于解决图论问题。PDF(Parallel Depth-First)算法是一种在图中进行深度优先搜索的并行算法。 PDF算法的基本思想是将图划分为若干个子图,然后利用多个处理单元并行地对各个子图进行深度优先搜索。在搜索过程中,每个处理单元都可以独立地访问并处理自己负责的子图的顶点和边。当某个处理单元搜索完自己负责的子图之后,可以向其他处理单元发送消息以获取相邻子图的信息。通过相互通信和共享信息,处理单元可以一起协作完成整个图的搜索过程。 与串行的深度优先搜索相比,PDF算法具有以下优势: 1. 加速搜索:由于使用了多个处理单元并行搜索,PDF算法可以大大加快图的遍历过程,提高搜索的效率。 2. 资源利用率高:多个处理单元可以同时工作,充分利用了计算机系统的资源。 3. 可扩展性强:PDF算法可以根据计算机系统的性能和图的规模来调整处理单元的数量,从而适应不同规模的图论问题。 4. 并行度高:由于各个处理单元可以独立地处理子图,PDF算法具有较高的并行度,能够充分发挥计算机系统的并行计算能力。 总而言之,PDF算法是一种适用于并行计算的图论算法,可以利用计算机系统中多个处理单元的并行性能来加速图的搜索过程,提高计算效率和资源利用率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值