搜索——对抗搜索(Adversarial search)

本文介绍了对抗搜索在博弈中的应用,包括极小极大算法、多人博弈策略、Alpha-Beta剪枝技术以及蒙特卡洛树搜索。极小极大算法通过递归求解最优策略,但存在指数级时间复杂度问题,Alpha-Beta剪枝能有效减少搜索空间。蒙特卡洛树搜索则采用样本模拟,避免了启发式函数的需要,能在有限资源下深入探索游戏树。
摘要由CSDN通过智能技术生成

一、定义

我们考虑的对抗搜索是指有完整信息的确定性的轮流行动的两个游戏者的零和游戏。解释是,在确定的、完全可观察的环境中的两个Agent必须轮流行动,在游戏结束时效用值总是相等并且符号相反。零和博弈:同一游戏中所有选手的总收益都一样的情况。如:0+1,1+0,1/2+1/2。

S_{0}:初始状态。

PLAYER(s):定义此时轮到谁行动。

ACTIONS(s):返回此状态下的合法移动集合。

RESULT(s,a):转移模型,定义行动的结果。

TERMINAL-TEST(s):终止测试。

UTILITY(s,p):效用函数(目标函数或收益函数)。

博弈树

图一:井字棋:叶结点上的效用值是对于MAX来说的。

二、博弈中的优化策略

给定一棵博弈树,最优策略可以通过检查每个结点的极小极大值来决定,记为MINIMAX\left ( n \right )。假设两个游戏者始终按照最优策略行棋,则结点的极小极大值就是对应状态的效用值(对于MAX而言)。MAX喜欢移动到有极大值的状态,而MIN喜欢移动到有极小值的状态

图二:上三角结点是MAX结点,代表轮到MAX走,倒三角是MIN结点。终止结点显示MAX的效用值(是确定知道的),其它结点标的是它们的极小极大值,也称为状态值,即当前状态所能得到的最佳效用值(对于MAX是极大值,对于MIN是极小值)。MAX在根结点的最佳行棋是A1,因为它指向有最高的极小极大值的后继。而MIN此时的最佳行棋是A11,因为它指向有最低的极小极大值的后继。

1、极小极大算法

通过以上介绍的策略,我们介绍一个基本的对抗算法——极小极大算法。该算法的基本假设是:对手每次都能做出最优的选择

使用递归算法自上而下一直前进到树的叶结点,然后随着递归回溯通过搜索树把极小极大值回传。该算法的框架即深度优先搜索模型,过程即游戏树的后序遍历(postorder traversal),总是先访问孩子结点后确定父结点的状态值

分析: (1)完备性:如果搜索树是有限的,则算法是完备的;(2)最优性:在对手是最优的假设下,算法是最优的;(3)时间复杂度:O\left ( b^{m} \right );空间复杂度:O\left ( bm \right );(与深度优先搜索相同)。

2、多人博弈 

若多于二人对抗时,则首先需要将每个结点上的单一效用值替换为向量

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值