魔方循环变换理论概述(待完善)
一、魔方循环变换的定义:
1.先给出几个记号:
在本理论中,统一规定:
小写字母表示步长为 1 的变换;
大写字母表示由步长为 1 的变换构成的变换。
对于变换 A ,若它的积为单位元,则记为: A = 1 ;
对于变换 A ,
length(A) 表示变换 A 的长度;
half(A) 表示 length(A) 的一半并取整;
例如: A = a1 a2 a3 a4 a5 a6 ;
length(A) = 6 , half(A) = 3 。
又如: A = a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11;
length(A) = 11 , half(A) = 5 。
对于变换 A ,
circle0(A) 表示变换 A 的首尾相连的旋转变换,旋转方向
继承变换 A 的方向;
注意:变换 circle0(A) 是没有首尾的,但却是有方向的。
如:circle0(a1 a2 a3) 与 circle0(a3 a2 a1) 是反方向。
any(A,n) 表示变换 A 的任意一个相连的长度为 n 的子变换;
2.魔方循环变换的定义:
对于有效变换 A ,如果 A = 1 ,并且 any(circle0(A),half(A))
都是最少步变换,则称变换 A 为循环变换。记作:
循环变换 A 或 circle(A)
二、魔方循环变换的例子:
这里以正六面体三阶魔方为例说明:
由魔方循环变换定义得:宇宙飞碟所举的 [长度为 四 的循环变换] 、
[长度为 八 的循环变换] 、[长度为 十二 的循环变换] 、[长度为 十四
的循环变换] 、 [长度为 十六 的循环变换] 均为正确循环变换的例子。
但宇宙飞碟昨天举的 [长度为 210 的循环变换] 、 [长度为 126
的循环变换] 是错的,是他和大家开玩笑呢。
对于一般的魔方,设它的 [最少步最长的变换] 的长度为 x ,那么
它的循环变换长度最长不过为 2*x+1 。对于正六面体三阶魔方,虽然我还
不清楚它的 [最少步最长的变换] 的长度为多少,但肯定不会超过 30 ,
它的循环变换长度必然小于 61 。因此对于正六面体三阶魔方,宇宙飞碟
昨天的 [长度为 210 的循环变换] 、[长度为 126 的循环变换] 是错的。
不过如果作为不严谨的理解,可以另外再定义一个广义循环变换,
不妨称上面的“魔方循环变换的定义”为狭义循环变换。这样宇宙飞碟
昨天举的 [长度为 210 的循环变换] 、 [长度为 126 的循环变换] 是
两个广义循环变换。
明天再为大家证明 [循环变换] 的首尾无关性!例如:若变换 a1 a2 a3 为
循环变换,则变换 a1 a2 a3 与 a2 a3 a1 和 a3 a1 a2 为同一个循环变换。
[此贴子已经被作者于2006-4-1 14:35:26编辑过]
两个广义循环变换:
即:105 个 "U1R1"即:63 个 "U1R3"
我正在努力的理解。
对于变换 A , length(A) 表示变换 A 的长度; half(A) 表示 length(A) 的一半并取整; 例如: A = a1 a2 a3 a4 a5 a6 ; length(A) = 6 , half(A) = 3 。 又如: A = a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11; length(A) = 9 , half(A) = 5 。
请问 又如: A = a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11; length(A) = 9 , half(A) = 5 。
是否应该是:length(A) = 11 , half(A) = 6
我想不能单纯用 “循环变换至少需要多少步?” 来回答,因为: 对于一般的魔方,设它的 [最少步最长的变换] 的长度为 x ,那么 它的每一个循环变换的长度都不会超过 2*x+1 。但我们不能由一个像这样的 长度为 2*x+1 的循环变换得到魔方的所有最少步变换。 例如:x = 3 是某一魔方的 [最少步最长的变换] 的长度。 a1 a2 a3 b1 b2 b3 为它的一个循环变换, 那么它只能代替 a1、a2、a3、b1、b2、b3 a1 a2、a2 a3、a3 b1、b1 b2、b2 b3、b3 a1 a1 a2 a3、a2 a3 b1、a3 b1 b2、b1 b2 b3、b2 b3 a1、b3 a1 a2 共十八个最少步变换。 [ 注意:长度为 4、5、6 的变换不是最少步变换。如 a1 a2 a3 b1 不是最少步变换,因为 a1 a2 a3 b1 = -b3 -b2 , 其中 -b3、-b2 分别 表示 b3、b2 的逆变换] 但它却不能代替这种魔方的所有最少步变换。
比如开发正六面体三阶魔方最少步软件 Cube 的作者 H.Kociemba 采用 The Two-Phase Algorithm 算法求解时,特别制作了一个大小是 1G 左右的“表”,便于求解时计算和查表。 对于正六面体三阶魔方,虽然我还不清楚它的 [最少步最长的变换] 的长度为多少,但肯定不会超过 30 ,它的循环变换长度必然小于 61 。 利用《魔方循环变换理论》制作所有循环变换的 [集合],这个 [集合] 的 大小估计小于 H.Kociemba 制作的大小是 1G 左右的“表”。 [ 注:现在我还没有着手研究这一问题,准备在制作 {所有循环变换的 [集合]} 时,还要尽可能采用旋转、对称等技巧,使任何一个循环变换能 代替 {各种和它旋转、对称后都相同的循环变换},这样制作出来的 {所有 循环变换的 [集合]} 才能更小,利用效率更高。]
[此贴子已经被作者于2005-5-8 18:12:07编辑过]
105 个 "U1R1"
这个曾经琢磨过,不过转了七、八十下没看出效果,放弃了…… 不想这个需要210步,汗!
[此贴子已经被作者于6/5/2004 11:12:49 AM编辑过]
顶了先,慢慢看。
[此贴子已经被作者于6/6/2004 9:07:11 AM编辑过]
我来给circle0(A)的概念下个定义,你看看是不是这样更清楚:
设序列变换序列A=(a1,a2,...an)。则定义circle0(A)为如下n个序列的集合:
circle0(A)= { (a1,a2,..an),(a2,a3,...an,a1), ...(an,a1,a2,...a[n-1]) }
"首尾无关性"是不是指的这么一回事,若A是循环变换序列(这里我为概念加了“序列”两个字),则对于任意属于circle0(A)的变换序列B=(b1,b2,...bn),有:
(1) circle0(B)=circle0(A)
(2) b1*b2...*bn=1
因此,若A是循环变换序列,则从任何一个基本变换a开始都没有区别。
我这样的描述是否完整表现了你的意思?
非常欢迎 notabdc 能参与 《魔方循环变换理论》 的探讨,我们共同 完善《魔方循环变换理论》,弥补《魔方循环变换理论》存在的不足。 “notabdc”,如果我没猜错的话,你应该就是“葛永”,这是我们第 二轮打交道了,希望能合作愉快!
我想对于《魔方循环变换理论》有几点需要说明的: A.如果有些概念可以直接从字面上理解的话,我想应该是不用定义的, 有的举例说明一下就可以了。当然如果这个概念会产生异议,我们就必须来 限定它的外延及内涵。因为我并不打算把我的这个理论搞得概念太多而影响 大家的理解,只想让最初接触它的人感觉它容易接受,而不象纯“魔方群” 那样让人感到恐惧。 B.因本人不会玩魔方,也没有时间玩,只是对“魔方群”比较感兴趣, 突发《魔方循环变换理论》的想法,目的就是想借助这一理论,编程实现计 算机最少步还原魔方。对于很多魔方术语还不了解,可能有说的不对的地方 希望大家及时批评指正,谢谢。
下面就以下几方面与 notabdc 探讨: 1.对于 [把“变换 A”改称为“变换序列 A”]的问题,我在一开始就说明: [ 在本理论中,统一规定: 小写字母表示步长为 1 的变换; 大写字母表示由步长为 1 的变换构成的变换。] 因此,加上“序列”好象意义不大,再说序列好象不太具备“旋转”的特点。 不知大家对此有何看法,该如何处理这个基本概念呢? 2.你给出的 [circle0(A)的概念] 及 “ circle(A) 首尾无关性” 的描述 基本表现了我的意思。我对于你严谨的态度表示赞赏。 3.“有效变换”的严格的定义,我还没有仔细想过,因为对于不同的魔方 很难给出统一的定义,比如:按钮开关可以看成最简单的魔方,设按一下为 a, 则 -a = a ,a a = 1, 单看 a a 是两次 a ,“有效”;但 a a 与 a (-a) 又是同一变换,马上就变成“无效”!因此对于“有效变换”的严格的定义, 我暂时还没想好。不知你是否能给“有效变换”下一个统一的严格的定义?
不知大家有什么其它建议,都提出来,我们共同完善《魔方循环变换理论》, 谢谢大家!
是的,我在这里谢谢 ggglgq 老师和各位的捧场和支持,当然还要谢谢 宇宙飞碟 噢!
[em24][em24][em24][em27][em25][em26]你前边的文字是提出了“循环变换”的概念,并且说明了它具有性质“首尾无关性”。这是万里长征第一步吧,请继续具体论述它是如何用于解决魔方问题的。
我个人认为,这个概念可能太特殊了。设a,b,c是一个“最小步”序列,那么如何从它构造一个“循环变换”呢?很自然的想法就是a,b,c,(-c),(-b),(-a),但是这并不是“循环变换”,因为b,c,(-c)并不是“最小步”。
因为从现有的文字看来,“有效变换”的含义好像有点过于宽泛,凡是现有概念包容不了的内容都被它给一口吃下去了。所以我无法猜测它到底要表达的是什么意思,请你问一下宇宙飞碟老弟他的思路,再来下个定义。
[此贴子已经被作者于6/10/2004 1:13:22 PM编辑过]
cube_master 先生不必客气!
notabdc ,请问怎么不见你网站的座上客 三阶魔方软件开发者 金优 先生、五魔方软件开发者 胡波 先生 等 来这儿坐坐呢?很想和大家一起 聊聊魔方编程的问题。
下面还是和大家谈谈有关 “循环变换 [集合] 的构造” 的问题吧:
六、(步长为偶数的)循环变换 [集合] 的构造
1.构造步长为 1 的变换 a ,设 A 为 a ,执行 5 。 2.撤消 上一步 的构造,如果所有步长为 1 的变换都已遍历,则结束 构造循环变换;否则设撤消后的变换为 A ,执行 3 。 3.在 A 的基础上构造下一个 步长加一 的有效变换 A ,执行 4; 若 构造不存在,则执行 2 。 “ 例如:此时 A 为 a b c ... d ” 4.如果 A 不是最少步,则执行 2 。 5.如果 A 不是唯一最少步,即存在另一个与 A 不同的变换 B ,使得 A = B [ B 可能不只一个,有几个就要执行几次 ] ,执行 6 ;否则执行 3 。 6.设 C 为 A (-B) [ 其中:-B 表示 B 的逐元逆变换, 如 B = a b c ,则 -B = (-c) (-b) (-a) ] , 如果 any(circle0(C),half(C)) 都是最少步变换,则 C 为一个循环 变换,执行 7 ;否则执行 3 。 7.让 循环变换 C 与前面(构造好的)那些循环变换比较是否相同,若 不相同则添加 循环变换 C 并保存这些(新构造的)循环变换;否则不保存 这个循环变换 C 。 8.执行 3 。
现在的问题是魔方最少步最长的变换的长度一般都无法确定,如果确定 某一魔方最长变换的长度为 Max ,便可在 3 判断如果 length(A) >= Max , 则执行 2 ,缩短程序运行时间。 当然,上面的步骤只是一个最简易的“循环变换 [集合] 构造”的方法, 实际应用还要对以上八步进行优化,比如判断 7 所构造的 循环变换 是否与 前面已(构造好的)循环变换在 旋转、对称 时相同,若相同则不保存这一 循环变换等。
欢迎大家在“循环变换 [集合] 的构造”的问题上进行广泛的探讨。
[此贴子已经被作者于6/17/2004 10:47:06 PM编辑过]
notabdc ,请问怎么不见你网站的座上客 三阶魔方软件开发者 金优 先生、五魔方软件开发者 胡波 先生 等 来这儿坐坐呢?很想和大家一起 聊聊魔方编程的问题。
你可以用电子邮件请呀!
下面还是和大家谈谈有关 “循环变换 [集合] 的构造” 的问题吧:
六、循环变换 [集合] 的构造
1.构造步长为 1 的变换 a ,设 A 为 a ,执行 5 。 2.撤消 上一步 的构造,如果所有步长为 1 的变换都已遍历,则结束 构造循环变换;否则设撤消后的变换为 A ,执行 3 。 3.在 A 的基础上构造下一个 步长加一 的有效变换 A ,执行 4; 若 构造不存在,则执行 2 。 “ 例如:此时 A 为 a b c ... d ” 4.如果 A 不是最少步,则执行 2 。
请问判定A是否是最小步具体如何执行?复杂度是多少?
5.如果 A 不是唯一最少步,即存在另一个与 A 不同的变换 B ,使得 A = B [ B 可能不只一个,有几个就要执行几次 ] ,执行 6 ;否则执行 3 。
如何判定A是否是唯一最小步?如果不是,如何找到B?复杂度是多少?
6.设 C 为 A (-B) [ 其中:-B 表示 B 的逐元逆变换, 如 B = a b c ,则 -B = (-c) (-b) (-a) ] , 如果 any(circle0(C),half(C)) 都是最少步变换,则 C 为一个循环 变换,执行 7 ;否则执行 3 。
同样,如何判定这些是最小步?
7.让 循环变换 C 与前面(构造好的)那些循环变换比较是否相同,若 不相同则添加 循环变换 C 并保存这些(新构造的)循环变换;否则不保存 这个循环变换 C 。 8.执行 3 。
现在的问题是魔方最少步最长的变换的长度一般都无法确定,如果确定 某一魔方最长变换的长度为 Max ,便可在 3 判断如果 length(A) >= Max , 则执行 2 ,缩短程序运行时间。 当然,上面的步骤只是一个最简易的“循环变换 [集合] 构造”的方法, 实际应用还要对以上八步进行优化,比如判断 7 所构造的 循环变换 是否与 前面已(构造好的)循环变换在 旋转、对称 时相同,若相同则不保存这一 循环变换等。
欢迎大家在“循环变换 [集合] 的构造”的问题上进行广泛的探讨。
呵呵 原来 notabdc 大名鼎鼎的“葛永”,欢迎!
希望大家在这里只是讨论魔方上的理论问题,不要附带任何个人感情。也希望有更多的人参与讨论ggglgq 老师主话题。
[此贴子已经被作者于6/12/2004 1:04:03 AM编辑过]
实际上昨天讲的“六、循环变换 [集合] 的构造”问题,往往不是 一个人乃至不是一台计算机在有限的时间内能完成的,即便有再精深的 理论做指导,具体到某个特定的魔方(比如:正十二面体的五魔方)它 需要成千上万的程序员以及成千上万台计算机按照统一规定的方案进行, 它的复杂度远不是求解一个特定图案的最少步所能相提并论的!它是集 所有可能的最少步于一体的“精华”!
下面简单谈谈这种“循环变换 [集合]”的作用:
七、构造 循环变换 [集合] 的意义:
如: abcdefgh abcdfijk abcdglmn abcdhopq abcdirst 均为某个特定的魔方的循环变换,那么在搜索最少步时,例如此时 已搜索完成: abcdd.......... 轮到搜索 abcde.......... 但是由 abcdefgh 是该魔方的循环变换,得到: abcde 可以被步长更小的 (-h)(-g)(-f) 所替代 那么此时就没必要搜索所有以 abcde 打头的变换了,即不必搜索 abcde.......... 同理,因 abcdfijk abcdglmn abcdhopq abcdirst 均为该魔方的循环变换,因此也不必搜索 abcdf.......... abcdg.......... abcdh.......... abcdi..........
同理也不必搜索诸如:
bcdef.......... cdfij.......... dglmn.......... opqab.......... bcdir.......... gfggs abcde.......... fmfg abcdf.......... fldsk abcdg.......... kfk abcdh.......... romfg abcdi..........
等等......
从而大大缩短了计算机的搜索时间,提高了运算效率。
这就是我创建《魔方循环变换理论》的初衷,就是我前面提到的 《魔方循环变换理论》的用途: 1.帮我们找到魔方任意一个变换的最少步变换; 2.帮我们找到魔方最少步最长的变换; 3.魔方中心粒最少步变换的解决; 4.利用计算机找出某种魔方所有循环变换的[集合]; 5.利用 4. 的[集合]解决该魔方的上述 1. 2. 3. 的最少步变换问题。
魔方的循环变换在步数较少时是可以手工加理论进行解决的: 比如:我让宇宙飞碟发表的“有关《正六面体三阶魔方的循环变换》 理论的一些命题[定理]”就详细阐述了 “正六面体三阶魔方” 任意五个 [其中任意三个相连的旋转不全相同] 的旋转都是唯一的最少步。并在此 基础上手工找出以下几种循环变换:
长度最少的循环变换 [长度为 4 ] : value="r1r1r1r1"
长度为 八 的循环变换 : value="r1l1r1l1r1l1r1l1"
长度为 十二 的循环变换 : value="b1u1b3r3u1r3f1r1f3u3r1u3"
长度为 十四 的循环变换 : value="r1f1d1f3d3r3u1r1d1f1d3f3r3u3"
长度为 十六 的循环变换 : value="f3l3f1r1f3l1f1l1u1l3u3r3u1l1u3l3"
又如,如果要构造出 正十二面体的五魔方 所有循环变换的[集合], 就必须运用计算机解决!(它的搜索量太大) 但如果我们构造出这个 正十二面体的五魔方 所有循环变换的[集合],那么求解最少步还原魔方 的问题几乎就像 “查表 [集合] 求解” 一样轻松愉快!
[此贴子已经被作者于2005-5-8 18:19:35编辑过]
八、步长为奇数的循环变换 [集合] 的构造
前面的“六、循环变换 [集合] 的构造”只是针对于大多数步长为偶数的 循环变换制订的一种最简易的“循环变换 [集合] 构造”的方法,下面再介绍 一下最简易的“步长为奇数的循环变换 [集合] 的构造”的方法:
1.构造步长为 1 的变换 a ,设 A 为 a ,执行 5 。 2.撤消 上一步 的构造,如果所有步长为 1 的变换都已遍历,则结束 构造循环变换;否则设撤消后的变换为 A ,执行 3 。 3.在 A 的基础上构造下一个 步长加一 的有效变换 A ,执行 4; 若 构造不存在,则执行 2 。 “ 例如:此时 A 为 a b c ... d ” 4.如果 A 不是最少步,则执行 2 。 5.如果存在另一个变换 B ,并且 length(B) = length(A) + 1 ,使得 A = B [ B 可能不只一个,有几个就要执行几次 ] ,执行 6 ;否则执行 3 。 6.设 C 为 A (-B) [ 其中:-B 表示 B 的逐元逆变换, 如 B = a b c ,则 -B = (-c) (-b) (-a) ] , 如果 any(circle0(C),half(C)) 都是最少步变换,则 C 为一个循环 变换,执行 7 ;否则执行 3 。 7.让 循环变换 C 与前面(构造好的)那些循环变换比较是否相同,若 不相同则添加 循环变换 C 并保存这些(新构造的)循环变换;否则不保存 这个循环变换 C 。 8.执行 3 。
对比“六、循环变换 [集合] 的构造”发现,区别 仅在于 第 5 步骤, 对于“步长为偶数的循环变换”强调 [ A 不是唯一最少步 ],对于“步长为 奇数的循环变换”则强调 [ length(B) = length(A) + 1 ]。 请大家注意 这两种“强调”的含义。 我这样安排只是为了方便大家对照理解,当然我们 可以把它们合并,但那样只适合于程序运行,并不适合读者理解。
九、“魔方最少步库”的构造
我们由前面的“八、步长为奇数的循环变换 [集合] 的构造”及“六、循环 变换 [集合] 的构造” 得到:
唯一最少步变换- 或 }->(与非最少步变换构成)步长为奇数的- 最少步变换 -- }-> 循环变换 且 }->(两个最少步变换构成)步长为偶数的- 另一最少步变换-
问题: 唯一最少步变换 或 最少步变换 全部都 在 循环变换 [集合] 中吗?
这一问题始终困扰着我,至今我还不能给出严格的证明,不过我已经证明了:
定理:对于只有 [偶] 循环变换的魔方来说,唯一最少步变换 将随着步长的 增加,最终 [全部都] 变成 [不] 唯一的最少步变换。
这一定理的证明我将会在“广义循环变换”定义给出的同时给出。
不过,我们在没有证明 “ 唯一最少步变换 或 最少步变换 全部都 在 循环 变换 [集合] 中” 之前,可以在构造循环变换 [集合] 的同时,再追加构造一个 最少步变换 [集合] ,并且随着循环变换 [集合] 的不断增加,不断地检验最少步 变换 [集合] ,如果发现某个 最少步变换 存在于 循环变换 [集合] 中,则删除 该最少步变换。最终的 最少步变换 [集合] 可能是个空集。即便不是空集,则因为 我们在构造 循环变换 [集合] 的同时,也同步构造了 最少步变换 [集合] ,所以 我们就得到了一个由 ( 魔方循环变换 [集合] + 魔方最少步变换 [集合] )所 构成的 完整的 ( 魔方最少步库 )! 如果 最少步变换[集合] 是个空集,那么 魔方最少步库=魔方循环变换[集合]
命题: 魔方的最少步变换 全部都 在 魔方的循环变换 [集合] 中。
欢迎大家跟贴给出这一命题真假性的证明或讨论。
如果 魔方循环变换[集合] 能够包括所有最少步变换,而每一个循环变换 A 都可以代替它所包含的 length(A) 个 any(circle0(A),half(A)) 的最少步变换,那么就相当于说 “这个 魔方循环变换[集合] 中的 [每一步] 都代表一个 [最少步变换]”,效率真是太高了!
[魔方循环变换理论] 构思太精妙了! [魔方循环变换理论] 真乃 [精妙机] 也![em17][em26][em27][em29]
十、魔方最少步库 的大小
我们知道魔方有多少种不同状态的图案,就应该有多少种不同的 最少步变换。 比如:正六面体的三阶魔方有 4.325200 E+19 种不同状态的图案; 又如:正十二面体的五魔方有 1.006696 E+68 种不同状态的图案。 ( 其中 E+19 表示 10 的 19 次方 等等,以后不再说明 ) 假设 魔方的最少步变换 全部都 在 魔方的循环变换 [集合] 中, 那么我们甚至对 正六面体的三阶魔方 的 循环变换 [集合] 都没那么 大的存储空间去装,更别提 正十二面体的五魔方 了。
怎么办呢?
我们分析魔方变换数据结构得到,设魔方的第 N 步的节点个数为 x , 那么第 2N 步的节点个数为 x 的平方,第 3N 步的节点个数为 x 的立方, 第 4N 步的节点个数为 x 的四次方,第 5N 步的节点个数为 x 的五次方, ................................. 即得 魔方的前 a*N 步的节点个数 数量级 是 魔方的前 N 步的节点个数 数量级 的 a 次方! 假设 1.0 E+10 是现今计算机解决问题的最大存储空间,只要看不同 状态的图案个数(魔方最少步库 的大小)是 1.0 E+10 的 多少次方 就 可以大概估计出要如何 分 这个库。
比如:正六面体的三阶魔方共有 4.325200 E+19 种不同状态的图案, 它大约是 1.0 E+10 的平方,因此设正六面体的三阶魔方的前 N 步的节点 个数为 1.0 E+10 ,那么正六面体的三阶魔方的前 2N 步的节点便可超过 正六面体的三阶魔方 4.325200 E+19 种不同状态的图案。(分两个 N 步) 这就是开发正六面体三阶魔方最少步软件 Cube 的作者 H.Kociemba 采用 The Two-Phase Algorithm 算法的理论基础,他制作了一个大小 1G 左右的“表”,便于求解时查表计算。 又如:正十二面体的五魔方共有 1.006696 E+68 种不同状态的图案, 它大约是 1.0 E+10 的七次方,同样设正十二面体的五魔方前 N 步的节点 个数为 1.0 E+10 ,那么正十二面体的五魔方的前 7N 步的节点便可超过 正十二面体的五魔方 1.006696 E+68 种不同状态的图案。(分七个 N 步)
这些问题应是程序员们大展自己聪明才智的问题,这里我就不多说了。 相信每个程序员都可以依据《魔方循环变换理论》创造出适合自己的算法, 及适合自己的“前 N 步的节点”的 魔方最少步库。
对了,顺便说一下,对于正六面体的三阶魔方,这个“前 N 步的节点” 的魔方最少步库 构造时,再考虑和它旋转、对称后都相同的最少步,就要 至少除以 48 ( 6 个面,每个面都有 4 个相邻面,确定了两个相邻面即 固定了该魔方,然后再考虑 对称 的 2 种情形,即可得 6 x 4 x 2 = 48 ) 即得 按 《魔方循环变换理论》 制作的 正六面体的三阶魔方最少步库 的 大小为 4.325200 E+19 的算术平方根 除以 48 得到:137 M 即 0.137 G 。 然后考虑每个字节所表示的数值最大为 256 ,六个面共有 12 种步长为 1 的变换,256 > 12 x 12 ,因此每个字节又可至少装下 两个步长 的变换, 从而由 137 M 除以 2 得到:68.5 M 。所以我们可以最多用 68.5 M 的 存储空间,即可进行 The Two-Phase Algorithm 算法。 这确是一个喜人的 数字,也是一个理想中的数字,对于程序员们来说,要走的路还长 ......
十、魔方最少步库 的大小
我们知道魔方有多少种不同状态的图案,就应该有多少种不同的 最少步变换。 比如:正六面体的三阶魔方有 4.325200 E+19 种不同状态的图案; 又如:正十二面体的五魔方有 1.006696 E+68 种不同状态的图案。 ( 其中 E+19 表示 10 的 19 次方 等等,以后不再说明 ) 假设 魔方的最少步变换 全部都 在 魔方的循环变换 [集合] 中, 那么我们甚至对 正六面体的三阶魔方 的 循环变换 [集合] 都没那么 大的存储空间去装,更别提 正十二面体的五魔方 了。
比如:正六面体的三阶魔方共有 4.325200 E+19 种不同状态的图案, 它大约是 1.0 E+10 的平方,因此设正六面体的三阶魔方的前 N 步的节点 个数为 1.0 E+10 ,那么正六面体的三阶魔方的前 2N 步的节点便可超过 正六面体的三阶魔方 4.325200 E+19 种不同状态的图案。(分两个 N 步) 这就是开发正六面体三阶魔方最少步软件 Cube 的作者 H.Kociemba 采用 The Two-Phase Algorithm 算法的理论基础,他制作了一个大小 1G 左右的“表”,便于求解时查表计算。
对了,顺便说一下,对于正六面体的三阶魔方,这个“前 N 步的节点” 的魔方最少步库 构造时,再考虑和它旋转、对称后都相同的最少步,就要 至少除以 48 ( 6 个面,每个面都有 4 个相邻面,确定了两个相邻面即 固定了该魔方,然后再考虑 对称 的 2 种情形,即可得 6 x 4 x 2 = 48 ) 即得 按 《魔方循环变换理论》 制作的 正六面体的三阶魔方最少步库 的 大小为 4.325200 E+19 的算术平方根 除以 48 得到:137 M 即 0.137 G 。 然后考虑每个字节所表示的数值最大为 256 ,六个面共有 12 种步长为 1 的变换,256 > 12 x 12 ,因此每个字节又可至少装下 两个步长 的变换, 从而由 137 M 除以 2 得到:68.5 M 。所以我们可以最多用 68.5 M 的 存储空间,即可进行 The Two-Phase Algorithm 算法。
我们可以最多用 68.5 M 的存储空间,即可进行 The Two-Phase Algorithm 算法。不知将来有朝一日三阶魔方最少步软件 Cube 3.20 的开发者 H.Kociemba 会对此作何感想? 恐怕只有佩服我们中华民族的 [爱因斯坦] 了![em17]
[此贴子已经被作者于6/18/2004 3:45:56 AM编辑过]
实践证明,“宇宙飞碟”昨天给出的征解对角还原方法是“最少步”, 我看大家的确对《魔方循环变换理论》知之甚少,我们再谈谈《循环公式》 或许大家感兴趣些。 《循环公式》 地址:http://bbs.mf8-china.com/dispbbs.asp?boardID=2&ID=181&page=1
《魔方循环变换理论》就暂时先告一段落吧。
《魔方循环变换理论》就暂时先告一段落,若有建议,可以直接回帖提出, 或给我发 Email 联系: ggglgq@sina.com 作者:刘国勤 2004.06.28
非常感激刘老师给 魔方吧 带来的新话题,亦希望各位对《魔方循环变换理论》有兴趣的朋友提出自己的见解。
循环变换应用扩展
1.特定循环变换。如对于“正六面体 N 阶魔方 或 正十二面体五魔方 等” 的边、角循环变换。 2.广义循环变换。 3.广义特定循环变换。
[此贴子已经被作者于2005-1-6 10:25:45编辑过]
“傻瓜转法”在理论上是可行和可以轻松解决的,但在实际应用中是不可行的, 因为即便是最少步数的“傻瓜转法”旋转对于一般的魔方来说都是 天文数字 !
“傻瓜遍历序列”是存在的,它可以通过下面的算法建立:
1. 魔方的起始状态为还原状态 o ,A 为魔方的所有可能的状态所构成的集合, X 为步长为 0 的变换,p = o ,B = A ; 2. 状态 q 为 B 中的任意一个状态; 3. Y 为 p 到 q 的一个变换; 4. X = X + Y , p = q ; 5. 设 C 为变换 X 从魔方还原状态 o 遍历的所有状态所组成的集合; 6. B = A - C ; 7. 如果 B 不空,则执行 2 ; 8. 变换 X 即是所求的一个“傻瓜遍历序列”,即“傻瓜转法”。
问题:某一魔方“傻瓜转法”旋转的最少步数为多少 ? 现给出一个带有理想 色彩的猜想答案:魔方“傻瓜转法”旋转的最少步数有的就是它的所有的状态数。
比如:正六面体的三阶魔方有 4.325200 E+19 种不同状态的图案,猜想:它的 “傻瓜转法”旋转的最少步数为 4.325200 E+19 ; 又如:正十二面体的五魔方有 1.006696 E+68 种不同状态的图案,猜想:它的 “傻瓜转法”旋转的最少步数为 1.006696 E+68 ; 即此时的魔方“傻瓜转法”旋转的每一步必旋转成新的状态,即:此时的魔方 “傻瓜转法”存在且只存在 一个 子(广义循环变换) ,否则就会出现重复状态, 从而导致魔方“傻瓜转法”旋转的最少步数 大于 它所有的状态数。
首先,祝贺斑竹的《魔方吧》乔迁之禧! 速度比以前快多了!
hw294: 或许你还没有特别注意我前面提到的魔方“傻瓜遍历序列”算法中的 “魔方”指的是“任意魔方”。它对任意魔方均适用。 换言之,你所提到的“能否先退一步,找到一个序列,用傻瓜转法先 转出八个角到正确位置”仅仅是在“正六面体的三阶魔方”基础上退化为 “正六面体的二阶魔方”,我的方法仍然适用这种退化成的“正六面体的 二阶魔方”,即“八个角的正六面体的三阶魔方”。 同理,我们可以定义“正六面体的二阶魔方”的任意四个角或三个角 或......的魔方为一种“你想象魔方”,我上面提到的这个通用算法对于 “你想象魔方”同样适用。
我前面提到的魔方“循环变换”中的“魔方”指的也是“任意魔方”, 不仅“正六面体的三阶魔方”存在循环变换,你所说的“正六面体的二阶 魔方”,即“八个角的正六面体的三阶魔方”也存在循环变换,等等...... 因此我对“正六面体的三阶魔方”特别提出“边循环变换”、“角循环变换” 概念,以增加读者对 [魔方“循环变换”] 的理解,这是两个特别典型的 “你想象魔方”的例子。 有关“正六面体的三阶魔方”提出的“边循环变换”、“角循环变换” 的例子,请参阅 [原创]我来玩玩“正六面体三阶魔方”---《循环公式》。
欢迎大家来探讨“循环变换”。[循环变换理论]是为了解决任意魔方的最少步而创建的 理论,它应该说只适用于计算机来寻找“循环变换”,甚至有的连现有的超级计算机都无法 在短时间内(一个月、一年)计算判断出一个变换是否是“循环变换”。 关键难点是:any(circle0(A),half(A)) 即:旋转变换 A 的所有半子变换都是最少步。 由于本人比较忙,无暇去深入研究“循环变换”,但有一点可以明确的是,[ 循环变换 理论 ] 是解决任意魔方最少步的极其高效的快捷的方法,它属于万能、高效、快捷的最少步 变换理论。但对于大多数魔方,大多数“循环变换”是不可能用手工方法判定的。 还有一点需要说明,[循环变换理论]应该是可以包容诸如 l2,u2 (即 L2、U2)为单步长 的变换,只是我目前还没有仔细研究其与 l1、u1 的冲突问题。如果这一问题得以解决,便 可以进一步推广到更广泛的魔方,比方其具备 l3 、u3 、l4 、u4 、l5 、u5 等的特殊魔方 为单步长的问题。 希望广大魔方爱好者,尤其是擅长编程的魔方爱好者能运用、丰富、推广魔方循环变换 理论编出具体到某一固定魔方的最少步软件,这也是本人创建并发表该理论的初衷!
衷心希望大家对 [循环变换理论] 补充完善,使之更好地服务于日后 [编程的魔方爱好者], 使他们更好地运用 [循环变换理论] 编出具体到某一固定魔方的最少步软件。
哈哈哈哈 刚才粗略读了一下你的大作... 咱们有异曲同工之妙,好!真是狗熊所见略同啊 。虽然时间有限未能细细体会您的整个理论(在下最近工作很忙..但已经把它拷了下来,有空就拜读..),只是看了一点都觉得的确很精妙. 令在下矛塞顿开啊。你的“循环”浓缩着我的“循环”..哈哈
若循环A=a+b+c...,a=b=c...,我是a求A和strlen(A),一个有待优化的A...
您的“循环”有浓缩性、方向性、任意性、逆等效性!厉害啊!! 根据方向性、任意性、逆等效性推出:如果A=a+b+c+d+e 即为一个循环,那么a+b+c+d=-e,c+d+e=-b-a。同样:"双龙出海"的循环数为3,"独劈华山"为"双"的反招,所以一招"双龙出海"=两招"独劈华山"、一招"独劈华山"=两招"双龙出海"。"双龙出海"+"独劈华山"=3N*"双龙出海"=3N*"独劈华山"...我在这个循环里以"双"为单位..在兜圈圈呢 嘻嘻
一见如故啊 如能当面请教老师您就好了 我的理论也要快作完善.。
[此贴子已经被作者于2004-12-18 21:08:10编辑过]
有关“循环变换”的移植问题(xinru 问题)的思考
多谢 xinru 先生提出的“循环变换”的移植问题,这个问题我曾经考虑过一段时间。
我原本想把这一问题留给大家去做进一步的思考,希望出现更多的诸如“大烟头 公式”、
“xinru 问题” 等等,这肯定比直接给出个别结论要好得多!
不过,考虑到大家对“循环变换”问题不是很了解,还是先由我给大家提供些线索及
思路,然后大家再集思广益吧。
1.在五阶魔方中间用是“循环变换”的,在三阶魔方中却不是“循环变换”:
同以前的角公式在五阶魔方中间用:
呵呵,cube_master 的 10、11、12 楼几个角公式在五阶魔方中全是严格的“循环变换”!!!
说明 cube_master 运用“循环变换”厉害呀!
下面仅举 cube_master 的 11、12 楼两例说明(以方便读者阅读浏览):
真是奇特有趣,这到底是怎么一回事呢?欢迎广大魔方爱好者讨论解答!
2.在三阶魔方中是“循环变换”的,在五阶魔方中间用却不是“循环变换”:
3.下面再给出一个在五阶魔方中间用是“广义循环变换”,但在三阶魔方中却不是
“广义循环变换”,反之亦然。那么下面的这个在五阶魔方中间用是“广义循环变换”的
长度是多少呢?不妨请大家数数看:
[此贴子已经被作者于2005-5-16 19:51:23编辑过]
真是奇特有趣,这到底是怎么一回事呢?欢迎广大魔方爱好者讨论解答! 我想可能cube_master的 10、11、12 楼几个角公式在上面的五阶魔方中间用就不是角公式,呵呵,ggglgq在{偷换概念}了吧?![em16][em17]
上面cube_master所有几个角公式在五阶魔方中间用我都试了,都具备循环特点,是否全是“循环变换”就不知道了。我想所有在三阶魔方中的“循环变换”,在你上面的五阶魔方中间用都应该是“循环变换”的,你说对吗?[em31]
[此贴子已经被作者于2005-1-4 8:51:23编辑过]
谢谢ggglgq老师的开导,我意识到自己的想法有问题。但问题错在那里呢?[em06]
在三阶魔方中是“循环变换”的,在五阶魔方中间用却不是“循环变换”:
我想,问题出在你没考虑三阶魔方中是“循环变换”,在五阶魔方中间用却不是“循环变换”
的特例是因为此时的三阶魔方“中心块”没被还原!
请对比参考:中心块问题。
[此贴子已经被作者于2005-12-16 8:50:11编辑过]
ggglgq老师,酷毙![em17] 没想到我能栽到{中心块问题}上,55555555,懊恼![em16] 恩,我要好好研究一下!
谢谢ggglgq老师了![em23][em23][em23]
今特把“[原创]魔方循环变换理论概述(待完善)”变成“固顶的主题”,衷心希望 各位玩家、各类魔方理论界人士、擅长魔方编程的程序员 共同来完善它,使它成为广大 魔方爱好者容易接受的理论,使之更好地服务于各类魔方。最后预祝“魔方吧”及魔方事业 越办越红火!
把 宇宙飞碟 的“有关《正六面体三阶魔方的循环变换》理论的一些命题[定理]”也 变成“固顶的主题”,方便大家对照理解!在这里要特别感谢小兄弟“宇宙飞碟”所做的 工作!
ggglgq 于 2005.1.13
这算是长度为 16的 循环变换吗? 首尾无关性是肯定的:
魔方状态变换序列
先给一个“终极状态”的特例:(请参考“终极状态”)
本文所涉及的内容默认为“正六面体三阶魔方”,可以很容易扩展到其它各类 魔方中去。为使结论尽量不产生偶然的冲突,特规定 旋转 180 度为 2 步!
为了阐述方便,下面先引入几个描述性的概念: 描述性理解的概念有:状态、终极状态、路过、偶尔路过、出路。
1.状态:本文所提的所有的“状态”均为从“初始状态”出发,由某一最少步 变换序列而产生的“状态”。通常我们用这个最少步变换序列表示这个“状态”。 一个“状态”往往可以有很多“最少步变换序列”! 比如:从 初始状态 出发,由最少步变换序列 r1 r1 产生的状态,记作: 状态 r1 r1 。当然 状态 r1 r1 有两个最少步变换序列: r1 r1 和 r3 r3 。
2.路过:如果 状态 A 的步长大于 1 ,并且最少步变换序列 A 是唯一最少步, 变换序列 B 为去掉 变换序列 A 最后 一个 步长为 1 的变换 的 任一子变换序列, 此时我们称 状态 A “路过” 状态 B 。 比如:状态 r1 u1 f1 是唯一最少步变换序列,则 状态 r1 u1 f1 分别 路过 状态 r1 、状态 u1 、状态 r1 u1 。
3.偶尔路过:如果 状态 A 的步长大于 1 ,并且变换序列 A 不是唯一最少步, 变换序列 B 为去掉 变换序列 A 最后 一个 步长为 1 的变换 的 任一子变换序列, 此时我们称 状态 A “偶尔路过” 状态 B 。 比如:状态 r1 r1 不是唯一最少步变换序列,则 状态 r1 r1 分别 偶尔路过 状态 r1 、状态 r3 。 这是因为 状态 r1 r1 和 状态 r3 r3 为同一状态的 两个最少步变换序列。
4.终极状态:设 c 为任意一个步长为 1 的变换,对于状态 A 存在一个由 c 结束的最少步变换序列 B ,使得 A = B ,则称状态 A 为“终极状态”。 由 [宇宙飞碟] 的 离初始状态最远的图案 的定理可知: 任一 离初始状态最远的状态 都为 终极状态 ,但反过来说却是错误的!
5.出路:如果 状态 A 不是 终极状态,我们称 状态 A 有 “出路” 。 只有 状态 A 有 出路时,我们才有可能沿着状态 A 的 出路 构造比 状态 A 更远的 状态 !而寻找这种 出路 ,照目前看来,在没有更先进的理论面世之前, 也只能用“循环变换”理论更容易些了!
定理:任一 状态 不 偶尔路过 某一 终极状态 。
证明非常简单,因为若一个状态 P 偶尔路过 某一 终极状态,设状态 P 变换序列为 a1 a2 ... b1 b2 ... bm -c ... an ,其中 b1 b2 ... bm 为终极状态,那么对于这个 终极状态 b1 b2 ... bm ,存在一个由 c 结束的最少步变换序列 c1 c2 ... c(m-1) c , 使得 b1 b2 ... bm = c1 c2 ... c(m-1) c ,这时我们发现,变换序列 P 已经变为 a1 a2 ... b1 b2 ... bm -c ... an = a1 a2 ... c1 c2 ... c(m-1) c -c ... an , a1 a2 ... b1 b2 ... bm -c ... an = a1 a2 ... c1 c2 ... c(m-1) ... an ,即说明 P = a1 a2 ... b1 b2 ... bm -c ... an 不是 最少步变换序列,这与 状态 的概念矛盾, 故定理得证。
由上面的定理直接得到: 离初始状态最远的状态 不 偶尔路过 某一 终极状态 。
这个定理告诉我们,如果一个状态是 终极状态 ,那么它有可能是一个 离初始状态 最远的状态 ,如果它不是 最远的状态 ,那么我们不可能再通过这个 终极状态 来构造 其它任何 状态 ,当然更不可能通过这个 终极状态 来构造 离初始状态最远的状态 了! 呵呵,希望魔友们在寻找 离初始状态最远的状态 时一定要避开 终极状态 的暗礁呀!
乌木 先生的问题很好!UULLRRU'DDU'LLRRDD 与 UULLRRDDUULLRRDD 都是 循环变换, 但略有不同,比如“UULLRRU'D”与“UULLRRDD”两个子最少步就不一样。
总之,“魔方的循环变换”有很多,在用计算机编程解决具体某一魔方最少步问题时, 要对生成的循环变换库进行最大限度的优化,删减相近的循环变换,并要包含所有最少步, 使得循环变换库最小。
循环变换球面网
看到大家这两天都在研究“魔方网”,我也来这儿补补“循环变换球面网”!
要我说,“魔方态关系网”可以看成均匀分布在一个大球面上。这个球面的大圆就是长度最大的
“循环变换”,每一个“循环变换”都是这个球面上的大圆或小圆。呵呵,这只是一个形象的比喻。
所谓大圆就是球体表面最大的圆,它的特点是圆心就是球体的球心,其它的圆心不过球心的圆叫小圆。
大家可以研究一下“循环变换关系网”、“广义循环变换关系网”、“算子循环变换关系网”等等,
以及它们的异同并绘制它们的图形样本,这对大家的“各种网”都有帮助!我初步考虑可以这样绘制:
1.循环变换:圆(正三角、正方形等等都是“圆”)
2.广义循环变换:封闭的不规则图形
3. N 阶(即周期为 N )算子循环变换: N 个全等花瓣连成的封闭图形
我构造的 2×2 平面魔方“循环变换球面网”
2×2 平面魔方有 4 种操作 U 、 D 、 L 、 R 。 2×2 平面魔方的“循环变换球面网”
为“正八面体的循环变换球面网”(如图)。
请各位魔友注意,图中 A --> B 箭头表示:从 A 到 B 但还需要整体旋转后才能得到 B 。
图中不带箭头的可以互相转换;但带箭头的是不能互相转换的,转换后还需整体旋转。
我们不妨分别用 U 、 U+ 、 U2 、 U- 表示(D 、 L 、 R 操作同理):
U 表示操作 U 后不需要再做整体旋转;
U+ 表示操作 U 后再做顺时针整体旋转;
U2 表示操作 U 后再做整体旋转 180 度;
U- 表示操作 U 后再做逆时针整体旋转。
由 2×2 平面魔方“正八面体的循环变换球面网”可以得出, 2×2 平面魔方“循环变换”
只有三种:
1. 步长为 2 的循环变换:如 U U (两点式圆)
2. 步长为 3 的循环变换:如 D R U- (正三角圆)
3. 步长为 4 的循环变换:如 D U D U (正方形圆)
其他的封闭多边形均是“广义循环变换”,当然可以构造出 N 阶(即周期为 N )算子循环
变换。请感兴趣的魔友自己试试!
由 2×2 平面魔方“正八面体的循环变换球面网”可以得出,2×2 平面魔方总状态数只有 6 个
(经过整体旋转后相同的为同一状态)。最小循环变换为 2 个步长,最大循环变换为 4 个步长。
由最大循环变换为 4 个步长立即得到: 2×2 平面魔方
最远状态的最少步只有 2 个步长。[em07]
(即得 2×2 平面魔方任意两个状态之间最多需要 2 步),
比如: D U 就是 2×2 平面魔方的一个最远状态!
[此贴子已经被作者于2005-5-30 11:53:22编辑过]
从上面的例子,大家可能对“循环变换球面网”已有了更进一步的认识。实际上各类魔方的
“循环变换”都构成“循环变换球面网”!
不过,请大家注意,这个“循环变换球面网”的球面可能不是“三维空间的球面网”,而是
“高维空间的球面网”!
为了大家便于理解 2×2 平面魔方总状态数只有 6 个,我把这 6 个状态“解压缩”展开
给各位看(借用乌木先生的图)!
再附上“正八面体的循环变换球面网”图,让大家对照理解!
2×2 平面魔方有 4 种操作 U 、 D 、 L 、 R 。 2×2 平面魔方的“循环变换球面网”
为“正八面体的循环变换球面网”(如图)。
请各位魔友注意,图中 A --> B 箭头表示:从 A 到 B 但还需要整体旋转后才能得到 B 。
图中不带箭头的可以互相转换;但带箭头的是不能互相转换的,转换后还需整体旋转。
我们不妨分别用 U 、 U+ 、 U2 、 U- 表示(D 、 L 、 R 操作同理):
U 表示操作 U 后不需要再做整体旋转;
U+ 表示操作 U 后再做顺时针整体旋转;
U2 表示操作 U 后再做整体旋转 180 度;
U- 表示操作 U 后再做逆时针整体旋转。
下面再给出两个 2×2 平面魔方 24 态的关系网(它们不是“循环变换球面网”,因为
2×2 平面魔方 24 态“循环变换球面网”在三维空间中根本不存在,也就无法用三维空间
表示了。2×2 平面魔方 24 态“循环变换球面网”至少是一个四维空间的“球面网”。)
noski 先生的 24 态图:
乌木先生的24 态的关系网:
noski 先生的 24 态图是乌木先生的图的改进版,它们能够间接体现“循环变换球面网”。
因此 noski 先生的 24 态图已经是最好的用“三维立体图”构造“高维空间网”的表示
法了。但它不是 2×2 平面魔方 24 态“循环变换球面网”,而这个 24 态“循环变换球面网”
的确是存在的,不过是我们无法用“三维立体图” 表示罢了!因为三维空间根本不存在 24 个
顶点的正多面体!
[此贴子已经被作者于2005-6-1 12:29:46编辑过]
问题:某一魔方“傻瓜转法”旋转的最少步数为多少 ? 现给出一个带有理想
色彩的猜想答案:魔方“傻瓜转法”旋转的最少步数就是它的所有的状态数。
比如:正六面体的三阶魔方有 4.325200 E+19 种不同状态的图案,猜想:它的
“傻瓜转法”旋转的最少步数为 4.325200 E+19 ;
又如:正十二面体的五魔方有 1.006696 E+68 种不同状态的图案,猜想:它的
“傻瓜转法”旋转的最少步数为 1.006696 E+68 ;
由这个奇特的 2×2 平面魔方的“广义循环变换” D R D+ D L- R 得知:
这个“广义循环变换” D R D+ D L- R 是 2×2 平面魔方的一个“傻瓜遍历”。
从我这个图中得到的一点结论:
1.这个图是一个哈密顿图,即从一点出发,能找到一条路径,遍历所有点,最后回到出发点.
2.从图中可知,任意两点间的最大距离是4,即任意两个状态的转换不会超过4步.比如:
|1 2| |4 3|
|3 4| 和 |2 1| 两点同态,但不整体旋转的话,要通过RLUD四步转换过去.
这个结论从乌木兄的世代图中能更好的看出来.
理论部分有点难.有没有理论入门基础.
循环变换的迷雾——“无效变换”
1.有效变换、无效变换的定义:
十一、有效变换的定义
一、有效变换的定义:
1.步长为 1 的变换均为有效变换;
2.设变换 A = a1 a2 a3 ... a(n-1) 为有效变换,变换 a1 a2 a3 ... a(n-1) an
如同直接去掉了 A 中某一步长为 1 的变换,那么称变换 an 使变换 A 无效,
否则称变换 an 使变换 A 有效。
比如: 变换 (-a) 使变换 a 无效。
如果 a b c d e f 为有效变换,且 a b c d e f (-c) 如同 a b d e f ,
则称变换 (-c) 使变换 a b c d e f 无效。此时得到 a b c d e f = a b d e f c 。
显然,所有的 最少步变换 均是 有效变换。如果 (-c) 使 a b c d e f 有效,
则得到任何以由 c 结束的变换均与 a b c d e f 不同。
3.设变换 A = a1 a2 a3 ... a(n-1) 为有效变换,变换 an 使变换 A 有效,
则称变换 a1 a2 a3 ... a(n-1) an 为有效变换。
二、左有效的定义:
设变换 A = a1 a2 a3 ... a(n-1) 为有效变换,变换 an a1 a2 a3 ... a(n-1)
如同直接去掉了 A 中某一步长为 1 的变换,那么称变换 an 使变换 A 左无效,
否则称变换 an 使变换 A 左有效。
比如:如果 a b c d e f 为有效变换,且(-c) a b c d e f 如同 a b d e f ,
则称变换 (-c) 使变换 a b c d e f 左无效。此时得到 a b c d e f = c a b d e f 。
显然,如果 (-c) 使 a b c d e f 左有效,则得到任何以由 c 开始的变换均与
a b c d e f 不同。
由“有效变换”定义的第 2 条,我们不妨这样定义“无效变换”。
设变换 A = a1 a2 a3 ... a(n-1) 为有效变换,a1 a2 a3 ... a(n-1) an
如同直接去掉了 A 中某一步长为 1 的变换,那么称变换 an 使变换 A 无效,
此时,我们称 变换 a1 a2 a3 a(n-1) an 为无效变换。
并且,任何以无效变换 a1 a2 a3 a(n-1) an 打头的变换都是无效变换。
比如:c z (-c) 为无效变换,那么 c z (-c)、c z (-c) a、c z (-c) b a
等等都是“无效变换”。
2.引用“宇宙飞碟”有关“缩回变换”说明:
呵呵,他们仅是“无效变换”的几个特别的例子!用“缩回变换”还是比较形象的。
3.引用“乌木先生”对“循环变换球面网”的错误认识:
确实,态A经UDU'D'等等的四边形回路,与UUUU一样,都回到态A,再小的回路(三角形)好像不存在。
UDU'D' 是无效变换,因为 UDU' = D 是无效变换,所以 UDU'D' 是无效变换。
因此它不是循环变换。它在“循环变换球面网”中则呈现返回折线的无效变换。
但 UUUU 是有效变换,并且是循环变换。它在“循环变换球面网”呈现正方形。
所有的循环变换在“循环变换球面网”中均呈现高维空间的正多边形“圆”的
图样!(如正三角、正方形等等都是“圆”),请大家参阅我的“循环变换球面网”
的相关内容。
4.引用“邱志红”在《续一式解万方》中把“无效变换”当“循环变换”用:
续一式解万方
-------- N 阶魔方的其他问题及延伸
作者:邱志红
是不是觉得很不可思意。还是觉得不可能。那我就证明一下吧。
证明:1.对于大于 S 的层次,至少第 S 个转层是不参加转动的,因为大于 S 的层次根本就没有那个转层。现在来看一下 H 函数吧。看看缺少某一个转层即缺少某种颜色字符的层之后的 H 函数是怎么样的吧。
H(p,q,r)=YpZq--Yr-ZqYp-Zq--YrZq
如果缺少 Yp 层的参与,那么 H(p,q,r)=Zq--Yr-ZqZq--YrZq=I
如果缺少 -Yr 层的参与,那么 H(p,q,r)= YpZq-ZqYp-Zq-Zq=I
如果缺少 Zq 层的参与,那么 H(p,q,r)= Yp-Yr-Yp--Yr=I
上面的 I 表示循环操作。发现三个转层缺少任何一个参与,该操作就成了循环操作了。这样就证明了大于 S 的层次即 S 层次里面的层次是不受 H 函数影响的,所作的是循环。
2。对于小于 S 的层次,即 S 层次外面的层次的问题就不好办。因为它不象上面那样至少有一个层没参与转动。它可是三个转层都参与转动了啊,但也是一个循环操作。
如果对所有转动了的小块进行跟踪,要进行 3n2-2n 次跟踪,是不现实的。明显地单体分析是行不通的,还是要整体分析。要是能像上面那样利用循环就方便多了。
为了让大家看得更清楚,我把 H(p,q,r) 进行了加括号处理:
H(p,q,r)=(Yp)(Zq-)(-Yr-)(Zq)(Yp-)(Zq-)(-Yr)(Zq)
如果缺少 Yp 层的参与,那么 H(p,q,r)=(Zq-)(-Yr-)(Zq)(Zq-)(-Yr)(Zq)=(Zq-)(-Yr-)(-Yr)(Zq)=(Zq-)(Zq)=I
这时的(Zq-)(-Yr-)(Zq)(Zq-)(-Yr)(Zq)是典型的连环“无效变换”,它并不是“循环变换”。
其它两个也一样。
5.小结:请大家理解运用“循环变换”知识时,一定要正确理解“循环变换”
的定义,不要和假循环变换“无效变换”混淆。因为她可能影响您对“循环变换”
的其他相关问题的思考。
即:理解“循环变换”首先要理解“有效变换”,理解“有效变换”首先要
绕过循环变换的迷雾——“无效变换”。
循环变换的迷雾——“无效变换”
1.有效变换、无效变换的定义:
4.引用“邱志红”在《续一式解万方》中把“无效变换”当“循环变换”用:
5.小结:请大家理解运用“循环变换”知识时,一定要正确理解“循环变换”
的定义,不要和假循环变换“无效变换”混淆。因为她可能影响您对“循环变换”
的其他相关问题的思考。
即:理解“循环变换”首先要理解“有效变换”,理解“有效变换”首先要
绕过 循环变换的迷雾——“无效变换”。
一时找不到我6.15.那话在哪里说的,不管它了。
1、“UDU'D'”是个循环变换,以及与之相应的四个态构成
的“四边形”,都是客观存在;
再小的循环不存在。好像当时我仅是说明这一点而已。
当时我还没“有效无效”的概念。
如果它是无效变换,并不影响它是个循环变换。
“有效无效”和“循环不循环”好像是两个概念。
2、好像当时我只是讨论“态态关系网”,其中不能排除“UDU'D'”
这一“网眼”。而您现在所说的网仅是“态态关系网”中
按一定要求“提炼”出来的一种网。
如果现在我要把“UDU'D'”纳入您现在所说的网,
那才谈得上“对……的错误认识”。
3、申诉之余,您的“纠错”还是有积极作用的:
今后不要把无效变换错误地纳入“循环变换球面网”才是。
答复请您见下贴。
[此贴子已经被作者于2005-10-10 8:56:38编辑过]
1、“UDU'D'”是个循环变换,以及与之相应的四个态构成
的“四边形”,都是客观存在;
再小的循环不存在。好像当时我仅是说明这一点而已。
当时我还没“有效无效”的概念。
如果它是无效变换,并不影响它是个循环变换。
“有效无效”和“循环不循环”好像是两个概念。
2.魔方循环变换的定义:
对于 有效变换 A ,如果 A = 1 ,并且 any(circle0(A),half(A))
都是最少步变换,则称变换 A 为循环变换。记作:
循环变换 A 或 circle(A)
即:“循环变换”是“有效变换”,“无效变换”一定不是“循环变换”。
只有当一个变换是“有效变换”时才考虑它是否是“循环变换”,只有
极个别的“有效变换”是“循环变换”。“循环变换”的概念要求极其苛刻!
如果按您的理解,小于 4 的循环不是不存在,比如 F F' 就是长度为 2
的循环!这显然不对,就是因为它是“无效变换”!
[此贴子已经被作者于2005-10-10 8:51:26编辑过]
乌木 先生:
(能否说是无数的?)大多数人理解的“循环”可以说是“无数的”!
正是因为这种无规律的“无数”,使人忽略了它更深层次的“浓缩”!
“循环变换”概念就是这种“浓缩”意义上的“循环”,她的定义
使得“循环变换”个数“有限”,并且她的个数不大于她所对应的魔方
的总状态数。(注:由旋转、对称得到的“循环变换”,可归为“同一”
“循环变换”)
(建议在您的循环变换之前冠以适当的限词或干脆更名。)这个建议
很好。我想,您理解的“循环变换”可能就是“循环”吧。呵呵,把您搞
糊涂了。我当初也怕大家也糊涂,特地把“循环变换”的定义写在最前面,
可是大家还是被所谓的“循环”搞糊涂了。
我想,不妨把她叫做“紧致循环变换”或“浓缩循环变换”等之类的
名称,您看哪个更合适?或者另取其他限词?总之,“循环变换”这个词
是不能缺少的吧?您看呢?
另外,“循环变换”理论现在还处于刚起步阶段,我想等她发展较为
成熟后再考虑重新改版,那时再对其所有名称定义规范一下。现在大家先
将就着理解。我想,现在就让大家慢慢体会这种“紧致循环变换”没什么
不好,至少可以让大家理解其中的所有“半子变换”都是“最少步变换”,
很有意义的。也好让有这方面才能的广大爱好者积极参与“最少步变换”
的研究工作。您看呢?
[此贴子已经被作者于2007-5-26 17:23:20编辑过]
“奇偶差异性”魔方的性质
“奇偶差异性”魔方的性质:具有“奇偶差异性”的魔方 的 奇、偶状态 独立。
由于 “奇偶差异性”的魔方 只能有步长为偶数的循环变换,因此决定了她的任何 奇数
步长 的变换都无法被 偶数 步长 的变换 表示,从而决定了这种魔方的“奇、偶差异性”,
即 这种魔方 的 奇、偶状态 独立。
这两天大家争论的 所谓的“扰动”、“非扰动” 本质上就是这种魔方的“奇、偶差异性”。
她是因为她不存在步长为奇数的循环变换造成的。这不能不说是“缺憾”,可惜的是 正六面体
N 阶魔方 都是这种具有“缺憾”的魔方。
反过来说,比如 正十二面体五魔方 存在 长度为 5 的循环变换,所以 正十二面体五魔方
不是“奇偶差异性”的魔方,因此 正十二面体五魔方 不存在 所谓的“扰动”、“非扰动” 。
几个问题
想知道面块的处理复原方法。
是不是有高手知道内部虚拟魔方的处理复原方法,做到完全复原。
内部虚拟魔方和外部魔方是否没有关系,即理论上内外是否都能转到我要的图案。
本人来发表些拙见,就算抛砖引玉吧!
1.面块的复原可以按照常规方法复原(网上很多,不再介绍), 金优 先生
是这方面的高手,您过谦了。
2.如果面块复原了,便可以按照 3 楼的方法 或者 参照 本人的拙作:
[原创]我来玩玩“正六面体三阶魔方”---《循环公式》 复原内部虚拟魔方。
3.如果面块复原了,那么内部任何虚拟魔方都不会出现所谓的“扰动现象”,
反之如果内部任一虚拟魔方出现了所谓的“扰动”,那么,面块肯定没有复原!
4.由 3 可以得出:内部虚拟魔方和外部魔方存在某种制约关系的,即理论
上内外不能都转到我们想要的图案。
5.不能简单地把这种“内部、外部魔方存在的某种制约关系”描述为“扰动”,
因为最外层的“扰动”不影响内部,但内部的“扰动”一定影响最外层。
6.可惜的是,这样的“某种制约关系”在理论区暂时无法得到有效的统一。
因为那里的理论好象也存在“某种制约关系”。[em01]而这种“制约关系”恰恰
是 2 楼问题的答案。 本人目前无暇更无意去掺和这种“制约关系”。[em07]
7.用“循环变换理论”解释这种“制约关系”很简单,就是对应的“转层”
均应保持“奇偶相同性”!相关论述请参考本人拙作:“奇偶差异性”魔方性质。
8.欢迎大家在这里无拘无束地畅谈这种“内部、外部魔方的制约关系”。
[此贴子已经被作者于2006-3-5 11:27:08编辑过]
请注意:我的软件时常需要修改。
看来以偶的智商是难以理解了...
猜想:内部虚拟魔方的状态,与外部面块的完全复原有干扰。
如果能证明,就是定理。
7.用“循环变换理论”解释这种“制约关系”很简单,就是对应的“转层”
均应保持“奇偶相同性”!相关论述请参考本人拙作:“奇偶差异性”魔方性质。
高阶魔方的任意嵌套魔方 对应的“转层”保持“奇偶相同性” 的简单“证明”(阐明)
一、高阶魔方的“最外层”、任意嵌套魔方的“中间层”(奇数 阶魔方 才有“中间层”):
1.高阶魔方的“最外层”与它自己具有“奇偶完全相同性”。
2.任意嵌套魔方的“中间层”(奇数 阶魔方 才有“中间层”)具有“奇偶完全相同性”。
二、高阶魔方的任意嵌套魔方对应的“转层”步数和 具有“奇偶相同性”:
(以 五阶 魔方为例 阐明,下面举的例子的内部嵌套魔方全部都是完全还原状态)
1.嵌套魔方对应的同一“转层”相差 “偶数步(奇偶相同性)”的实例 :
2.嵌套魔方对应的 两个对应的“转层”相差“奇数步”(两个奇数和还是偶数)的实例:
3.由 1、2 两方法组合构造出的 具有“奇偶相同性”的“转层”:
如果各 嵌套魔方对应的“转层”步数和 相差 “偶数步” ,那么我们总可以通过
1、2 两方法使它们对应的“转层”达到“奇偶完全相同”。
小结:高阶魔方的任意嵌套魔方对应的“转层”步数和 具有“奇偶相同性”。
三、高阶魔方的任意嵌套魔方对应的“转层”是不可能发生“奇偶差异性”的:
因为 正六面体 N 阶魔方是“奇偶差异性”魔方,即:对应的“转层”的 奇数步状态
与 偶数步状态 不能 互相表示。 因此 高阶魔方的任意嵌套魔方 的对应的“转层”是
“奇偶相同的”。
换言之,高阶魔方任意嵌套魔方对应的“转层”是不可能发生“奇偶差异性”的。要么
同时“奇数步”,要么同时“偶数步”。
高阶魔方的任意嵌套魔方对应的“转层”步数和具有“奇偶相同性”的实现方法举例说明:
(用 五阶 魔方的实现方法各举一例。下面的例子的内部嵌套魔方全部都是完全还原状态)
1.嵌套魔方对应的同一“转层”相差 “偶数步(奇偶相同性)” 的实现方法:
2.嵌套魔方对应的 两个对应的“转层”相差“奇数步” 的实现(两个奇数和还是偶数):
魔方的“生命之树常绿,而理论应该常青”。
[此贴子已经被ggglgq于2006-6-21 19:29:19编辑过]
对了,顺便说一下,对于正六面体的三阶魔方,这个“前 N 步的节点”
的魔方最少步库 构造时,再考虑和它旋转、对称后都相同的最少步,就要
至少除以 48 ( 6 个面,每个面都有 4 个相邻面,确定了两个相邻面即
固定了该魔方,然后再考虑 对称 的 2 种情形,即可得 6 x 4 x 2 = 48 )
即得 按 《魔方循环变换理论》 制作的 正六面体的三阶魔方最少步库 的
大小为 4.325200 E+19 的算术平方根 除以 48 得到:137 M 即 0.137 G 。
然后考虑每个字节所表示的数值最大为 256 ,六个面共有 12 种步长为 1
的变换,256 > 12 x 12 ,因此每个字节又可至少装下 两个步长 的变换,
从而由 137 M 除以 2 得到:68.5 M 。所以我们可以最多用 68.5 M 的
存储空间,即可进行 The Two-Phase Algorithm 算法。 这确是一个喜人的
数字,也是一个理想中的数字,对于程序员们来说,要走的路还长 ......
有关 48态 问题请大家参考:48 同态图解
[此贴子已经被ggglgq于2006-11-6 11:02:20编辑过]
不知 黑王子 先生您何时上线,很是思念呀。 论坛中好象有很多身怀绝技的
高手多是以“侠客”、“隐士”的身份在论坛中出没呀。
下面引用 黑王子 先生的帖子,感谢 黑王子 先生细心留下的这些珍贵的资料!
二阶魔方最远状态计算机程序运行结果
完成态 1
第01步 9
第02步 54
第03步 321
第04步 1847
第05步 9992
第06步 50136
第07步 227536
第08步 870072
第09步 1887748
第10步 623800
第11步 2644
第12步 0
总 数 3674160
< 详情待续> QQ: 470967421
本人将G老师的程序运行结果整理以便分析比较:
旋转 180° 按一步计算
=========================================
完成态 1
第 1 步 2
第 2 步 5
第 3 步 19
第 4 步 68
第 5 步 271
第 6 步 1148
第 7 步 4915
第 8 步 18364
第 9 步 39707
第10 步 13225
第11 步 77
第12 步 0
=========================================
合 计 77802
旋转 180° 按两步计算
=========================================
完成态 : 1
第 1 步 1
第 2 步 3
第 3 步 6
第 4 步 17
第 5 步 59
第 6 步 217
第 7 步 738
第 8 步 2465
第 9 步 7646
第10 步 19641
第11 步 28475
第12 步 16547
第13 步 1976
第14 步 10
第15 步
=========================================
合 计 77802
请大家对比这个结论,再仔细研究一下。可以证明 “48 态”的极限值为 48 。
大家也可以参考即将出炉的 “常见魔方 最远状态 的 最少步数” 的数据仔细分析!
我是说,您用了“对称”一词,我就想到下面的情况:
[此贴子已经被作者于2006-11-7 17:46:21编辑过]
乌木 先生,这几天比较忙,没顾上浏览论坛,攒了不少问题没有处理,请 乌木 先生
能体谅、理解。
您这几次的问题,可以概括为您最后这一次的问题。最后这一次的问题 是 大多数的
魔友能够体会到的问题,正如您所回答的“‘对称’含有对称的操作,如 对于 0 号位置
的‘对称操作’为 U ~ U',F ~ F',D ~ D',B ~ B',R ~ L' 和 L ~ R'” 等等。
但“对称”也包含“对称的图案”,如 对于 0 号位置 的 “图案的镜像”分别为:
蓝、绿、红、橙 自对应,黄 ~ 白 、白 ~ 黄 。
其他位置的“对称”或“镜像”均含有“对称操作”及“对称图案”(或“图案镜像”),
您可以通过仔细研究 48 态,进一步地理解 48 态 其他位置的这种“对称”或“镜像”。
[UserName=乌木]
唉,这种“咬文嚼字”真累,相信大家会明白的。请 乌木 先生 尽量少“咬文嚼字”,
(有的时候因您没“咬”对地方,反倒会让您更糊涂)让大家更“容易”明白意思为宜。
数学的东西很多地方需要高度的 抽象思维 才能理解,往往越“咬文嚼字”越糊涂。
[/UserName]
[此贴子已经被作者于2006-11-13 10:49:28编辑过]
[此贴子已经被ggglgq于2006-11-15 9:12:41编辑过]
真有趣,同一个态,分别做对称的操作,所得到的两个态不是镜面对称的。而镜面对称的态就不可能是同一魔方。用下图大概描述一下:(当然,这与本帖话题无关,是我读本帖时顺便带出来的。)
[此贴子已经被作者于2006-11-15 15:07:09编辑过]
欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) | Powered by Discuz! X2 |