返回列表 发帖

闲话围棋规则(十三)  贴先



  前面说到标的函数的实质在于其对局面的排序,那么就可以在不改变排序的前提下对于标的函数进行一定的修饰。常见的有两种修饰:贴先和细化贴先。

  贴先规则是围棋规则出现以来最大的进步,它的意义在于否定了黑白盘面相等的特殊地位。围棋天生就有先后手的区分,黑白双方不是在一个公平的基础上进行竞技,所以双方盘面相等也不具备公平性上的先天优势。把胜负的分水岭放在盘面为0还是盘面为6.5、盘面为7.5,其地位是相当的,只取决于哪一种能更好的平衡先后手利益。

  贴先规则极大的改善了围棋游戏的公平性。公平性不仅仅是竞技游戏的先天需求,也影响到了游戏的竞技水平。当对局双方不在相同起跑线上进行竞技时,出于胜率最大化的原则,占先方必然使用较保守的策略,其对手则趋于激进。这一点在AI的对局中被放大了,我们可以看到形势相当时表现卓越的AI,在大幅领先或者落后时,经常下出明显不是最佳的应手。

  有人认为应该整数贴先,保留平局,理由是围棋这种完全信息博弈必然存在双方最佳应对,这种情况下任何一方负都不公平。我认为为了这个理由而保留平局是无必要的。
  首先这种双方最佳应对不是人类对局所能企及的,它就像宇宙边缘的恒星离山顶洞人那么遥远,人类知道它的存在,却看不见、感应不到,它对人类也无任何影响。
  其次,就算考虑双方最佳应对,和棋也未必就彻底公平。先后手的区别是天生存在的,就像两个人考试,一个考的是四则运算,一个考的是微积分,双方最佳应对当然都是100分,但是满分的难度却不相同。根据这个双方最佳应对来搞同分数线录取,那就是荒谬了。
  因此,围棋存在一个高区分度的标的函数,不需要保留平局,这是它的极大优势。君不见中国象棋和国际象棋的平局过多,已经成了它们最头疼的问题。

  不仅仅取消平局不涉及到公平问题,而且双方最佳应对下的盘面值,有人称之为“完美贴先”,也并不是一个最公平的贴先值。就像前面的考试问题,完美贴先是0分,但实际贴先用0分反而不公平。目前的办法是通过对大量对局的统计,寻找最接近50%胜率的贴先值。这样的统计贴先值,没有理论基础,可能随着时间而变化,随着棋手的水平变化而变化,但它仍然是最大限度弥补先后手公平性的办法。
  当然另外一种方法也是理论可行的,就是竞叫贴先,但是在操作上较为复杂。

TOP

闲话围棋规则(十二)  标的函数



  围棋的胜负规则可以表示为一个标的函数,我们把其输入称之为棋局的局面,其输出为一个实数,大于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多个值,因此非但可以取消和棋,还可以较好的平衡先后手的胜率。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

