人工智能第2版学习——博弈中的搜索2
书:人工智能第2版
有需要电子版的可以私信我。
这次学习第4章的负极大值算法、渐进深化法、地平线效应、概率游戏和预期极小化极大值算法、囚徒困境。
负极大值算法那
上次学的极小化极大值算法,有个麻烦的地方,那就是它的值对于MAX而言是越大越好,对于MIN则是越小越好。为了方便,就出现了负极大值。
如果用1表示胜利、0表示平局、-1表示失败。在评价某一层的节点i的值E(i)时,可以用公式:
E
(
i
)
=
M
a
x
(
−
E
(
j
1
)
,
−
E
(
j
2
)
,
.
.
.
,
−
E
(
j
n
)
)
\begin{align} E(i) = Max(-E(j_1),-E(j_2),...,-E(j_n)) \end{align}
E(i)=Max(−E(j1),−E(j2),...,−E(jn))
J
1
,
J
2
,
.
.
.
J
n
J_1,J_2,...J_n
J1,J2,...Jn是节点i的所有子节点。
看下面的图表:
每一层不需要关注是Max的还是MIN的,只需要把下面一层取反,然后取最大值。
渐进深化法
在有些比赛中,每步走子是有规定时间的,这时玩家必须在有限时间内进行启发式搜索,走子的好坏,取决于该时间内能够搜索的深度。为了避免自己超过时间,可以先搜索第一层,得到结果,如果还有时间,再搜索第2层,如果还有时间就继续搜索,知道时间不足以继续搜索。
地平线效应
如果你在海边,可以看到远处地平线有小船出现,但是你不知道它是从哪个方向来的。
联想到搜索算法,如果博弈树中的某一步走子,让你在很大的搜索步骤中都难以判断它的好坏,这就有点糟糕了。(这个书中解释不清,我按自己意思来的,后面16章好像有,到时候有问题我再改。)
概率游戏和预期极小化极大值算法
概率游戏
前面的各种算法,针对的都是根据当前状态,做出最好的走子,但是有些游戏是有概率的。我们选择某个走子,但是实际的走子情况是有概率性的,这种概率游戏叫非确定性游戏。
期望极小化极大值算法
这个算法就是在MAX层和MIN层之间加一层Chance层,看图:
MAX可以选择B或C。
选择B:有0.7的概率得到4,0.3的概率得到6。
选择C:有0.3的概率得到3,0.7的概率得到5。
因此算期望值:
E
(
B
)
=
0.7
∗
4
+
0.3
∗
6
=
4.6
E
(
C
)
=
0.3
∗
3
+
0.7
∗
5
=
4.4
\begin{align} E(B)=0.7*4+0.3*6=4.6 \\ E(C)=0.3*3+0.7*5=4.4 \end{align}
E(B)=0.7∗4+0.3∗6=4.6E(C)=0.3∗3+0.7∗5=4.4
最终,MAX选择B。
(书中给了Nim的例子,我感觉它图中有些标错了,我就不放出来了。)
囚徒困境
在前面的那些博弈中,我们做出选择,是需要根据对手的走子情况的,但是在囚徒困境中却不是这样。
看图:
其中year是指坐几年牢,这里要记住,A和B之间是被分开的,互相不知道对方目前的情况。
对于囚徒A,如果B选择背叛,那么A选择合作要坐10年牢,选择背叛则坐5年牢;如果B选择合作,那么A选择合作要坐1年牢,选择背叛则不用坐牢。
所以不管B选什么,A选择背叛对他来说收益最大。
对于B也一样。
纳什均衡
所以,如果A和B都是“理性人”,那么最终都会选择背叛。所以策略(A背叛,B背叛)是纳什均衡。
帕雷特最优
(A合作,B合作)是总的最优,这个策略称为帕雷特最优。
从这个例子可以看到,纳什均衡和帕雷特最优并不一定是一样的。
这章学完了,下一章是人工智能中的逻辑。
点个赞呗。