- 最后登录
 - 2019-1-12
 - 在线时间
 - 2285 小时
 - 阅读权限
 - 100
 - 注册时间
 - 2008-3-5
 - 积分
 - 3823
 - 帖子
 - 3045
 - 精华
 - 12
 - UID
 - 24088
 - 性别
 - 保密
  
 
 
 
    
- 积分
 - 3823
 - 帖子
 - 3045
 - 精华
 - 12
 - UID
 - 24088
 - 性别
 - 保密
 
 
 
 
 
 | 
原文:www.cube20.org 
__________________________________________________ 
 
上帝之数是20 
 
 
 | 3×3×3魔方的每一个状态都可以在20步以内还原。  
通过由Google贡献的大约时长35年的CPU空闲时间,一个研究团队已经根本地(essentially)解决3×3×3魔方的每一个状态,并进一步提出没有状态需要超过20步还原。 每一个状态都用一个有着一连串步骤的算法解决。这用的算法可能用一连串的步骤解决顶层,然后用另一串步骤解决中间的边块,然后是类似的步骤。我们知道很多不同的算法,它们在复杂度和所需步数上有所不同,但是那些可以被人类记忆的方法通常要超过40步。  
 |  Superflip,第一个被证明最少需要20步还原的状态。 
 | 有人可能猜测上帝用的算法更高效,总是用最少的步骤解决;这被称作"上帝算法"(God's Algorithm)。这个算法在解决最复杂的魔方状态时所用的步数称作"上帝之数"。终于,上帝之数被证明是20了。 从有魔方以来,人们花了15年时间才找到第一个被证明至少需要20步才能还原的状态;在那之后,我们又花了将近15年证明了20步可以解决所有的状态。  
 |  
  
 
上帝之数的历史 
到1980年,通过分析小于等于17步的有效不同转动得到的状态数,发现这个数字小于3×3×3魔方的状态数,所以上帝之数的下界被确定为18。由早期的魔方解决方法小册子的算法来看,第一个上帝之数的上界大概在80左右。这个表格统计了随后的成果。  
 
| 日期 | 下界 | 上界 | 范围 | 摘要和链接 |  | 1981年7月 | 18 | 52 | 34 | Morwen Thistlethwaite 证明 52 步足够了。 |  | 1992年4月 | 18 | 42 | 24 | Hans Kloosterman把它改善到 42步 。 |  | 1992年5月 | 18 | 39 | 21 | Michael Reid 证明 39 步总是足够的。 |  | 1992年5月 | 18 | 37 | 19 | Dik Winter 一天之后就把它降低到 37 步 。 |  | 1995年1月 | 18 | 29 | 11 | Michael Reid在分析完Kociemba's two-phase algorithm后把上界减少到29 步。 |  | 1995年1月 | 20 | 29 | 9 | Michael Reid 证明 ''superflip'' 状态(角块全正确, 棱块全部原地翻转) 需要 20 步。 |  | 2005年12月 | 20 | 28 | 8 | Silviu Radu 证明 28 步 总是足够的。 |  | 2006年4月 | 20 | 27 | 7 | Silviu Radu 改善他得到的上界到 27 步。 |  | 2007年5月 | 20 | 26 | 6 | Dan Kunkle 和 Gene Cooperman 证明 26 步是足够的。 |  | 2008年3月 | 20 | 25 | 5 | Tomas Rokicki 把上界减少到 25 步。 |  | 2008年4月 | 20 | 23 | 3 | Tomas Rokicki 和 John Welborn 把它减少到只有 23 步。 |  | 2008年8月 | 20 | 22 | 2 | Tomas Rokicki 和 John Welborn 把它继续减少到 22 步。 |  | 2010年7月 | 20 | 20 | 0 | Morley Davidson, John Dethridge, Herbert Kociemba, 和 Tomas Rokicki 四人证明了上帝之数确切的是20步。 |     我们是如何做的我们如何解决全部43,252,003,274,489,856,000种状态的?  
- 我们把状态分成2,217,093,120个集合,每个集合有19,508,428,800种状态。
 - 我们通过对称性和集合覆盖把要解决的集合数减少到55,882,296个。
 - 我们并没有找到每个状态的最小步,但是我们找到了小于等于20步的解法。
 - 我们写个一个可以在大约20秒解决一个集合的程序。
 - 我们用了大约35个CPU年解决了这55,882,296个集合里的所有状态。
  分区法 
我们将这个大问题化为2,217,093,120个小问题,每个问题由19,508,428,800个不同的状态组成。每个子问题都足够小到可以用一台流行配置的电脑解决,我们分解问题的方法(数学上,运用{U,F2,R2,D,B2,L2}生成的群的陪集(coset),简单的说就是H的陪集)使得我们可以非常快速的解决每一个集合。  
对称性 
如果你拿一个混乱的魔方,把它上下颠倒一下,这样你不会把它变得更难还原;它还是需要同样的步数还原。还原这两个状态,你可以只还原其中一个状态,然后把解决方法也上下颠倒一下就可以还原另一个状态了。一个魔方在空间中有24种不同的摆放方法,通过镜像可以得到2种对称状态,所以总共可以减少48倍需要还原的状态。运用类似对称论证和找到一个解决到一个大的"集合覆盖(set cover)"问题的方法,我们能把要解决的集合数从2,217,093,120减少到55,882,296。  
好方法和最优方法 
 | 随机状态 | H的陪集 |  | 最优化 | 0.36 | 2,000,000 |  | 20步或更少 | 3,900 | 1,000,000,000 |  
  | 一个最优方法不需要比还原必要的步数多的步数还原。自从发现了一个还原必要步数是20步的状态,我们就不需要用最优方法解决每一个状态了;我们只需要找到一个小于等于20步的方法还原每一个状态。这要简单相当多;左边的表格显示了一个配置较好的台式电脑解决随机状态时的速度。  |  解决速度,状态数/秒 
 | 快速陪集求解程序运用数学技巧和精心编程的结合,我们能在一台台式机上以左边表格里写的速度解决完整的H的陪集,得到最优方法或者小于等于20步的方法。 |      大量的电脑最终,我们能将这55,882,296个H的陪集分派到Google的大量的电脑上,并在几个星期内完成计算。Google没有公布它的电脑系统信息,但是这将会花费一台配置较好的台式机(Intel Nehalem, 四核, 2.8GHz) 11亿秒,即35个CPU年,去完成这个计算。  
最难的状态是什么? 我们知道有些状态最少需要20步还原已经15年了;我们刚刚证明了没有状态需要更多的步数。 最少步需要20步的状态既罕见又丰富;它们罕见是因为它们只有全部状态的十亿分之一,然而很可能有超过一亿个这样的状态。我们还不能确切的知道它们到底有多少。这张右边的表格给出了每个最小步数所包含的状态数。对于大于等于16步的情况,只能给出一个估值。我们的研究已经确认前面的结果,从0到14,15步的结果是一个新成果。我们希望月内能有另外的研究者独立确认这个结果。 
到目前为止我们已经发现了大约2000万个最小步20步的状态。下面的状态曾是我们的程序遇到的最难解决的状态: 
 | | 最小步数 | 状态数量 |  | 0 | 1 |  | 1 | 18 |  | 2 | 243 |  | 3 | 3,240 |  | 4 | 43,239 |  | 5 | 574,908 |  | 6 | 7,618,438 |  | 7 | 100,803,036 |  | 8 | 1,332,343,288 |  | 9 | 17,596,479,795 |  | 10 | 232,248,063,316 |  | 11 | 3,063,288,809,012 |  | 12 | 40,374,425,656,248 |  | 13 | 531,653,418,284,628 |  | 14 | 6,989,320,578,825,358 |  | 15 | 91,365,146,187,124,313 |  | 16 | 大约 1,100,000,000,000,000,000 |  | 17 | 大约 12,000,000,000,000,000,000 |  | 18 | 大约 29,000,000,000,000,000,000 |  | 19 | 大约 1,500,000,000,000,000,000 |  | 20 | 大约 300,000,000 |  
  |  联系我们 
我们的团队由这些人组成: 
Morley Davidson,肯特州立大学的数学家 
John Dethridge,Google总部加利福尼亚州山景城的工程师 
Herbert Kociemba,德国达姆施塔特的数学老师 
Tomas Rokicki,美国加利福尼亚州帕罗奥图市的程序员 
我们的Email是: 
rokicki@gmail.com 
davidson@math.kent.edu 
 
 
Rubik's Cube是Seven Towns, Ltd的注册商标。 
感谢Werner Randelshofer为此页面提供的魔方展示插件。  
 
 |  |  
  
 
------------------------------------------------------------------------------------ 
 
[ 本帖最后由 shifujun 于 2010-8-11 20:39 编辑 ] |   
 
  
 |