正方体色子阵N阶魔方任意二个状态的最短步数
掌握N阶定律
魔方状态:魔方所有块的位置与色向的一个静态集合
簇状态:簇所有的块的位置与色向的一个静态集合
转层:不含中棱块的所有内层;所有表层
转动单位:任意转层90度转动视为一个转动计量单位,这也是影响状态的最小转动
动作:一个转层在特定方向进行一个转动单位的运动
公式:实现任意二个状态转换的转动序列,以转动单位为计量单位
公式步数:公式转动步数之和,以转动单位为计量单位
最短步数:实现任意二个状态转换的最短公式步数
最远状态:对魔方任意状态A总是存在状态B,状态B转换到状态A的最短步数不小于所有其它状态转换到状态A的最短步数,则称B为A的最远状态或A为B的最远状态。
将一个簇看成一个子魔方时,以上定义同样适用于簇。
子魔方:与簇同义
魔方:子魔方的集合
最短步数与最远状态讨论向来是魔方问题的极品,人们总是关心以下问题:
1. 如何找出魔方任意二个状态的最短步数
2. 如何找出魔方任意状态的最远状态
从魔方状态穷举这个层面寻求答案是最纯朴的方法,几乎不得不面临天文数字的魔方状态挑战。从魔方公式分析的角度寻求答案,形同盲人摸象,连基本方向都错了,远没有切入问题的本质。本文仍然从魔方基本变换分析入手,找出解决以上问题切实可行的重要线索,并揭示解决以上问题的关键因素。从魔方基本转动入手,已经解决了状态描述问题,不同的是,现在要从簇的基本转动入手,分析最短步数问题。在此并不是要给出一个最终解决方案,仅仅是运用现有知识进行定量定性分析,确定一个解决问题的正确方向,明确真正需要解决的问题是什么,纠正以往魔方最短步数研究存在的盲人摸象的困境,并最终给出一个适用于N阶魔方最短步数/最远状态求解的通用方法指导.
魔方由簇构成。二阶魔方仅有一个簇,二阶以上魔方有多个簇。三阶有三个簇。所有块只能在自已所属的簇内变换。因此,我们可以将魔方的每一个簇的变换独立出来分析,再合在一起分析簇与簇之间的相互影响。如果将簇视为子魔方,所有子魔方当前状态的集合构成一个魔方当前状态,这些子魔方的状态及这些状态的组合关系,受N阶定律完全制约。以三阶为例,三阶可以分解为边角块簇A,中棱块簇M,中心块簇H。将每个簇想象为一个独立的子魔方,这些子魔方分别都存在以下性质:
1. 独立的扰动关系,即自扰动
2. 独立的簇内变换
3. 任意二个簇状态之间存在最短步数
4. 任意一个簇状态存在最远状态
1. 与其它簇分享部分或全部转层
2. 任意簇的一次转动必然代表魔方的一次转动,反之,魔方一次转动代表一个或多个簇的转动
本质上:
1. 魔方是子魔方组合在一起共同变换的杂合体
2. 每个子魔方的性质不受子魔方组合方式的影响
3. 魔方任意当前状态是子魔方当前状态的集合
4. 子魔方状态的搭配方式受制于子魔方组合方式,即N阶定律描述的扰动关系
3. 子魔方的最短步数/最远状态完全制约魔方最短步数/最远状态
4. 让尽可能多的子魔方同时沿着各自的最短步数变换,是解决魔方最短步数求解的核心思想
从N阶定律对簇的分类可知,N阶魔方从结构上可将簇分为以下类型:
(二楼续)[此贴子已经被作者于2007-3-11 8:23:04编辑过]
|
2n阶魔方
|
2n+1阶魔方
| ||||||||
簇数
|
块数
|
每块色向数
|
每块色向状态数
|
每簇状态数
|
簇数
|
块数
|
每块色向数
|
每块色向状态数
|
每簇状态数
| |
边角块簇A |
1 |
8 |
3 |
24 |
8!*3^7 |
1 |
8 |
3 |
24 |
8!*3^7 |
中棱块簇M |
|
|
|
|
|
1 |
12 |
2 |
24 |
12!*2^11 |
中心块簇H |
|
|
|
|
|
1 |
6 |
4 |
4 |
2^12 |
边棱块簇B |
n-1 |
24 |
|
|
24! |
n-1 |
24 |
|
|
24! |
心棱块簇E |
n2-3n+2 |
24 |
|
|
24! |
n2-3n+2 |
24 |
|
|
24! |
心角块簇C |
n-1 |
24 |
|
|
24! |
n-1 |
24 |
|
|
24! |
直棱块簇F |
|
|
|
|
|
n-1 |
24 |
|
|
24! |
注1:空格表示不存在,n>=1
注2:簇状态数都没有考虑消同态
要解决魔方最小步数计算,关键是必需首先解决以上每个簇任意二个状态的最短步数计算,而当前只解决了中心块簇最短步数计算,其余六个簇类尚没有高效快捷的算法见于世人,除了穷举法。而穷举法面对子魔方状态,从上表看以看出,并非天文海量,相对惊人运算能力的计算机,穷举法也许不算一个很坏的选择。
显示,要解决魔方的最短步数问题,必须使尽可能多的子魔方(簇)同时沿着自已的最短步数变换,而子魔方之间的差异性及魔方结构并不总是充许所有的子魔方同时沿着自已的最短步数变换,这就要求在魔方结构充许的条件下,协调各子魔方的变换,从而获得一个最佳协调变换的结果-任何二个魔方状态的最短步数。每次协调的结果,体现为:针对当前所有子魔方状态,选择一个最佳动作进入到下一个魔方状态,然后再针对下一个当前状态进行协调,再选择一个最佳动作,直到目标状态为止。这些协调出来的最佳动作序列,就是特定二个魔方状态间的最短步数。
n>=1,2n及2n+1阶魔方共有6n个转层,每个转层有二个动作(+90转动,-90转动),因此2n及2n+1阶魔方共有12n个动作。
除二阶魔方的转动是单簇进行外,所有其它阶的任意转动都是多簇联合参与。例如,三阶的任意转总是三个簇同时参与。12n个动作是改变当前魔方状态的最小行为,总是要选择满足协调原则的动作来改变魔方状态。显然魔方任意二状态转换的最短步数受制于魔方始态中,拥有最大最短步数的簇,拥有最大最短步数的簇决定魔方状态转换最短步数的下限。
1. 找出计算每类簇任意二个簇状态之间最短步数的方法
2. “尽可能多的簇同时沿着各自的最短步数变换”为基本原则,以此协调各簇变换,从而求得
[此贴子已经被作者于2006-6-29 11:59:24编辑过]
魔方任意二状态间的最短步数或求得魔方任意状态的最远状态的最短步数
1. 在当前魔方状态上分别执行12n个动作后,分别获得12n个魔方状态
2. 对12n个状态分别计算所有簇相对于簇终态的簇最短步数及每个状态的所有簇最短步数之和
3. 取一个簇最短步数之和最小的状态作为当前状态,并记录其动作
4. 回到第一步,直到当前状态是魔方目标状态为止。
5. 所有记录下来的动作,即是魔方始/未二态的最短步数
1. 在当前魔方状态上分别执行12n个动作后,分别获得12n个魔方状态
2. 对12n个状态分别计算所有簇相对于簇始态的簇最短步数及每个状态的所有簇最短步数之和
3. 取一个簇最短步数之和最大的状态作为当前状态,并记录其动作
4. 回到第一步,直到最大的簇最短步数之和小于等于前一次记录的最大簇最短步数之和为止。
5. 倒数第二次状态就是魔方始态的最远状态,记录下来的动作就是到达最远状态的最短步数。
1. 魔方由独立变换的子魔方构成,子魔方性质相对魔方阶数恒定不变
2 魔方扰动关系仅仅决定子魔方之间的状态搭配关系,不干涉任何子魔方的状态变换.
3. 所有子魔方变换构成魔方变换
4. 魔方最短步数的本质是所有子魔方从各自的始态走向终态的过程中,所有子魔方转动数之和最小的求解
1. 以前最短步数相关研究总是浮在魔方转层这个层面,而一个魔方转层往往对应多个簇转层,因此魔方转层这个层面的研究含混不清,目标不明确,研究者本人最终不可避免地走入死胡同.况且研究对象仅仅特定于二、三阶,并且连基本思路/基本原理都表达不清楚.
2. 本文最短步数研究以簇为子魔方,以簇转层为基本转层,寻找魔方最短步数的问题转换为协调尽可能多的子魔方同时(显示魔方结构决定,所有簇大多数情况下,不可能同时沿着各自最短步数变换)沿着最短步数变换,从而获得魔方最短步数的求解,在求解过程中,动作就是彼此相互妥协而决定的产物,动作序列就是魔方的最短步数。
3. 当前魔方最短步数研究的焦点已转变为对各簇最短步数的求取,显示极大地简化了研究难度,为最终求解魔方最短步数做出了理论上的关键突破,纠正了以往宗教式的研究方法,重新确定了正确的研究方向,只要解决了七个簇类最短步数的求解决问题,就摘取了魔方问题最后一个桂冠,相信这个问题的解决指日可待。
以上描述,已给出一个解决魔方最短步数非常清淅的思路及算法结构,显然,最短步数问题不是人工可以轻易解决的问题,因此实现最短步数算法的琐碎细节,就留给精力充沛的职业编程手去完成。
以往仅想搞搞状态描述相关的问题研究,无意争辉于拥有众多高人出手的最短步数问题,但是所能读到的最短步数相关文章,如同大藏经般,令凡人不可企及,根本无法弄懂这些文章是如何引导最短步数问题的解决,也根本看不出这些文章是如何解决最短步数问题,因此,在N阶定律的基础上,完成了这篇以N阶魔方为对象的最短步数导论性论文,本人认为,与以往相关文章最大的不同在于给出一个目标明确、思路清淅、层次分明、论述完整、N阶通用的解决最短步数问题的方向引导。
-------------------------------
忍冬
[此贴子已经被作者于2006-6-30 6:23:27编辑过]
3楼说:
[最远状态
1. 在当前魔方状态上分别执行12n个动作后,分别获得12n个魔方状态
2. 对12n个状态分别计算所有簇相对于簇始态的簇最短步数及每个状态的所有簇最短步数之和
3. 取一个簇最短步数之和最大的状态作为当前状态,并记录其动作
4. 回到第一步,直到最大的簇最短数之和小于等于前一次记录的最大簇最短数之和为止。
5. 倒数第二次状态就是魔方始态的最远状态,记录下来的动作就是到达最远状态的最短步数。]
我模糊地感到以上所述中是否应该在每一循环对于所得的“12n个魔方状态”先来个“消同态”,以免“走回头路”或“重复计算”。具体的我一时说不清楚,或许您的方法中不存在“同态”问题(?)。
乌兄,同态在子魔方当前状态到终态最短步数的计算中呈现并消除,如果认为存在没有表达清楚的地方,烦请举例说明为盼,谢谢。从这篇论文中可以明白,为什么从魔方转动的角度的研究是如此模糊与不确定。
n>=1,2n及2n+1阶魔方共有6n个转层,每个转层有二个动作(+90转动,-90转动),因此n阶魔方共有12n个动作。
是否是这个意思?
n>=1,2n及2n+1阶魔方共有6n个转层,每个转层有二个动作(+90转动,-90转动),因此2n及2n+1阶魔方共有12n个动作。
冬兄辛苦。我提不出何处未表达清楚,只能问些问题。
关于消同态,有的同态可以消灭于萌芽之前,例如初态A经12n个动作之一U得态B,那么在接下来的循环中,就不必考虑态B经U'这个动作了,因为B经U'必得同态A。所以态B就只要做12n-1个动作。余类推。
有的同态是“隔代”的,各代态数过了“高峰”后,隔代同态越来越多,以致同态数超过新生态数。为了隔代消同态,不知您有何好办法。如果用比对两个态的代码的方法,且仍然是穷举式的、历遍式的比对法,每出生一个态,就要和它的所有前辈比对。一则随着代数的增加,要比对的态数越来越多(几何级数增加),二则前面的态多次参与比对,徒唤无奈。
如果说原来人们的方法是不分簇的,计算量太大,而分簇的方案说是简化了(尽管每个态还是要做12n个动作),那么,暂不论两种方案在消同态方面的计算量有无差别,分簇方案中的“协调”工作计算量大吗?
是否是这个意思?
n>=1,2n及2n+1阶魔方共有6n个转层,每个转层有二个动作(+90转动,-90转动),因此2n及2n+1阶魔方共有12n个动作。
就是就是,大大的粗心,谢谢金优
冬兄辛苦。我提不出何处未表达清楚,只能问些问题。
关于消同态,有的同态可以消灭于萌芽之前,例如初态A经12n个动作之一U得态B,那么在接下来的循环中,就不必考虑态B经U'这个动作了,因为B经U'必得同态A。所以态B就只要做12n-1个动作。余类推。
有的同态是“隔代”的,各代态数过了“高峰”后,隔代同态越来越多,以致同态数超过新生态数。为了隔代消同态,不知您有何好办法。如果用比对两个态的代码的方法,且仍然是穷举式的、历遍式的比对法,每出生一个态,就要和它的所有前辈比对。一则随着代数的增加,要比对的态数越来越多(几何级数增加),二则前面的态多次参与比对,徒唤无奈。
如果说原来人们的方法是不分簇的,计算量太大,而分簇的方案说是简化了(尽管每个态还是要做12n个动作),那么,暂不论两种方案在消同态方面的计算量有无差别,分簇方案中的“协调”工作计算量大吗?
乌兄所言不无道理,问题是:
1.每一个动作都是在簇最短步数计算的基础上确定
2.魔方已分解为子魔方,同态必在子魔方中被消除
3.协调算法本身很简单,主要工作量,来自于簇最短步数计算
当然希望大家多提意见,必竞是新呈现的思路,不妥之处,再所难免
乌兄,这也是很无奈的选择,子魔方变换涉及转动,该怎么表达?出个主意。
据2楼表格,3阶的话,A、M和H簇的状态数分别为8!×3^7 、12!×2^11 和2^12,三者之积等于3.5432×10^23,这与《N阶定律》一帖的6楼数据(见下)不同,两者可以比较吗?
全色,3阶,8.8580×10^22 ; 纯色,3阶,4.3252×10^19 。
据2楼表格,3阶的话,A、M和H簇的状态数分别为8!×3^7 、12!×2^11 和2^12,三者之积等于3.5432×10^23,这与《N阶定律》一帖的6楼数据(见下)不同,两者可以比较吗?
全色,3阶,8.8580×10^22 ; 纯色,3阶,4.3252×10^19 。
注意,表中簇的状态数,是将簇视为完全独立的子魔方而计算的状态数,但不能以此数据计算魔方状态。
哦,忘了一件事,这些子魔方状态数都没有消同态,谢谢乌木
[此贴子已经被作者于2006-6-29 11:53:17编辑过]
这个问题很好理解,做为三个独立的子魔方,每个独立的簇状态数都是簇内变换状态数X上自已的扰动关系数2,而做为结合在一起的簇,魔方状态数是所有簇内状态数的积X上扰动关系数2,这就是为什么你除以4就相同了的原因,严格地讲:A、M作为独立的簇还要消除同态,但这里并没有消除。
[此贴子已经被作者于2006-6-29 12:46:17编辑过]
那么,也就是说:
3阶的话,A簇的A=8!×3^7个状态中,一半(A1)是簇内变换(即不牵连别的簇)而得到的,另一半(A2)是变换得到的同时,别的簇也有变换(我称之为“副作用”)。A1=A2,A=A1+A2。
对M、H簇类推,有 M1=M2,M=M1+M2 和 H1=H2,H=H1+H2 。
所以,A×M×H=8×A1×M1×H1,
《N阶定律》中的魔方状态数S=8.8580×10^22 =S1+S2(非扰动态数+扰动态数)=2×A1×M1×H1。
所以,3.5432×10^23/4=8.8580×10^22 ,这不是巧合,而是说明两者有内在联系。
16楼说:“……严格地讲:A、M作为独立的簇还要消除同态,但这里并没有消除。”
那么,A、M值因消同态而变小后,必然使《N阶定律》中的魔方状态数S(原等于8.8580×10^22)也跟着变小(否则A×M×H/4≠S 了),是否《N阶定律》一帖的6楼所述的“国外官方网站发表的数据” 也有问题?(我不认为它们不能修改,但要慎重。)
[此贴子已经被作者于2006-7-1 7:42:52编辑过]
不好意思,这几天外出露营/漂流了,下面回答上二楼的问题:
-----------------------
1.H簇以外的所有子魔方都存在独立的二块对换变换,因此“簇内变换”对子魔方的描述确有词不达意之嫌
2.从实体魔方角度,二阶A簇与四阶B1簇都可以发生簇内独立的二块互换而不影响其它簇,而其它所有阶魔方都不可能存在这种现向象
3.所有子魔方(H簇除外),都存在用三交换不能让所有块复位的情况(最后留下二个块互换了位置),所有子魔方有二种扰动关系,因此所有子魔方存在自扰动问题.所以,对簇内/簇间变换的理解,应从变换角度而非魔方有几个簇的角度。
4.从上面分析可知,状态计算方法同样适用于子魔方,即簇内变换状态乘上扰动关系数再除以同态因子。
----------------------------------
关于同态问题,独立的子魔方与魔方中的子魔方是有区别的,三阶中的A簇与二阶中的A簇的状态数相差24倍,这是因为存在中心块参照的必然结果。
而对于H簇以外的所以子魔方,都不存在中心块参照问题,所以,这些子魔方状态计算结果都要消同态,而一楼表中的计算都是针对独立子魔方,所以应该消同态。表中,A簇本质上就是二阶,除以24后,计算结果与国际官方组织的结果完全一样,所有计算结果与国际官方组织的结果并不矛盾,只是要注意区别:是独立子魔方还是魔方中的子魔方,中心块参照是否存在,是决定消与不消同态的唯一标准,适用于所有魔方或子魔方(H簇除外)
[此贴子已经被作者于2006-7-3 7:33:09编辑过]
这“除以24”的消同态是对已获得的某状态总数的处理吧?。我的理解是:相当于这样--每个态可以绕它的纵轴旋转得4个表观不同的“花样”;6个面轮流向上,共得24个实质一样的“花样”。不必专门编程去消,只要最后来个“除以24”即可。如果要求得到具体的哪1/24个花样,而不单单是花样总数,则另当别论。(我们在计算“拼立方体”时就设法得到了具体哪1/24个花样,还好工作量不大,人机结合解决的,否则非得机器算的。)
我的理解中,还有另一种产生同态的原因。冬兄在本帖3楼的10、11条中说的,一个态--12n个态--12n^2个态……的过程中,例如 ,态A,做U,得态B,再U',又得同态A,等等。即使不让这种同态(有12n个)产生(即从第2遍开始,只做 12n-1 个动作),那么,对3阶来说,第3代也还有12×11个态,其中又有18对同态(因为动作 UU=U'U',UD=DU 等等),应该消去18个。3阶到第3代时一共得消去12+18=30个同态。注意,3阶1~3代为例,共1+12+12×11-18=127个花样不包括“旋转翻滚”而致的23倍的“重复”花样!
我的问题是,如果不考虑我在7楼说的、“随时随地”消除不时产生出来的同态的话,那么,到最后的态总数中必定含很多“水分”,仅仅“除以24”(我理解是消除上述6×4=24种旋转滚翻用的),是否也就消除了上述“另一种”同态(但愿如此)?
乌兄,正如我以前强调过的一个观点,公式角度看魔方状态是极其靠不住的,如果不嫌弃,请将我的“组合数计算”中与同态相关的定义细看一下,这里面代表我的观点。
噢,再读那第10、11条,我20楼的理解有误。
冬兄是说,一个态--12n个态--“如此这般”计算一番,取一个“这般如此”的状态作为当前状态,再回到第一步,得到新的12n个态,……
所以,这里并没有我原来以为的几何级数般的增长,各位不要被我扰动了。
我的新问题是,为何“如此这般”的状态只有一个?或者,应该会有多个,可任选一个,捣鼓捣鼓得到答案之一;选另一个后,捣鼓得到另一也符合要求的答案。您的方案是“见好就收”,得到个把答案后就不管别的成千上万个最远态了,还是一个不漏地通通抓住?
贴出后才看到21楼。好的,我去看。
[此贴子已经被作者于2006-7-3 15:46:33编辑过]
乌兄的理解正是我的意思,12N个状态中,可能不止一个最短步数状态或最远状态,选一个就行了,就像正方形二个对角沿边走的路径有二条,并且等长,从路径的角度,任意其一即可。
刚才又看了一下《魔方状态组合数计算》,仍是似懂非懂状态。
“中心块簇状态数:H=4×4×4×4×4×2”--似乎懂了,据《N阶定律》,最后一个中心块可能有:1、若前面已有偶数个90°,则只能有0°或180°两个方式之一;2、若前面已有奇数个90°,则只能有+90°或-90°两个方式之一。故H值如此。
“中棱块簇状态数:M=24×22×20×18×16×14×12×10×8×6×2”--最后两个棱块填入时,要看前面所填棱块的情况而定。若已有偶数对两交换,则最后两个不能再交换;若已有奇数对两交换,则最后两个必须交换,这是从位置来说。从色向来说,前面已有偶数个棱要求翻色的话,最后两个只能是0或2个要翻色;前面有奇数个棱要翻色,则最后两个只能一正一反或一反一正。综合说来,最后两个棱的状态数是式中所说的“2”吗?我还得想想。
“边角块簇状态数:A=24×21×18×15×12×9×3”--最后两个角块安装时,若前面已有偶数对两交换,则最后俩不能交换;前面有奇数对两交换,则最后俩必须交换,这是从位置说。从“色向和”来说,前6个角的色向和为0的话,最后俩色向和也得为0(这该有一正一反和一反一正两种状态吧?);前6个角的色向和不为0时(这本身又有不止一种非0方式),最后两个角的色向要补足到8个角的色向和为0,这有多少种状态呢?综合来说,最后两个角块的状态数是式中的“3”吗?我还没弄清。
冬兄这样的一块一块“堆砌法”确实不必如我那样在一代一代“繁殖法”中要时时处处小心翼翼地探测“同态地雷”,只要对偶阶用“除以24”来消那种同态即可。
《组合数计算》中的8.85801×10^22=2HMA(均指3阶全色,H、M、A即上面所引的数据,2即扰动关系数)
乌兄,你的理解还是不对,你忽视了一点,N阶定律是与公式没有关系,而用转动去繁殖去探索同态问题是一个极其不确定的问题,还没有一个高人能够建立转动与状态之间的数学关系,至少这里没有,况且状态分析与计算根本不需要公式插手。至于你提到的H、A、M状态计算,是指簇内变换充可的前提下的全排列计算,稍加分析是完全可以理解的,别急,慢慢来。
魔方本来就够晕人了,而指导人去理解魔方变换的魔方理论的总结与归纳本就更不容易,让人一下就理解与明白魔方理论也许不很现实,有机会,真希望跟大家面对面地交流,发现很多基本概念被混淆了,具有晋遍现象。
说一句大家不要介意的话,“F2L”之类的语言表达如同车辆装配的技工手册,照着做没问题,熟练了可以装得很快,但不可能让人明白车的设计/运行原理。将“F2L”之类的语言奉为圣诣并以此理解魔方的人,充其量是一个优秀的“装配工”,仅此而已。此言不针对任何人,只是希望大家重视,偏面的公式角度对魔方的理解是极其有问题的,本人也是“技工”出生,完全懂得“技工”的视角与立场。
希望有志于魔方事业的玩家,在读懂魔方变换规则方面浪费的时间不要跟我一样多(20年)!否则,只能很遗憾地看人落井,无法救助。
[此贴子已经被作者于2006-7-4 0:17:03编辑过]
是的,那H、M、A的式子,我大部分理解了,目前仅剩后两式的最后一个因子,分别为“2”和“3”,我说了还得继续理解的。
24楼我是抛开公式、转动来解读《魔方状态组合数计算》的,至于24楼后面提到“一代代繁殖-消同态”法,意思是说我原来设想用此方法来求状态总数是极繁琐的,还是用排列算好。
问一下:2阶魔方,A=24×21×18×15×12×9×3=44089920 ,扰动关系数R=2(2阶也有扰动态?),则RA=2×44089920=88179840,RA/24=3674160--2阶的状态总数。
而本帖2楼的表格说,2阶A簇状态数为8!×3^7=88179840,后来你说还要消同态,则88179840/24=3674160,这就是2阶的状态总数。
我的问题是,1、此处计算中扰动关系数R在哪里?2、前面24×21×……是排列法的一种思路,是否这里的 8!×3^7 是排列法的另一种思路(即位置与色向分开考虑,然后再相乘)?为何两种算法差一倍?是否后一算法包含了扰动态,故不能再乘R=2 了?若是的,为何前一排列法无扰动态而后一排列法含扰动态?
......我的问题是,1、此处计算中扰动关系数R在哪里?2、前面24×21×……是排列法的一种思路,是否这里的 8!×3^7 是排列法的另一种思路(即位置与色向分开考虑,然后再相乘)?为何两种算法差一倍?是否后一算法包含了扰动态,故不能再乘R=2 了?若是的,为何前一排列法无扰动态而后一排列法含扰动态?
乌兄:
--------------------
二阶基态簇的簇内变换状态数:(8*7*6*5*4*3)*3^7,其中:8*7*6*5*4*3代表块占位的全排列数,3^7代表块任一占位排列对应的色向变换数,为什么要这样计算,则与三交换原则及色向成对变换原则相关。
二阶扰动簇的簇内变换状态数:(8*7*6*5*4*3)*3^7
二阶所有状态=基态簇状态数+扰动簇状态数,这就是X2的原因
为什么二阶有扰动?你将复原的二阶任意一层转90度,看能不能仅用三交换及色向变换将二阶复原
-------------------
你在读我的“组合数计算”一文中,漏看了“簇内变换状态数计算”这一重要前提,“簇内变换状态数计算”是无须乖上扰动关系数,而且基态簇与扰动簇的簇内变换状态数相等而状态互不相同。请仔细阅读一些算式的前提条件描述,还有N阶定律的相关定义。
[此贴子已经被作者于2006-7-4 12:14:34编辑过]
OK
1.记住扰动的定义
2.记住什么样的变换叫簇内变换
3.单簇魔方同样也存在扰动
4.记住什么叫扰动簇,什么叫基态簇
5.同态的定义
---------------------
上面这些定义都可以验证,并不抽象
文章说:
“10.最短步数算法
1. 在当前魔方状态上分别执行12n个动作后,分别获得12n个魔方状态
2. 对12n个状态分别计算所有簇相对于簇终态的簇最短步数及每个状态的所有簇最短步数之和
3. 取一个簇最短步数之和最小的状态作为当前状态,并记录其动作
4. 回到第一步,直到当前状态是魔方目标状态为止。
5. 所有记录下来的动作,即是魔方始/未二态的最短步数”
以3阶为例,为求态A和态N之间的最少步数,
1、对态A分别做UU'RR'……12个动作,得态B1、B2、B3……B12。
2、计算B1-H(子魔方,以下类同)和N-H之间的最少步数k1,
计算B1-M和N-M之间的最少步数k2,
计算B1-A和N-A之间的最少步数k3,
K1=k1+k2+k3 。
类似地,由B2得K2,由B3的K3,……由B12得K12 。
3、K1~K12中选最小的一个(有多个的话,任取其一?),它对应的B当作新的初态,比如,选得B1。
4、对(比如)B1分别做UU'RR'……12个动作,……(同上循环)。
我的问题:对(比如)B1应该做U'RR'……11个动作,原因以前说过了。否则万一回到了态A,还是如此这般计算的话,岂不是一开始便可以由A-H、A-M、A-A得3个k?可能我理解错了,那么错的原因是否为:这3个k仅仅是3个步数值,并无具体什么样的一步一步动作;此外这3个k不一定相等,即3个子魔方有各自的k数,因此无法求得整个魔方的最少步数。即使3个k值一样,它们的具体动作串不一定一样或者每一k各自对应于多种路线,这三大把路线要另外“协调”,选出共同的,才可作为整个魔方的最短路线。这样的话,对(比如)B1还是要做12个动作,而且还是要多次循环,不能一上来就计算态A的3个子魔方和态N的3个子魔方之间的3个k值。对吗?
-------------------------------------
此外,文章说:“子魔方的最短步数/最远状态完全制约魔方最短步数/最远状态 ”
这“制约”的具体内容一定较复杂吧?否则听哪个子魔方的?所有子魔方都会施加影响,一定有某种“协议”吧?还有,子魔方的动作就是整魔方的动作(奇阶的H子魔方虽整个架子不动,但其中心块的就地旋转就是整魔方的表层转动),故为何不是“魔方最短步数/最远状态完全制约子魔方的最短步数/最远状态”?
答1:一楼的论文是导论,是方向性指导,也许各人有各人的具体算法,关建是每个簇的最短步数计算
答2:对于三阶,假设A簇始态与其终态的最短步数有N步,你能说魔方始未二态的最短步数小于N步?
先顶一下。
说实在的,我看得不是很明白,能有最少步具体的分析操作例子就好了。
所以要看下文了
有个浅显的理论指导实践就好了
不知道应用于所有实际状态的魔方,都能多少步解决呢?
行者:
你好,一直有一个观点,当问题的复杂到了一定程度,是无法用更简单的方式来表达,正如不能用小学算术来表达微分方程。楼主的最短步数分析用于指明一个正确的方向,正如楼主所言,子摩方最短步数求解是目前最关键的问题,行者有兴趣,不妨分析一下二阶的最短步数问题及三阶中棱块簇最短步数问题。解决了这二个问题,三阶的最短步数问题将不再是一个问题。
最近很忙,不能及时回贴,还请各位谅解。
如这个情况:
棱簇子魔方最少步为R' ,角簇子魔方最少步为L,忍大师你来讲一下这三阶的最少步应如何分析?
<applet code="com.lar5.Caesar.class" codebase="http://sbdq.51.net/java/Caesar" width="260" height="300">
<param name="pos" value="eeeeedeeecccccfcccafaffefffdadaaaaaabdbcdddddfbbbbbfbb">
<param name="misc" value=fullpeek,arrows,showalg,>
</applet>
[此贴子已经被作者于2006-7-28 9:25:11编辑过]
[此贴子已经被作者于2006-7-28 9:24:12编辑过]
烟兄,冬兄的思路好像不是直接由您所说的R'和L求整魔方的最少步的,而是如31楼我初步理解的那样多次循环后得到最少步的。尽管我还未真正弄清楚(31楼已经先提了一些问题),但看来一上来就由R'和L来求最少步是无法“协调”(冬兄文章用语)出什么来的吧?总之,尽管是导论,也还有不少地方我不懂。
----------------------------------------------
我7月7日也贴不出java图(菜鸟区《java贴助手》)。
如这个情况:棱簇子魔方最少步为R' ,角簇子魔方最少步为L,忍大师你来讲一下这三阶的最少步应如何分析?
欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) | Powered by Discuz! X2 |