闲话围棋规则(十一)  唯子是地与子空皆地:围棋概念与数学概念的区别



  唯子是地是古棋规则的胜负标的,子空皆地是现代中国规则的胜负标的。这两种规则在执行上都满足完备自洽的要求,其区别在于对于不可填空点的划分上。古棋规则认为不可填空点(例如净活棋的两个基本眼位)不属于任何一方,而中国规则依据空属邻子的规则进行划分,也就是谁围住算谁的。

  围棋初名为弈,后来人们逐渐叫它围棋,弈反而成了别称。杨雄《方言》卷五中说:“围棋自关而东,齐鲁之间,皆谓之弈。”可见人们认识到弈这种棋类是以“围”作为主要的游戏手段。
  “围”是一个数学/拓扑概念,指某种颜色的棋子+棋盘边线构成了一块空点的边界,但是“围”并不是围棋的基本概念。网上有人设计了一种布拉德围棋,其行棋规则是:某种颜色的棋子形成封闭链,则将封闭链包围区域内对方棋子提起,对方也不得再在其中落子。如下图,黑落子后,打叉的白子被提起。


  我们可以看出,对于这种布拉德围棋,“围”是一个基本概念。而对于围棋,“围”不是基本概念,“气尽提子”才是基本概念。
  那么对于围棋而言,“围”是什么呢?我们说,“围”是围棋的主要手段。通过“围”来实现“气尽提子”,最终达到“杀彼存我”的目的。这一点古人就有清晰的认识,《左传·襄公二十五年》孔颖达疏曰:“以子围而相杀,故谓之围棋。”

  可以这么说,存在两个“围”的概念,一个是数学意义上的围,一个是围棋意义上的围,两者相似而不相同。我们说“围住一块空”的时候,实际是第二个概念,意思是有一块空,我可以存活,而对方无法存活,而不是说拓扑上,用棋子包围住了一块空。


  黑在数学意义上,围住大空,但是对于围棋而言,围没围住尚且未知,要看白能否做活。


  都只是数学意义上的围。


  偏面官子,不符合数学意义上的“围”,但用两子事实占据了四个空点,是围棋意义上的“不围而围”。

  所以说,古棋规则的“子多为胜”直指“杀彼存我”的围棋基本逻辑,优点在于逻辑严密;现代中国规则的“空属邻子,子空皆地”是用数学意义上的“围”替换了围棋意义上的“围”,优点在于直观简洁,但严格说来,偷换了两个相近概念。
  我个人更加倾向于古棋规则。棋子天生有两种颜色,其归属是自然的。空则没有颜色,其归属乃人为划分。空可以分成可填子空与不可填子空,前者可以转化为子,而将后者按照前者的原则进行划分,有鱼目混珠之嫌。

  另外,对空的划分并非只有“空属邻子”一种方式。还有比如“气属邻子”,按空点邻近棋子的颜色划分,比如旧版应氏规则。如下图双活,C2、D2两点只挨近黑子,将划给黑方。


  还有“空属落子权”,根据谁有能在该空点落子划分空点归属。如下图双活,A点将属于白方而不是黑方。


  还有 @L南海游仙 提出,将该空点改成某方棋子,看是否违反气尽提子原则,等等。这些空点划分原则,在净活棋基本眼位上,都是一致的,但是对于双活棋,存在微妙的区别。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

闲话围棋规则(十)  眼棋规则



  眼棋规则似乎是上世纪七十年代由数学家们提出的理论规则,英文叫No-Pass Go或者Nimgo。眼棋的规则极其简单,气尽提子,禁止pass,无棋可下方认输。
  眼棋规则很像前面所提的元规则,但两者并不等同。元规则不是正式的规则,仅仅具备规则逻辑,而眼棋是一个真正完备的规则。

  眼棋虽然可以见到一些讨论,但是并没有过正式的眼棋比赛,我们对于眼棋实际上知之甚少,眼棋的开局、中盘、官子究竟和围棋有多大区别,很难说清楚。相比起围棋,有两个规则对于眼棋至关重要,一是是否允许块子自尽,二是禁全同。
  在围棋中,有一种打二还一双活,但是在眼棋中,有一方就可以据此获得无尽送子的机会,结果相当于净杀了,这是眼棋和围棋最大的区别之一。


  由此可见,眼棋的行棋逻辑和围棋是有区别的。眼棋似乎可以分成两个阶段,第一个阶段是眼位的生产期,行棋目的是更有效率的获取眼位,第二个阶段是眼位的消耗期,行棋目的是更有效的送死,减少眼位的消耗。打二还一净杀就是第二阶段的产物。而围棋只有地域的生产期一个阶段。
  眼棋的冗着很多,特别是允许块子自尽的话,几乎能无穷无尽的走下去。
  眼棋如果想成为一个实用规则的话,也许需要做出一些改变:

  眼棋I:禁止虚着,无棋可下方负。
  眼棋II:允许虚着,两虚终局后,比较双方净活棋中的可填子眼位(每块净活棋的眼数-2)决定胜负。
  眼棋III:允许虚着,两虚终局后,空属邻子,比较双方的空决定胜负。(空属邻子可以改成落子权等等)
  其中眼棋I是原始规则,眼棋II和眼棋I基本相同,除了修正了打二还一净杀的结论。眼棋III相当于取消了眼棋II的还棋头,很像是日本规则的实战解决版本。

  总的来说,我不太赞成把眼棋放进围棋的规则群中进行讨论,无论从围棋文化还是围棋逻辑的角度,眼棋和围棋都有比较大的区别。无论是古棋规则还是现代围棋规则,围棋比较的是地域,眼棋比较的是眼数;围棋比较的是空间,眼棋比较的是时间;围棋讲究两眼活棋,而眼棋淡化了这一点,活棋仿佛只是寿命长一点的死棋。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

