极小极大算法
在竞争环境中,不同的agent的目标是有冲突的,这就引出了对抗搜索问题,也就是博弈问题。
首先考虑最简单的两人参与的游戏:MAX和MIN。MAX先行,两人轮流行动,直至游戏结束。游戏由以下部分组成:
- S0:初始状态。
- PLAYERS(S):定义此时该谁行动。
- ACTIONS(S):此状态下的合法移动的集合。
- RESULT(S,A):转移模型,定义行动的结果。
- TERMINAL-TEST(S):终止测试,判断游戏是否结束。游戏结束的状态为终止状态。
- UTILITY(S,P):效用函数,定义游戏者P在终止状态S下的数值。
博弈树:由S0、ACTIONS和RESULT组成。其结点为状态,边是移动。
下面介绍极小极大算法。
给定一颗博弈树,最优策略可以通过检查每个结点的极小极大值来确定,记为MINMAX(S)。
在选择时,MAX喜欢移动到有极大值的状态,MIN喜欢移动到有极小值的状态。所以有如下公式:
M I N M A X ( S ) = { = U T I L I T Y ( S ) S 为 终 止 状 态 = m a x a ∈ A C T I O N S ( S ) ( M I N M A X ( R E S U