独立钻石吧 关注:82贴子:345

“最后的晚餐”棋的最少步数

只看楼主收藏回复

“最后的晚餐”棋的最少步数
这个贴子如今在网上已经搜不到了。


IP属地:上海1楼2018-03-18 12:48回复
    “最后的晚餐”棋的始局终局如下:



    IP属地:上海来自Android客户端5楼2018-04-07 12:41
    回复
        关于“独立钻石”棋的求解思路与方法不在此一一介绍,以下仅给出求解“独立钻石”棋的最佳结果。
      1912年,柏格荷特(Ernest Bergholt)最先给出了非凡的18步解法,具体解法如下(交点编号见图二):
      (1) 6==>19
      (2) 10==>12
      (3) 1==>11
      (4) 18==>5
      (5) 31==>18
      (6) 23==>25
      (7) 26==>24
      (8) 9==>23==>25
      (9) 13==>11
      (10) 15==>13
      (11) 28==>26==>24==>10==>12==>14
      (12) 3==>1==>11==>25
      (13) 37==>27
      (14) 20==>33
      (15) 35==>37==>27
      (16) 29==>15==>13
      (17) 7==>20==>33==>31==>18==>20
      (18) 21==>19
      1964年,剑桥大学的比斯尼(J. D. Beasley) 利用一些数学技巧,证明了“独立钻石”棋不可能少于18步完成,因此柏格荷特所作出的18步是“独立钻石”棋最少步数的解法。
      1986年,在上海举行的“独立钻石”棋征解赛中,中国女工万萍萍找到另一种不同于柏格荷特的18步“天才”解法,具体解法如下(交点编号见图二):
      (1) 6==>19
      (2) 10==>12
      (3) 1==>11
      (4) 18==>5
      (5) 31==>18
      (6) 23==>25
      (7) 13==>11
      (8) 15==>13
      (9) 26==>24==>10==>12==>14
      (10) 29==>15==>13
      (11) 3==>1==>11==>25
      (12) 28==>26==>24
      (13) 37==>27
      (14) 20==>33
      (15) 35==>37==>27
      (16) 9==>23==>25
      (17) 7==>20==>33==>31==>18==>20
      (18) 21==>19
        后来上海计算机研究所开动了大型的计算机,希望找出“独立钻石”棋18步的各种解法,结果得出令人惊异的答案:“独立钻石” 棋18步解法(同构及仅先后次序不同的解法算同一种解法)只有两种,一种是柏格荷特的,另一种便是万萍萍的!
      二、“最后的晚餐”棋的15步解法
        通过仔细分析,可以得出“最后的晚餐”棋是有解的。但能找到15步解法是很困难的。据查到的资料,上海救捞局职工培训学校的朱方付在1989年最先给出了15步解法,其中难能可贵的是第9步的连跳5次,具体解法如下(交点编号见图一):
      (1) 32==>19
      (2) 12==>26
      (3) 10==>12
      (4) 6==>19==>32
      (5) 14==>12
      (6) 24==>26
      (7) 32==>19
      (8) 28==>26
      (9) 1==>11==>25==>27==>13==>11
      (10) 3==>1
      (11) 22==>20
      (12) 37==>27==>13==>3
      (13) 35==>37
      (14) 16==>18
      (15) 11==>25==>35
        是否存在少于15步的解法呢?在下一节中将分析这个问题。


      IP属地:上海7楼2018-04-07 12:54
      回复
        三、“最后的晚餐”棋不可能有少于15步解法的证明
          要证明“最后的晚餐”棋不可能有少于15步解法初看好像不难,只要将所有少于15步的走法都计算一遍,检查是否有结局就可以了。但由于所有少于15步走法约有1千万亿个,而现在一般的计算机每小时能计算处理约10亿个“最后的晚餐”棋的棋局,一台计算机至少连续不断计算100年时间才能得出结论,所以这样直接计算来证明“最后的晚餐”棋不可能有少于15步解法是不现实的。
          为了用计算机证明这个问题,本人采用以下两个方法大大减少了 “最后的晚餐”棋的棋局计算:
        1.同构法
          在给出同构法之前,先给出“最后的晚餐”棋中的几个定义:
          按“最后的晚餐”棋规则走完k(k≥0)步后的图形称为棋局,一个棋局可以用一组有序数列(a1,a2,a3,···,a37)表示,其中当交点编号i上有子时ai=1;反之当交点编号i上无子时ai=0。
        令Gp={T,T2,T3,T4,S,ST,ST2,ST3},其中T为将棋局绕中心(交点编号19)逆时针旋转90°(交点编号位置不变化)的变换,S为将棋局绕水平中心线(通过交点编号2、36)旋转180°(交点编号位置不变化)的变换。
          可以证明,Gp构成棋局变换的对称群。
          棋局P与棋局Q称为同构棋局,如果存在g∈Gp,使得P在g的作用下为Q,即g(P)=Q。
          举个例子来形象化说明同构棋局(参见图三),若棋局P0为:
        P0=(1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
        则与其同构的8个棋局分别为:
        P1=(1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
        P2=(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,1,1)
        P3=(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1)
        P4=(1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
        P5=(1,1,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
        P6=(1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
        P7=(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1)
        P8=(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1)
          由同构棋局的定义及Gp是群,容易证明同构棋局有以下两条性质:
        1)若棋局P与棋局Q为同构棋局,则棋局Q与棋局P也为同构棋局。
        2)若棋局P与棋局Q为同构棋局,棋局Q与棋局R为同构棋局,则棋局P与棋局R为同构棋局。
          由以上两条性质可以推出:若棋局P与棋局Q为同构棋局,且P再走j步不可能到结局,则Q再走j步也不可能到结局。
          同构法的过程如下:
        a)在每走一步后的所有棋局中,检查是否有同构棋局,如果有同构棋局,则去掉其中的一个棋局,反复这个过程,直到保留下的都是互不同构的棋局。
        b)仅在保留下的互不同构的棋局中再可走下一步。
          表一给出了第1步到第7步用同构法与不用同构法的走法个数。同构法在实际计算中只用到第7步,因为当大于7步时,内存需要量太大并且计算时间很长,这时再用同构法已没有多大意义了。
          用归纳法可以证明,任意一个走完7步后的棋局总与一个用同构法保留下的棋局为同构棋局。所以采用同构法后,“最后的晚餐”棋不可能有少于15步解法可归结为29627个棋局走7步中是否有结局问题。
        2.数子法
          在给出数子法之前,先给出“可行”棋局的定义:
        “最后的晚餐”棋的某一棋局称为“可行”棋局,如果满足以下三个条件:
        1)如棋局中共有n个子,则n>12,当n=13时必为结局。
        2)如棋局为走第j步过程中的棋局,其中在结局中有子的交点处共有m个子,则j-m<3。
        3)如棋局为走完第j步的棋局,其中在结局中有子的交点处共有m个子,则j-m<2。
          不难证明,如果“最后的晚餐”棋存在少于15步解法,则解法中的每一步的棋局都是“可行”棋局。
          数子法的过程如下:
        a)对于“可行”棋局可以继续走下一步。
        b)对于非“可行”棋局不再走下一步。
          以上是用计算机证明“最后的晚餐”棋最少步数的思路,按此方法本人编制了相应计算程序,在三台普通个人计算机上共耗费约100小时,完成了约4000亿个逻辑判断,最后终于得出:在程序计算中,少于15步的所有走法中没有出现结局,再根据“同构”棋局及“可行”棋局的性质就可得出“最后的晚餐”棋不存在少于15步解法。
          在计算证明中还得出了对“最后的晚餐”棋感兴趣者想知道的结论:
          在“最后的晚餐”棋的“可行”棋局中,一步最多有138种不同走法;一步中最多可以连跳9次。
          以上证明的计算正确性是在计算程序和计算过程没有错误的前提下得出的,对此感兴趣者也可自行编程来验证这个问题。但至少说明了用这种方法证明“最后的晚餐”棋不可能有少于15步的解法是可行的。


        IP属地:上海8楼2018-04-07 12:55
        回复
          四、“最后的晚餐”棋最少步数证明与“四色问题”证明的比较
            前面给出了“最后的晚餐”棋最少步数的一种证明方法。令人感到惊奇的是,此证明与另一个著名的“四色问题”(在为一平面或一球面的地图着色时,假定每一个国家在地图上是一个连通域,并且有相邻边界线的两个国家必须用不同的颜色,问是否只要四种颜色就可完成着色。1976年,美国伊利诺斯大学的两位数学家阿佩尔(K. Apple)和哈肯(W. Haken)成功地用计算机证明了这个问题)的证明有许多相似可比之处(其中将“最后的晚餐”棋最少步数问题简称为“15步问题”):
          1.证明类型
          “四色问题”:编程计算证明(非书面理论推导证明)
          “15步问题”:编程计算证明(非书面理论推导证明)
          2.证明方法
          “四色问题”:构形、放电法,归结为1936个构形图是否为可约的并组成不可免完备集
          “15步问题”:同构、数子法,归结为29627个棋局走7步中是否有结局
          3.逻辑判断
          “四色问题”:≈200亿个
          “15步问题”:≈4000亿个
          4.证明工具
          “四色问题”:三台大型计算机(IBM360)
          “15步问题”:三台个人计算机(AT/COMPATIBLE:CPU~1.7GHz)
          5.计算耗时
          “四色问题”:≈1200小时
          “15步问题”:≈100小时
          6.完成日期
          “四色问题”:1976年6月
          “15步问题”:2006年6月
            从以上比较可以看出:30年间,基于计算机的运算能力迅速提高,“最后的晚餐”棋最少步数问题才有可能得到解决。相信不远的将来,随着计算机的运算能力进一步提高,一些悬而未决的数学难题将被一一破解。
          五、结束语
            益智游戏通常含有丰富的数学内涵,“最后的晚餐”棋是其中的一种,其规则简单,玩起来容易,适合于亲子之间的交流,真正是老少咸宜。更有趣的是,虽然“最后的晚餐”棋问题已基本解决,但它仍然可以当作一个稍具深度的数学问题来思考,比如如何寻找不同构的15步解法及不可能有少于15步解法的简捷明快的书面证明方法等等有意思的数学问题。


          IP属地:上海9楼2018-04-07 12:57
          回复
            朱方付朋友的解法。










            IP属地:上海来自Android客户端10楼2018-04-08 11:15
            回复





              IP属地:上海来自Android客户端11楼2018-04-08 11:19
              回复
                当我用白子代替那12个门徒(12个黑子)时,奇迹出现了,这12个白子没有一个被吃掉,其中4子逆时针换位,另外8子根本没有动。










                IP属地:上海来自Android客户端12楼2018-04-08 11:49
                回复





                  IP属地:上海来自Android客户端13楼2018-04-08 11:51
                  回复
                    想到我曾经用法式棋盘走出的“最后的晚餐”,会不会也有此现象呢?


                    IP属地:上海来自Android客户端14楼2018-04-08 11:59
                    回复










                      IP属地:上海来自Android客户端15楼2018-04-08 12:31
                      回复


                        IP属地:上海来自Android客户端16楼2018-04-08 12:32
                        回复
                          用白子代替了一下,这个现象依然存在。奇怪吧!有意思吧!









                          IP属地:上海来自Android客户端17楼2018-04-08 13:00
                          回复





                            IP属地:上海来自Android客户端18楼2018-04-08 13:01
                            回复
                              “最后的晚餐”棋就是独立钻石棋的一种花样玩法


                              IP属地:上海来自Android客户端19楼2018-04-09 08:51
                              回复