在一般关于博弈树书籍文献上,看到的博弈树例子都是没有连续同向节点,即连续两层以上的max-max节点或者min-min节点,都是反向节点交替出现。
实际上,有连续同向节点的博弈问题是很常见的,即一方将进行连续两次决策。因此,博弈树上并非不能存在此类节点。只是如果把一方的连续两次决策的视为一个决策,那么对应的博弈树上的连续同向节点合并为一个节点。因此,整理过的等价博弈树上看不到max-max节点和min-min节点。
之所以要指出这一点,是因为对某些实际问题,将连续同向节点合并,可能增加问题的复杂性,和解决的难度。特别是:某些问题自上而下的决策步骤本身就已经影响到了α、β值。比如:对于双方抢分的游戏,一方得分就意味着对方能得到分数上界就减少了,并不需要搜索到底。而一般的书籍上的博弈树都是要搜索到底层,才能确定得分,进而判断α、β值。
因此,有必要讨论两个问题:
在博弈过程中有得分的情况和出现连续同向节点情况的α、β值选取和剪枝原则。
一、在博弈过程中有得分的情况
如前所述,在博弈进行中,根据博弈规则可以判定一方或双方得分,并且双方已经得到的分数不会被再次扣除(不考虑犯规受罚情况),而且双方得分的总和确定或者会减少。例如:双方抢分的游戏。在这种情况下,α、β要分为两类:
第一类(α1、β1)是根据博弈规则直接可以判断出节点的双方得分上下界(本文记为α1、β1)。
只要双方都不犯规,α1、β1就都不可能被突破。其只受从上到下的进程影响,不会受下层节点的影响。
对任何节点:α1=上层节点α1+本步得分;β1=上层节点β1-本步得分。
显然,如果α1=β1=v,可以直接为本节点赋值v,同时v也是其所有下层节点的值,提前结束搜索。
说明三点:
1)这并非剪枝,而且不能排除该节点就是均衡解。
2)反过来不成立:即便某节点的值已经确定,也并不能就此确认该节点的α1、β1。
3)α1、β1虽然是节点值的上下界,但并不保证是上下确界,实际计算时允许放松。α1、β1不进行回溯计算。
第二类(α2,β2)是根据已知的搜索到末端的结果,基于双方都理性的假设而得出的上下界,这就是其他书籍上用的α、β,这里记为α2,β2。其既可以是自上而下继承,也可以是自下而上回溯。
任意节点,对于仅从其下层节点搜索回溯而得的α2、β2,始终成立:α1≤α2≤β2≤β1
由于区分了α1、β1和α2、β2,增加如下一条剪枝判断原则(剪枝原则3)
对于max节点,如果本节点α2≥某下层(不止下一层)max节点β1,则对该下层节点剪枝。
对于min节点,如果本节点β2≤某下层(不止下一层)min节点α1,则对该下层节点剪枝。
即:下层节点依规则判定的最优结果尚不及某个可选旁枝上的已知结果(满足条件的α2、β2必然是从旁支上回溯得到),因此也不必进行搜索了。
二、连续同向节点不合并情况下的α2,β2变化
存在α1、β1情况下,在有连续同向节点的实际问题里,如果把同向节点进行合并,问题反而会变得复杂,因此有必要讨论连续同向节点未经整理合并的情况。
很显然,α1、β1是不受影响的。
1、本层α2、β2与下层α2、β2的继承和回溯关系
对max-max节点:
继承时,如果发现本层节点的α2<上层节点α2,则本层节点的α2修改为上层节点的α2
回溯时,如果发现本层节点的α2<下层某子节点α2,则本层节点的α2修改为下层子节点的α2
β2虽然不能从上一层的max节点继承,但可以多代直接继承(即:β2可以从再上层的min节点处直接继承)。因为可以视为等价博弈树上的一个节点
对min-min节点:
继承时,如果发现本层节点的β2>上层节点β2,则本层节点的β2修改为上层节点的β2
回溯时,如果发现本层节点的β2>下层某子节点β2,则本层节点的β2修改为下层子节点的β2
需要说明:虽然连续同向节点之间的最优界不能回溯和继承,但是可以对整理合并后的博弈树进行回溯和继承
例如:
父节点是min节点β2,子节点是max节点,孙节点也max节点,则可以把父节点的β2传递给子节点和孙节点。
α2、β2的统一表述(回溯的)
如已搜索完:
则直接取下层最大值或最小值确定下层值。
如未搜索完
对max-min节点:本层α2=下层β2(暂时的)
对min-max节点:本层β2=下层α2(暂时的)
对max-max节点:本层α2=下层α2(暂时的)
对min-min节点:本层β2=下层β2(暂时的)
三、综合剪枝原则:
剪枝原则1
对任何节点,出现α2>β2(通常一是继承的,一是回溯的),则剪去本节点;
连续同向节点同样成立,但是需要注意的是:此时若还有下层未搜索完毕的与本节点连续的同向节点时,不能确定本层节点的β2(对max节点)和α2(对min节点),即:不能认为已经找到了最好情况。
剪枝原则2
上层max节点的α2>下层(不止是下一层)max节点的β2,下层的max节点剪枝
上层min节点的β2<下层(不止是下一层)min节点的α2,下层的min节点剪枝
剪枝原则3
见前文
四、另需要注意:不能以继承来的α2、β2直接反推回溯其上层节点,否则会形成逻辑混乱。
(待修改补充)