闲话围棋规则(十二) 标的函数
围棋的胜负规则可以表示为一个标的函数,我们把其输入称之为棋局的局面,其输出为一个实数,大于0则黑胜,小于0则白胜。例如古棋规则的标的函数为f(x_1、x_2、……x_361)=∑x_i,其中x_i=1、0、-1分别表示第i个格点为黑占据、空点、白占据。
理想而言,局面就是棋盘上棋子的分布,因为棋局是双方的争斗战场,所有的胜负结果都应该能从棋盘上看到。但是,现在很多规则在局面中附加了盘外因素,例如日本规则的提子、智运会规则的首虚、应氏规则的延时罚点、中国规则的警告罚一子等等。我认为这是规则中的瑕疵,造成无法从终局棋局中判断胜负。
标的函数的定义域应该是所有合法的局面。只要棋盘上没有无气的棋子,标的函数都应该能计算出该局面的胜负,否则棋手在对局时就可能无所适从。日本规则就存在这一缺陷——我们常开玩笑说让360子,如果真的让360子,然后白棋pass,黑也只能pass,终局,此时日本规则就无法计算盘面和胜负。
(画个小棋盘示意一下,这棋究竟是双方无目,还是黑棋1目,还是白棋160目?)
由于标的函数的输入为离散值,所以它的输出也是离散值,为简便起见,通常设为整数。在没有子彩的情况下,标的函数的具体值并无意义,有意义的是它对于局面的排序。任意两个局面,孰优孰劣,还是盘面相同,如果两个胜负规则的结论完全相同,那么这两个胜负规则就是相同的。
从标的函数的角度,对胜负规则的评价主要在于其区分度。区分度越高,游戏的公平性就越好。比如说,象棋的标的函数只有3个值,胜、负、和,区分度很低,所以象棋的先行优势与和棋过多的问题很难解决。而围棋的区分度要高得多,中国规则理论上从-361到361,可以取700多个值,因此非但可以取消和棋,还可以较好的平衡先后手的胜率。 |