1、最小最大值方法简述
现在我们来看看博弈树节点标注的另一种方法:最小最大值方法。整个博弈树尽管大的出奇,然而在只有一部分有用的情况下,利用最小最大值方法是有其优点的,很容易推广使用。
比方说,竞赛的结果是以钱为赌注的。为方便起见,设赌金为一块钱。如果棋手赢的,他就获得一块钱;如果他输了,这输一块钱。在和局的情况下,他不输也不赢。
我们把棋手赢的钱称之为收益。如果棋手赢了,其收益为1;如果输了,收益为-1;和局时为0。
现在我们来定义一个节点的值。对于w节点其收益为1;l为-1;d为0。
我们用不着一定要先把节点标上w、d或l,然后再去注明它们的值,而是可以直接计算出它们的值。
前面我们已经知道,对于每一个叶节点,比赛的结果或者是赢、或者是输、或者是和局。因此我们先把比赛能赢的那些叶节点标上1,把和局的节点标上0,把输的节点标上-1。
如同我们前面说过的那样。从叶节点开始,其余节点按照其子节点的值来计算出它的值,一直到把根结点的值算出来。
这种计算后面所包含的想法是:棋手总是选择能得到最大收益的棋步;而对手总是选择通往最小收益的棋步。更确切地说,我们按下面的规则来计算每个节点的值:
轮到棋手走时,节点的值是其子节点之中的最大值。
轮到对手走时,节点的值为其子节点中的最小值。
到现在为止,最大最小值方法已经给我们提供了一个简明而有效的手段来标注博弈树的节点。然而,这种方法不是采用任意的标号,如前面所说的w、l或d来标注节点,而是用数字来标注。这样做使得我们能够很容易的推广这个方法,不用把节点的值局限于1、0或-1。
深度优先的最小最大值评价方法
现在我们回头来看看棋手对当前的棋局是如何考虑的,以及应如何决定下一步的走法。假设有了一种方法,它对任何棋局都可以给出所有的合法棋步,同时还能给出采用这些合法棋步中任何一步以后所形成的新的棋局。另外我们假设已经有了上面所谈到判断终局的方法。我们希望能决定棋手应走的棋步。
我们从当前的棋局开始,将其扩展,然后再扩展它的子棋局,如此类推。这样我们就得到了一个部分博弈树。但是,每一个结点在展开之前,我们都要先检测这个节点是否为终局。如果是终局那么就不展开这个节点;如果不是那么就展开它。
上述的扩展一直进行下去,直到所有的节点都不能再展开为止。最后我们得到了这样一个博弈树,它的根结点对应于当前的棋局而其叶节点对应于我们认为的终局。
应用最小最大值方法,我们对该博弈树的每一个结点都标注上一个值。如前所述,
现在我们来看看博弈树节点标注的另一种方法:最小最大值方法。整个博弈树尽管大的出奇,然而在只有一部分有用的情况下,利用最小最大值方法是有其优点的,很容易推广使用。
比方说,竞赛的结果是以钱为赌注的。为方便起见,设赌金为一块钱。如果棋手赢的,他就获得一块钱;如果他输了,这输一块钱。在和局的情况下,他不输也不赢。
我们把棋手赢的钱称之为收益。如果棋手赢了,其收益为1;如果输了,收益为-1;和局时为0。
现在我们来定义一个节点的值。对于w节点其收益为1;l为-1;d为0。
我们用不着一定要先把节点标上w、d或l,然后再去注明它们的值,而是可以直接计算出它们的值。
前面我们已经知道,对于每一个叶节点,比赛的结果或者是赢、或者是输、或者是和局。因此我们先把比赛能赢的那些叶节点标上1,把和局的节点标上0,把输的节点标上-1。
如同我们前面说过的那样。从叶节点开始,其余节点按照其子节点的值来计算出它的值,一直到把根结点的值算出来。
这种计算后面所包含的想法是:棋手总是选择能得到最大收益的棋步;而对手总是选择通往最小收益的棋步。更确切地说,我们按下面的规则来计算每个节点的值:
轮到棋手走时,节点的值是其子节点之中的最大值。
轮到对手走时,节点的值为其子节点中的最小值。
到现在为止,最大最小值方法已经给我们提供了一个简明而有效的手段来标注博弈树的节点。然而,这种方法不是采用任意的标号,如前面所说的w、l或d来标注节点,而是用数字来标注。这样做使得我们能够很容易的推广这个方法,不用把节点的值局限于1、0或-1。
深度优先的最小最大值评价方法
现在我们回头来看看棋手对当前的棋局是如何考虑的,以及应如何决定下一步的走法。假设有了一种方法,它对任何棋局都可以给出所有的合法棋步,同时还能给出采用这些合法棋步中任何一步以后所形成的新的棋局。另外我们假设已经有了上面所谈到判断终局的方法。我们希望能决定棋手应走的棋步。
我们从当前的棋局开始,将其扩展,然后再扩展它的子棋局,如此类推。这样我们就得到了一个部分博弈树。但是,每一个结点在展开之前,我们都要先检测这个节点是否为终局。如果是终局那么就不展开这个节点;如果不是那么就展开它。
上述的扩展一直进行下去,直到所有的节点都不能再展开为止。最后我们得到了这样一个博弈树,它的根结点对应于当前的棋局而其叶节点对应于我们认为的终局。
应用最小最大值方法,我们对该博弈树的每一个结点都标注上一个值。如前所述,