闲话围棋规则(九)  数棋法



  很多对围棋规则的介绍开篇一句话就是:围棋规则分为两种,数子规则和数目规则。实际这是对围棋最常见的一个误解,数子和数目并不是规则差异,而是数棋法的不同。我们说规则有差异,是指不同规则下胜负结果可能不同,行棋策略可能不同,否则的话就是同一种规则。而数棋法的差异只是裁判计数方式的区别,不涉及到胜负结果不同。
  数子法和数目法是在等子条件下互相等价的两种数棋方式(另一种数棋法——应氏规则的填满计点,则是数子法的一种变异方式)。像唐宋规则和明清规则,就分别是中国古棋规则的数目方式和数子方式。美国围棋规则(AGA规则),则同时提供了数子方式和数目方式。
  至于日本规则,相当于智运会规则的不完备形式(绝大多数情况下,两者胜负结果完全一致)。由于其不完备,只能数目,不能数子。

  另外一对概念:出入法和归本法,也是数棋法的差异。出入法以黑白双方的地域差为盘面值,归本法以一方地域和总地域之半为盘面值,出入法的结果为归本法的两倍。唐宋规则为出入法,明清规则为归本法;日本规则为出入法,现行中国规则为归本法。对于初学者,经常误以为“1子(中国规则)=2目(日本规则)”,这实际就是归本法和出入法差异造成的错觉。
  实际上,在对局中,归本法和出入法也各有应用。谈一手棋的价值时,往往用的是归本法(走这手棋增加的地域);谈官子大小时,往往用的是出入法(黑走这手棋与白走的地域差异)。两种方法的结果也是差了一倍,这一点常常给初学者带来困惑。

  在这两对概念中,数子法和出入法是基本方式,数目法和归本法分别是它们的衍生方式,理应以前者为标准。数目法与归本法的出现,都是为了提高数棋的速度,但实际上速度的提高,都是以可靠度下降为代价的。以前开规则会议时,动辄以数棋速度作为评判规则优劣的标准,实际上这是走入了歧路。对于职业比赛,可靠性要远远重于数棋的速度。
  幸好,随着科技进步,数棋很快就不再是一个技术问题。我相信写一个手机app,对着棋盘一扫,瞬间显示“按中国规则盘面……,按古棋规则盘面……”是很简单的事情。只有日本规则由于自身的缺陷,完全脱离人工干预让程序计算盘面有些困难。
  所以下一版的中国规则,应该放弃归本法,回过头来使用出入法,也不会再有“黑贴三又四分之三”这么拗口的贴子,也不会再有“1子=2目”的误解。

TOP

闲话围棋规则(八)  中国围棋规则



  中国围棋规则是1957年正式出台的,但是估计之前若干年就应该在国内棋手对局中采用了。由于晚清国内围棋的衰落,民国时期中国围棋受到了日本围棋巨大冲击。惨败之余那一代棋手采用了全盘日化的方式,抛弃了沿用2000多年的中国古棋规则,转而使用实际上非常糟糕的日本规则。
  这个时期也是日本围棋规则正规化的时期,日本规则屡屡在对局中产生争议。比如1928年的万年劫事件,高桥重行在形势落后时居然采用万年劫不粘的搞笑方式来阻止终局,更为滑稽的是名人秀哉竟然以濑越宪作走了单官为由判定违规。最后搞出“双胜”的离奇判决,这局棋可以说玷污了日本围棋。
  或许是受到这些事的影响,国内棋手在接纳日本围棋规则的同时,保留了明清规则的数子形式,最终形成了“空属邻子,子空皆地”的中国围棋规则。现在回头看初期中国围棋规则的文本,仍然可以看到大量日本围棋规则的痕迹和不科学的规定。后来到1988版和2002版,逐渐走向一个正规合理的围棋规则。
  现代仍然在使用的围棋胜负规则实际上只有日本规则和中国规则两个版本,而日本规则又有着无法弥补的缺陷,导致了除韩国外的各国围棋规则,以及应氏规则实质上都在使用中国规则的胜负规则。而近些年围棋AI的兴起,AI采用的围棋规则一边倒的使用中国规则。乐观的看,中国规则最有可能成为统一的围棋规则。
  除此之外,2008年制定的智运会规则,为了中日两种规则的统一,采用了收后规则,相当于中国规则向日本规则方向迈了一步。中国规则和智运会规则的关系类似于明清规则和唐宋规则的关系。

