Hex棋评估函数的设计

来源:互联网 发布:勿谓言之不预也 知乎 编辑:程序博客网 时间:2024/06/07 09:27

该文章由成都理工大学数字媒体技术协会疯狂Hex传说小组翻译,由于水平有限(英语拖绩点那种),不恰当或不正确部分还请海涵,您可以通过下面的链接下载原文查看。

该文章翻译自《AreBeesBetterThanFruitfliesThesis》 下载原文


第五章、女王蜂的评估函数

  一个游戏程序需要一个很好的评估函数来指导搜索。我们显然无法立即为Hex构造一个有意义的评估函数。举个例子,不像其它的棋类游戏,在Hex棋中,物质平衡(Material Balance)和机动性性(Mobility)的概念毫无作用。本章包含了Hex棋评估函数的一些新想法。这些新想法已经在Hex程序Queenbee中实现了。这个评估函数通过一个叫做“双距离”的非常规度量方式计算了棋盘上所有未被占领的点到每一边的距离。得到的这个距离被称为“潜力”。

 

5.1 双距离(Two-distance)

  假设具有一个将顶点p映射到他的邻接点集的邻接函数n(p)的图τ,有一个概括了传统距离度量标准的距离度量标准dz

  

  传统的度量标准对应于z = 1,在这种情况下,空的格子到棋盘上一条边的距离代表了玩家将这个空白格子连接到指定边所需的“自由移动”的数量。不幸的是这个距离函数对构建一个Hex评估函数不是太有用,这将在后面解释。相反,当z=2时,使用到了“双距离”的概念。

  双距离比p的邻居到q的第二低的距离多1,如果p和q直接相邻,则双距离等于1。

  

  图5.1展示了5X5棋盘上每个空格子通过两种度量标准到较低黑边的距离。双距离思想背后的直觉是这样的,当下一局棋的时候,一个人总是可以选择封锁最好的那个走法去强制对手下第二好的走法。考虑E4点,图5.1中数字被框住的那个点。常规的距离表示到达下方黑边需要4步,然而,从E4到下方黑边只有一条边满足这个距离。与之相比,双距离等于7,因为最好的与之相邻的两条路径距离分别为5和6。因此,双距离抓住了“最好的次优解”的本质。

  注意看棋盘最右边的E5点,即使它的两个直接相邻点的双距离都为7,它的双距离仍然为7。这个数字也是正确的,因为计算一个双距离需要考虑到该点的所有“邻居”。邻接点和“邻居”是有很大区别的。邻接点是包含在邻居点中的。如果两个点在棋盘上拥有公共边,则称他们为邻接。而邻居的概念还考虑到了所有已经下在棋盘上的子。站在白棋的角度来看,如果两个空白格子被一条白棋连接成的线连接,那么这两个空白格子就称为邻居。

  注意,一个格子的邻居分为黑棋邻居和白棋邻居两种。相应的,“白棋距离”和“黑棋距离”也是有区别的,这就解释了E5到下方黑边的双距离是7:由于边界点的原因,这个点的黑棋邻居就包含了A5点和B5点,这两个点的双距离分别为5和6。

  在图5.2中,棋盘上多了两个黑棋。图5.2-I展示了空白格子到下方黑色边界的黑棋距离,图5.2-II展示了空格子到上方白色边界的距离。添加的这两个黑棋使C2和B5两个点变成了黑棋邻居。

   

5.2 潜力值(Potential)

  Hex棋的目的是为了连通棋盘的两边。为了达到这个目的,玩家或许会寻找一个尽可能能将两边连通的空白格子,因为它很可能就是胜利路径中的一个点。评估函数就切合了这个观念。每个空白格子被赋予了两个基于双距离度量理论的潜力值,分别是“白色潜力”和“黑色潜力”。白色潜力为一个空白格子到两条白色边界的双距离之和,黑色潜力亦然。图5.3展示了一个位置在含有两个黑子和两个白子的棋盘上的潜力值。

  

  白色潜力值越低的点越容易让白方连通两条白色边界,连通了两条边界就是产生了一条胜利路径,因此白方会把注意力集中在白色潜力值最低的点上。当棋盘上产生白色潜力值最低的点时,白方的“棋盘潜力值”(white )就确定下来了(这里为潜力值最低的点的潜力值)。以图5.3为例,白色棋盘潜力值为5,黑色棋盘潜力值为4。既然潜力值越低越好,那么从整个棋局来看是黑方占了优势。

  在图5.3中我们可以看到黑方白方都只有一个格子对他们的棋盘潜力值造成了影响,对于这两个玩家来说都是C2点。如果有超过一个格子对棋盘潜力值造成影响的话,那是最好不过的,因为这样你就会有更多的进攻选择以及更难被堵住。在这里将能对棋盘潜力值造成影响的点(就是潜力值最低的点)的个数定义为进攻机动性(attack mobility)。

  女王蜂(Queenbee)的估值函数只用了棋盘潜力值和进攻机动性两个概念。估值函数最后返回如下的数字:

  

  如果M被设置了一个足够大的值,这个估值函数将会更倾向于棋盘潜力的差异(????),如果棋盘潜力值相同的话,就只用进攻机动性来衡量棋局好坏。一个空格子的潜力在一个nxn的棋盘上不能超过2n2。因此,使用n2可以达到这个要求。女王蜂使用的是M = 100。

 

