博弈树的搜索
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
α-β
α值为MAX节点(“或”节点)倒推值的下确界
——当前子节点中的最小倒推值
β值为MIN节点(“与”节点)倒推值的上确界
——当前子节点中的最大倒推值
α剪枝:若任一MIN节点(“与”节点)的β值小 于或等于其父节点(MAX节点(“或”节点)) 的α值(即不能升高其父节点的α值),则可中止 该MIN节点以下的搜索过程。这个MIN节点最终的 倒推值就设定为这个β值
极小极大搜索过程
极大极小过程步骤: (1)以当前考察的态势P为根节点,生成指定深度 的博弈树。 (2)根据静态估计函数f计算各叶节点的估计值。 (3)自底向上计算各个非叶节点的估计值,计算的 方法是MAX节点取其子节点的最大值,MIN节点取 其子节点的最小值。 (4)将根节点的倒推值对应的策略作为当前的最佳 策略。
α-β剪枝技术
采用有界深度优先策略,当生成规定深度的节点 时,计算叶节点的静态估值,并倒推非端节点的 估值。根据倒推结果,在非端节点的向下分枝中, 剪掉那些目前未知,但无论如何都不会改变非端 节点倒推值的未扩展分枝。
– 用α-β剪枝技术,搜索深度为3时,每走1步不到2 min, 搜索的节点数小于1.5×106个;而搜索深度为4时,每 走1步要用160 min,搜索的节点数小于2×108个。
1. 若 P是 MAX的必胜局, 则 e(P) = +∞ ; 2. 若 P是 MIN的必胜局, 则 e(P) = -∞ ; 3. 若P对MAX、MIN都是胜负未定局,则
e(P) = e(+P)-e(-P) 其中,e(+P)表示棋局 P上有可能使× 成三子一线的数 目;e(-P)表示棋局 P上有可能使 ○成三子一线的数目。
– 以棋盘为15×15大小的五子棋为例,人机对弈,用极大极小搜索 算法,搜索深度为3时,计算机(配 置:CUP赛场1.7 G,内存 DDR266 256 M)每走1步要用10 min,搜索的节点数超过了107 个;而搜索深度为4时,每走1步要用10个多小时,搜索节点数超 过了2×109个。
如果能边生成节点边对节点估值,并根据一定的条件,提 前剪去一些没用的分枝,那么就可以有效提高搜索效率。 在这种思想的基础上,人们提出了α-β剪枝技术。
中国象棋
一盘棋平均走50步,总状态数约为10的161次方。 假设1毫微秒走一步,约需10的145次方年。 结论:不可能穷举。
博弈树是与/或树
双方都希望自己能够获胜。因此,当任何一方走步时, 都是试图选择对自己最为有利,而对另一方最为不利的 行动方案。
从MAX方的观点看,在博弈过程的每一步,可供自己选择 的行动方案之间是“或”的关系,原因在于选择哪个方案完 全是由自己决定的;而可供MIN选择的行动方案之间则是 “与”的关系,原因是主动权掌握在MIN手里,任何一个方
案都有可能被MIN选中,MAX必须防止那种对自己最为不利 的情况的发生。
这样,从选手的角度看,博弈树就是一棵与或树,
其特点是:
(l)博弈的初始状态是初始节点;
(2)博弈树中的“或”节点和“与”节点逐层交替出现
(3)整个博弈过程始终站在某一方的立场上,所有能使自己 一方获胜的终局都是本原问题,相应的节点是可解节点;所 有使对方获胜的终局都是不可解节点。
极小极大搜索过程
极小极大搜索策略是考虑双方对弈若干步之后,从可能 的走步中选一步相对好棋的走法来走,即在有限的搜索深 度范围内进行求解。为此要定义一个静态估计函数f,以便 对棋局的势态(节点)作出优劣估值,这个函数可根据势 态优劣特征来定义(主要用于对端节点的“价值”进行度 量)。
一般规定有利于MAX的势态,f(p)取正值,有利于 MIN的势态,f(p)取负值,势均力敌的势态,f(p)取0 值。若f(p)=+∞,则表示MAX赢,若f(p)=-∞,则 表示MIN赢。下面的讨论规定:顶节点深度d=0,MAX代表 程序方,MIN代表对手方,MAX先走。
一字棋游戏
例
f(+P)=6 f(-P)=4 f(P) = f(+P) - f(P) =2
在搜索过程中,具有对称性的棋局认为是同一 棋局,以大大减少搜索空间。
对称棋局的例子
用极大极小搜索方法为MAX寻找第一步棋的走法。 (搜索深度为2)
α-β剪枝
极大极小过程是先生成与/或树,然后再计算各节点的估 值,即生成节点和计算估值这两个过程是分离的。在搜索 时,需要生成规定深度内的所有节点,因此搜索效率较低。
博弈树搜索
所谓双人完备信息,就是两位选手对垒,轮流 走步,这时每一方不仅都知道对方过去已经走 过的棋步,而且还能估计出对方未来可能的走 步。对弈的结果是一方赢(另一方则输),或 者双方和局。这类博弈的实例有:一字棋、余 一棋、西洋跳棋、国际象棋、中国象棋、围棋 等。对于带机遇性的任何博弈,因不具有完备 信息,不属这里讨论范围,但有些论述可推广 到某些机遇博弈中应用。
β剪枝:若任一MAX节点(“或”节点)的α值 大于或等于其父节点( MIN节点(“与”节点)) 的β值(即不能降低其父节点的β值),则可以中 止该MAX节点以下的搜索过程。这个MAX节点最 终的倒推值就设定为这个α值。
=≥44 S0
=≤44 A
≤0 B
=≥44 C
极小极大过程
0
0
3
1 1
极大
1
极小
6
0
-3
3 -3
-3 -2
1
-3
6
-3
0 5 -3 3 3 -3 0 2 2 -3 0 -2 3 5 4 1 -3 0 6 8 9 -3
一Baidu Nhomakorabea棋游戏
设有一个三行三列的棋盘,两个棋手轮流走步,每 个棋手走时往空格上摆一个自己的棋子,谁先使自己 的棋子成三子一线为赢。设程序方MAX的棋子用(×) 表示,对手MIN的棋子用(○)表示,MAX先走。静 态估计函数f(p)规定如下:
博弈问题可以用产生式系统的形式来描述,例如 中国象棋,综合数据库可规定为棋盘上棋子各种 位置布局的一种描述,产生式规则是各类棋子合 法走步的描述,目标则可规定为将(帅)被吃掉, 规则作用于数据库的结果便生成出博弈图或博弈 树。下面举一个简单的例子说明博弈问题可用与 或图表示,并讨论搜索策略应考虑的实际问题。