TOP

闲话围棋规则(八)  日本围棋规则



  传说围棋是由著名学者吉备真备由大唐带回日本的。我们从围棋规则中也能看出唐宋围棋规则到日本围棋规则的继承关系,像双活无目、不提三目(如图)等等都是日本围棋规则中的唐宋规则遗痕。


  大概是因为古代围棋规则口口相传的原因,虽然传闻吉备真备在大唐留学时就已经是围棋高手,但是他或者他后代的日本棋手却没有学到唐宋围棋规则的真谛,造成了日本围棋规则至今还是一个“残缺”的围棋规则。我们知道,唐宋围棋规则为了等子而死子回填,因为等子而可以比路,因为等子而双活无路,等子是所有这些规则的纽带。但是日本围棋规则保留了比目(路),保留了死子回填,保留了双活无目,却单单遗漏了最核心的“等子”条件。


  时至今日,日本围棋规则的各条规定缺少逻辑链条,为什么要把空和对方的死子加起来计数?为什么双活棋里的空不算目?为什么在净活棋里找劫材不损,双活棋就可能损目?这些问题日本围棋规则没法回答,只能说自古以来就是这么规定的。

  遗漏等子的另一个重大问题就是日本围棋规则失去了实战解决争议的能力。死子不能提,提了就损目。盘角曲四杀不掉,只能靠规则判死。终局时空里有劫杀,究竟要不要补?日本围棋规则因为这些问题打了一个又一个补丁,却始终无法彻底解决。


  除了等子外,日本围棋规则的另一个巨大改动就是把唐宋规则中的扣除基本眼位规定给删除了。或许是吉备真备没搞懂为啥要扣除基本眼位吧,总之,精致的唐宋数路规则到支离破碎的日本围棋规则,是围棋史上的一大倒退。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

闲话围棋规则(七)  明清数子规则



  和自由开放的大唐风气一样,唐宋数路规则是一个“浪漫”的规则。相比之前的规则,唐宋规则做了大踏步的改进,看起来美妙而又和谐。可惜在实际执行的时候,并不是一切都这么美好。举一个简单的例子,死子回填就造成了偷死子的可能。大家可能还记得黄金事件、鲁金事件吧,历史上,偷死子和弄错死子的事情也是屡见不鲜。
  王安石《荆公诗注》:“太宗时,待诏贾玄待上棋,太宗饶三子,玄常输一路。太宗知其挟诈。乃曰:‘此局汝复输,我当榜汝。’既而满局不生不死。太宗曰:‘汝亦诈也。更围一局,汝胜赐汝绯,不胜投汝于泥中。’既而不胜不负。太宗曰:‘我饶汝子,今而局平,是汝不胜也。’命左右投之水。乃呼曰:‘臣握中尚有一子。’太宗大笑,赐以绯衣。”(从中似乎还能看到双活无路的规则哦!)
  除了保留死子的问题外,不收单官也是有缺陷的,因为有些棋形的毛病必须要紧气后才会凸显。所以到了明清的时候,棋手们感觉数路虽然便捷,终究不如数子靠谱,围棋规则重新回到了数子道路上来。

  明清数子规则的特点是归本法。只数一方棋,然后和180.5的归本数相比较。归本法要求棋盘上每个格点都有归属,所以要把基本眼位和公气从不计改为平分。因此如果没有双活,“总地域数=己方子数+己方空数-己方块数+对方块数”。每比对方多一块棋,就要扣除一子,这就是“还棋(块)头”名称的由来。
  对于双活棋,就不用还棋头了,仍然是双活无路,所有公气眼气均平分即可。
  如图,黑两块净活棋共8+32=40子,黑比白多一块,40-1=39子。双活棋共4个空点,4/2+2=4子。39+4-40.5=2.5子,恰好是两溢数子盘面5子的一半,正确无误。