5.3 战略相关性(Strategic relevance)

  双距离度量标准是直接与双重威胁(double threats)相关的。实际上,双距离隐含的考虑到了在Hex中一个位置上的“双桥”。在图5.4中,白方距离每个边界的距离不能透过黑色双桥。因为黑棋已经通过双桥确立了获胜路径,这就导致了白色棋盘潜力值变成了无穷大(译注:也就是白色到边界的距离成了无穷大,使之不可达)。因此,双距离度量标准也隐约识别出了一条由双桥组成的虚拟连接构成的获胜路径,即使获胜连接还没有确定下来。

  

  与之相比,使用传统度量方式的话,图中白色和黑色潜力值都是4,表明两个玩家建立获胜路径的可能性是一样的(事实上并非如此)。这表明双距离度量标准比传统距离度量标准更适合Hex棋。

 

5.4 移动误差(Move badness)

  像之前提到的那样,白方想要在白色潜力值最低的点落子,因为这个子最有可能连接两条白色边界。与此同时,白方也会注意具有较低黑色潜力值的点,因为这些点极有可能连通两条黑色边界,所以白方也会在这些点落子去阻止黑方。结合这两点,白方将会在具有最低的总潜力值(即白色潜力值+黑色潜力值)的空格子上落子。同样,黑方也会更倾向于在那些空格子上落子。这类似于围棋中的说法:“你的对手的最重要的走法就是你最重要的走法。”

  让我们再看一下图5.3,那些所有空格子的总潜力值已经写在了图5.5中。与黑棋棋盘潜力值和白棋棋盘潜力值相似,总棋盘潜力值也是由拥有最低总潜力值的格子确定的。因此图中总棋盘潜力值为9,它是由点C2确定的。在这个例子中,C2点同时拥有最低的白色潜力值和黑色潜力值,但是通常情况下它们不一定相等,甚至是没有任何关系的。

  

  对于每个格子来说,这个误差产生于总潜力值和总棋盘潜力值的差异。比如在图5.5中,E2是棋盘上最糟糕的点,它有着21– 9 = 12的误差。这种误差的概念在女王蜂的搜索算法中扮演着重要的角色,这将在第6章中讲解。

 

5.5 走法紧张度(Move tension)

  判断一个落子方式的好坏的另一个方法是走法紧张度。走法紧张度是由一个走法对棋盘的潜力值造成的摆动决定的。选择走法紧张度最高的点相当于进行一个单层搜索。走法紧张度的重要性体现在它允许比较棋盘上不同点的表观强度。这个信息对于决定是否去扩展搜索给定的一个走法是十分重要的。从概念上讲,对一个具有高紧张度的走法进行额外的搜索是有必要的,因为评估似乎不成立。

  

  图5.6(假设轮到黑方落子)说明了安静位置和紧张位置的区别。在图5.6-I中的位置是十分有活力的。在白色的桥上方有一个梯子(???)。拥有最高紧张度的走法是紧张度为4的A6点。相反的,图5.6-II中的位置十分平静。紧张度最高的点是紧张度为2的C5点,仅仅只是前面一个的一半。

走法紧张度是一个通常的依赖游戏的去获取走法表观强度的方式。由于它将造成为每一个可行的走法都调用一次评估函数的满宽度的单层搜索,因此用这个方法去产生走法顺序不是有效的。仅仅只是为了将走法排序的话,这样做太昂贵了。如果一个竞赛程序像女王蜂那样静态评估每一个节点,走法紧张度在走法已经确定后就变成免费的了。然而,从这个观点来看,走法紧张度可以是十分有价值的,因为它仍然可以用来产生一个本地的搜索扩展和缩减。


原创粉丝点击