附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

闲话围棋规则(六)  唐宋数路规则



  中国围棋发展到了唐宋时期,规则有了小幅变化,具体说来就是不收单官,等子比路,并由于不收单官造成了客观上的收后还子。宋代的《忘忧清乐集》中有四局完整的棋谱,从中可以准确的还原当时的数路形式。
  两溢数子的方法在19路棋盘上填子比较繁琐,棋手们显然觉得把有限的时间投入下棋比数棋更有意义,于是对数棋方式做了大幅度简化。更有甚者,他们甚至连技术含量较低的单官都省略了。
  这个简化最主要的依据就是在满足⑴对局中没有人走虚着、⑵双方着数相等两个条件时,将死子回填,则棋盘上双方棋子严格相等。这时的“子多为胜”就转变为(等子前提下的)“路多为胜”。
  假设对局者的终局如下图,黑白各25手(满足等手要求),无提子,白有2死子:


  做棋时将白2个死子移至白空三角处,6个圈圈处是基本眼位,余下打叉的空点即为双方路数,本图黑10路,白6路,盘面4路。
  这和前面数子的结果(盘面5子)相比,黑少了1子/路,这是唐宋规则不收单官造成的。在盘面剩余奇数单官时,数路的结果相当于最后一个单官不收,先行者损失1子。

  另外,我们注意到,图中双活部分,没有参与计路,这就是唐宋数路规则又一特点:“双活无路”。
  对于净活棋而言,每块棋需要扣除两个基本眼位,这是非常清晰的。但是如下图,双活棋中的空点,哪些是基本眼位,哪些是路点,死子能不能提,都没有一般的结论。所以唯一的办法就是,由棋手亲自把能提的死子提掉,能填的路点填上,剩下的自然就是“双活无路”了。需要注意的是,这个步骤需要在做棋中完成,对手不能乘机走单官,而是只能自填来保证等子。


  我们可以发现,唐宋规则和日本规则表面上非常相似,事实上,日本围棋规则正是从唐宋规则演变来的。但是,唐宋规则由于坚持了双方手数相等,并不会出现盘角曲四被判死等荒谬结论,而是可以实战解决的。包括粘劫收后等等,在唐宋规则下仍然是存在的。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

闲话围棋规则(五)  最早、最科学的围棋胜负规则——子多为胜




  大多数吃子棋类游戏都是对人类战争的模拟,其中象棋偏重于战斗而围棋偏重于战略,如上文所述,它们都有一个共同的行棋逻辑——“杀彼存我”。既然如此,围棋的每个棋子功能又无差异,那么将行棋逻辑具现化,采用“子多为胜”的胜负规则就是非常自然的了。实际上,睿智的围棋发明者很可能就是这么做的。

  围棋起源于中国,《世本》说“尧造围棋,丹朱善之”,事实已不可考。《左传》云:“弈者举棋不定,不胜其耦”,《孟子》云:“弈秋,通国之善弈者也”,说明至少到春秋时期,围棋已经诞生,甚至已经流行到有“国手”的地步了。
  可惜的是,早期的围棋著述多已散佚,让我们无法一窥围棋规则的最初演进。现存最早的《敦煌棋经》(北周)里写到:“碁有停道及两溢者,子多为胜”,这就是我们已知最早的围棋胜负规则了。
  两溢指双方将能落子的地方都下满了(溢,盈满也),在两溢的前提下,子多为胜。如图,双方将可填子空填满,然后计数,黑38子,白33子,所以胜负结果是盘5。


  停道是两溢的快速操作方式。“停”在文言文中是相等的意思,“道”亦称“路”,指可填子的空点。停道指将双方可填子空做到相等,这时就可以数子了。如下图,双方各6道,黑32子,白27子,还是盘5。


  无论是两溢直接数子,还是等路比子,都是等效的计算胜负方式。中国古棋后来还发展出了等子比路、还棋块头等方法,但是都是“子多为胜”的等价操作方式。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册

TOP

返回列表