目录
一,个人历程
2020年1月6日,开始系统化地写魔方系列博客。
我从初一开始玩魔方,首先玩的就是三阶魔方,靠自己的理解轻轻松松就能完成正确的一面,但是根本无法复原。
大概在初二的时候在魔方小站学习了层先法,就学会复原了。
然后以此为基础,其他所有魔方都靠自己探索。
首先是二阶魔方和四阶魔方会复原了,而且我知道四阶魔方怎么样操作就不需要最后一步的特殊公式。
高中的时候,在脑海中完成了分析,确定任意阶魔方都会复原,但是对此没有任何记录。
然后我买了7阶魔方,果然7阶魔方是会复原的。
然后大学沉迷学习和看小说,也没什么钱,就没有再探索魔方了。
毕业之后一年半一直没有从事研发类岗位,更没有探索了。
现在是2020年1月6日,我最近转岗重新回到了开发岗,今天重启魔方探索。
二,魔方基本要素
要定义一个魔方,最基本的要素我认为有3个:
(1)魔方的组成部件:中心块,棱块,角块,等等。
(2)魔方的可执行操作:可以执行的操作构成的集合,魔方通行的按轴数分类的方法就属于这方面。
(3)魔方的目标态:要转成什么样子,大部分魔方是有唯一复原态的。目标态包括颜色、组成部件的位置和方向等。
三,魔方的结构化
所有魔方都可以转化成一个结构化的问题。
1,魔方的状态
首先,每个组件分为固定位置和可变位置。
其次,每个组件根据形状和颜色决定有多少种朝向。
最后,一个魔方的状态包括所有组件的位置和朝向。
可以把复原状态记为x0
PS:每个部件的位置和朝向都是非常有限的
2,魔方的操作
一个操作其实就是一个A到B的映射函数,其中B是魔方的所有状态构成的集合,而A是B的子集。
f(x)=y表示经过1次该操作,x状态就可以变成y状态
一个魔方的操作集可以表示成{f1,f2,...,fk},一共k种操作
PS:每个魔方的操作数都是非常有限的,不存在旋转123度这种旋转任意角度的情况(能旋转123度的魔方也不能说绝对不存在,但是可能需要几千个部件,现在还不存在这个世上)
3,复原问题
魔方的复原问题,可以表示成一个结构化的图论问题:
魔方的每个状态都是一个点,每个状态下的每种操作都是一条有向边,这样就构成了一个确定的有限的图。
复原问题就是,在这个图中任选一点,找到通向复原状态对应的点的有向路径。
也可以表示成代数的形式,即求函数g,g(x)是一个序列{t1,t2,...,tn},n是复原所需的步数,使得ft1(ft2(...ftn(x)...))=x0成立
4,还原任意状态问题
把魔方从任意状态x变成任意状态y,即求函数F,F(x,y)是一个序列{t1,t2,...,tn},n是复原所需的步数,使得ft1(ft2(...ftn(x)...))=y成立
5,子问题
几乎所有的魔方都有层先法,层先法是把问题拆分成若干子问题,每个子问题都有各自的方法或者公式。
魔方也有其他方法可以复原,层先法是最简单但是步骤比较多的方法。
不同的复原方法,会把复原问题拆分成不同的子问题。
四,魔方分类
1,分类大纲
按照魔方能否被打乱位置和朝向,分为普通魔方、恒位魔方(只能打乱朝向)、恒等魔方(位置和朝向都无法打乱)
普通魔方按照魔方操作是否是遗忘操作,即在任意状态下合法的操作集都是一样的,分为遗忘魔方和非遗忘魔方。
普通魔方按照魔方外形是否固定,分为固形魔方和非固形魔方。
其中固形遗忘魔方,按照操作是否具有对称性,分为对称魔方、非对称魔方。
所以一共分7大类:对称固形遗忘魔方、非对称固形遗忘魔方、非固形遗忘魔方、固形非遗忘魔方、非固形非遗忘魔方、恒位魔方、恒等魔方。
2,概念澄清
(1)固形
这里的魔方外形,是拓扑的概念,而不是单纯的几何外形。
比如,三阶齿轮和五阶齿轮随便一转就不是正方体的外形,但这只是部件的朝向不同而已,所以还是固形魔方。
但是二阶齿轮我认为是非固形魔方,因为需要拉开和合并。
(2)轴
二阶魔方是六轴,而不是三轴。
那么同理,斜转魔方是八轴,而不是四轴。
(3)整体旋转
一般情况下,我们不把整个魔方旋转当成一种操作。
但是,有时为了提高搜索算法的效率,也可以引入这个操作。
五,魔方分类
1,对称固形遗忘魔方
对称魔方按照旋转轴,分为六轴魔方、四轴魔方、八轴魔方、十二轴魔方、二十轴魔方。
2,非对称固形遗忘魔方
3,非固形遗忘魔方
4,固形非遗忘魔方
5,非固形非遗忘魔方
6,恒位魔方
7,恒等魔方
六,魔方之间的关系理论
0,为什么要梳理所有魔方之间的关系
因为这样才能更深刻的认识魔方理论,更快的破解魔方的复原方法。
举个例子来说,魔方AB很像,怎么样根据A的公式得到B的公式,这个问题抽象出来之后,我们下次再考虑“魔方CD很像,怎么样根据C的公式得到D的公式”这个问题的时候就发现,答案早已有了。
1,均匀满射
如果集合A的元素数是n*m,集合B的元素数是n,且集合A到B的满射f满足,对于B中的任意元素y,在A中恰好有m个元素x使得f(x)=y,则称A到B的映射是均匀满射。
2,部件分组
一般情况下,把一个魔方的所有部件分成若干组的依据,都是“可达”这个二元关系。
以三阶魔方为例,固定位置的中心块和任何块都不可达,那么所有的中心块为一组,而所有的角块之间都是可达的,那么所有的角块为一组,同理所有的棱块为一组。
3,魔方内部2个部件之间的关系
部件之间的非平凡关系是:不可区分关系,即可达且等价
四阶魔方的四个白色中心块之间,就是可达且等价,所以是不可区分的。
但是,四阶魔方复原之后相邻的2个棱块,虽然看起来一样,也是可达的,但却是可区分的,因为一个棱块到底另一个棱块的位置时,必定朝向是反的。
4,2个魔方的部件之间的关系
(0)默认映射
上文提到,部件分组是依据可达关系,所以五阶魔方的所有棱块并不是1组,而是2组,即12个中心棱和24个侧棱。
那么,在讨论2个魔方的深刻联系时,我们讨论的肯定是数量相同的2组部件。
这2组部件如何进行一一对应,一般都是很明显的,毫无争议的,我们称之为2组部件之间的默认映射。
(1)单个部件和单个部件的关系
部件之间的非平凡关系有2种:等价、均匀满射
平凡关系就是无关。
(2)一组部件和一组部件的关系
常见的第一类非平凡关系有:全部等价、全部均匀满射、部分均匀满射部分等价。
我们把这一类关系记作两组部件之间的第一类相似关系,即组件可以一一对应,且对应的每2个部件之间都是非平凡关系。
常见的第二类非平凡关系是:两组部件的数量一样,一组是每个部件都可区分,一组是部分部件不可区分,如果把一样的这些部件看做一个元素,则2个元素数不同的集合之间是满射关系。我们把这一类关系记作两组部件之间的第二类相似关系。
PS:这里我用的术语是2个集合之间是满射关系,而不是2个集合之间存在满射,是因为原意是“2个集合的默认映射是满射”,默认映射的概念参考上文。
常见的第三类非平凡关系是:两组部件的数量一样,且各有一部分组件是不可区分的,且两个部件组的“可区分”这个二元关系是同构的。我们称之为两组部件之间的第三类相似关系。(---------------------------------------只有这个还没找到实例-----------------)
常见的第四类非平凡关系是:两组部件的数量一样,且各有一部分组件是不可区分的,且两个部件组的“可区分”这个二元关系是不同构的。我们称之为两组部件之间的第四类相似关系。
(3)所有部件和所有部件的关系
常见的非平凡关系有4种:
第一种,分组数相同,A魔方的每一组和B魔方的对应组,都是相似关系。
第二种,A的分组数小于B的分组数,A魔方的每一组和B魔方的对应组,都是相似关系。
第三种,A的分组数大于n,B的分组数也大于n,A魔方中有n组和B魔方的n组之间是相似关系,俩魔方的剩余组之间是平凡关系。
第四种,所有部件组都是平凡关系,但是复原思路类似。
我们分别称之为一级、二级、三级、四级相似关系。
5,魔方之间的关系
(1)等价
一级相似关系中,最特殊的一种就是等价关系。即,各个部件组都是第一类相似关系中的全部等价关系,且操作集也是同构的。
如:
三阶魔方和镜面魔方是等价关系。
二阶魔方和二阶镜面魔方是等价关系。
三阶图案魔方A和乾坤魔方是等价关系。
三阶图案魔方D和三阶魔方是等价关系。
香蕉魔方和223魔方是等价关系。
(2)伪同构
伪同构就是,各个部件组都是第一类相似关系中的全部等价关系,但操作集是不同构的。
如:
三阶半转魔方和三阶魔方是伪同构关系。
唯棱魔方和八轴三阶魔方是伪同构关系。
(3)一级一类
一级一类就是,各个部件组都是第一类相似关系,但至少1个组不是全部等价关系。
换句话说,一级一类就是各个部件组都是第一类相似关系,但是整体不是等价也不是伪同构。
如:
上古魔方和三阶魔方是一级一类关系,其中,角块是全部等价,棱块是部分均匀满射部分等价,中心块是部分均匀满射部分等价。
棋盘二A和棋盘二B是一级一类关系,其中,角块是全部均匀满射。
三阶图案魔方A和三阶魔方是一级一类关系,其中,角块是全部等价,棱块是全部等价,中心块是全部均匀满射。
三阶图案魔方B和三阶魔方是一级一类关系,其中,角块是全部等价,棱块是全部等价,中心块是部分均匀满射部分等价。
三阶扭曲魔方和三阶图案魔方C4X是一级一类关系,其中,角块是全部等价,棱块是部分均匀满射部分等价,中心块是全部等价。
金子魔方和四轴枫叶魔方是一级一类关系,其中,角块是全部等价,棱块是全部均匀满射。
斜转魔方和斜转扭曲魔方是一级一类关系,其中,角块是全部等价,棱块是部分均匀满射部分等价。
12轴足球魔方和五魔方是一级一类关系,其中,12轴足球魔方的三角形中心块和五魔方的角块是全部均匀满射,12轴足球魔方的五边形中心块和五魔方的中心块是全部均匀满射,12轴足球魔方的三角形中心块和五魔方的棱块是全部等价。
钻石魔方和三阶魔方是一级一类关系,其中,角块是部分均匀满射部分等价,棱块是全部等价,中心块是全部等价。
(4)一级(其他一级相似关系)
即,除了等价和伪同构和一级一类之外,所有的一级相似关系。
即,至少有一组部件不是第一类相似关系的一级相似关系。
如:
棋盘二A和二阶魔方是一级相似关系,其中,角块是第二类相似关系。
棋盘二B和二阶魔方是一级相似关系,其中,角块是第二类相似关系。
棋盘四和四阶魔方是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是第四类相似关系。
棋盘三C和三阶魔方是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是第二类相似关系。
棋盘五C和五阶魔方是一级相似关系,其中,角块是第二类相似关系,侧棱是第二类相似关系,中心棱是第二类相似关系,中心块是第四类相似关系。
粽子魔方和三阶魔方是一级相似关系,其中,三阶魔方的角块和粽子魔方对应块是部分均匀满射部分等价,三阶魔方的棱块和粽子魔方对应块是第二类相似关系,三阶魔方的中心块和粽子魔方对应块是全部均匀满射。
苹果魔方和三阶魔方是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是部分均匀满射部分等价。
三阶百搭魔方和三阶魔方是一级相似关系,其中,角块是全部等价,棱块是全部等价,中心块是第二类相似关系。
三面体魔方和三阶魔方是一级相似关系,其中,角块是部分均匀满射部分等价,棱块是第二类相似关系,中心块是全部等价。
圆柱三阶魔方和三阶魔方是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是第二类相似关系。
233魔方和圆柱233A是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是全部等价。
六棱柱魔方和三阶魔方是一级相似关系,其中,角块是部分均匀满射部分等价,棱块是第二类相似关系,中心块是全部均匀满射。
三明治魔方和三阶魔方是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是第二类相似关系。
独角兽魔方和三阶魔方是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是第二类相似关系。
薯条魔方和三阶魔方是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是第二类相似关系。
小红帽魔方和三阶魔方是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是全部等价。
凹凸魔方和三阶魔方是一级相似关系,其中,角块是第二类相似关系,棱块是第二类相似关系,中心块是全部等价。
(5)子集
即,对应组都是第一类相似关系中的全部等价关系,且操作集也是同构的。
如:
二阶魔方是三阶魔方的子集
二阶镜面魔方是三阶镜面魔方的子集
三阶空心魔方是三阶百搭魔方的子集
唯棱魔方是三阶空心魔方的子集
二阶五魔方是五魔方的子集
122魔方是123魔方的子集
(6)双重子集
即,对应组都是第一类相似关系中的全部等价关系,且操作集也是子集关系。
如:
三阶魔方是五阶魔方的双重子集
五阶魔方是七阶魔方的双重子集
二阶魔方是四阶魔方的双重子集
四阶魔方是六阶魔方的双重子集
棋盘三A是棋盘五A的双重子集
棋盘三B是棋盘五B的双重子集
棋盘三C是棋盘五C的双重子集
棋盘二A是棋盘四的双重子集
棋盘四是棋盘六的双重子集
棋盘六是棋盘八的双重子集
三阶魔方是4叶按钮魔方的双重子集
112魔方是113魔方的双重子集
113魔方是114魔方的双重子集
223魔方是233魔方的双重子集
金子魔方是金字塔魔方的双重子集
三阶半转魔方是2叶按钮魔方的双重子集
(7)二级(其他二级相似关系)
暂无
(8)简化
所谓简化,就是A魔方的部件组数大于B魔方,但是A的若干组部件经过合并之后可以和B的对应部件组形成第一类相似关系中的全部等价关系,且这个合并过程提供了一个非平凡的复原方法。
如:
三阶魔方是四阶魔方的简化
斜转魔方是极光闪蝶魔方的简化
(9)三级(其他三级相似关系)
如:
四轴枫叶魔方和金字塔二重奏魔方是三级相似关系
(10)融合
如:
双心魔方是爱心魔方的融合
(11)四级(其他四级相似关系)
如:
114魔方和转角兽魔方是四级相似关系
一阶魔方和一阶金字塔是四级相似关系
一阶魔方和一阶五魔方是四级相似关系
五魔方和三阶魔方是四级相似关系
二阶五魔方和二阶魔方是四级相似关系
棋盘五A和棋盘五B是四级相似关系
棋盘三A和棋盘三B是四级相似关系
6,二元关系总览
(1)画图原则
不一定会把所有关系都画出来,但是会尽量避免出现孤岛(孤点)
明显具有传递性质的二元关系,有些就不画了,比如二阶魔方是六阶魔方、七阶魔方的双重子集。
所有的等价关系一定都画出来了。
(2)六轴对称固形遗忘魔方


(3)其他对称固形遗忘魔方
(4)其他魔方


7,几个有趣的关系
(1)三阶空心魔方 VS 三阶魔方
一般来说,A的组件是B的子集,那么复原B的方法一定可以用于复原A
但是,复原三阶魔方的方法,用于复原三阶空心魔方,却需要做一点微调。
本质原因是,空心魔方的中心块是存在的,却又看不见,所以只能随便猜一个六色布局,有1/2概率需要处理猜错的情况。
(2)简化
A魔方简化成B魔方,一般需要解决3类问题。
第一类问题:部件如何合并,如果有多组需要合并,可能还涉及合并的顺序问题
第二类问题:最后几个部件无法直接合并的特殊情况处理
第三类问题:合并之后按照B魔方的方法去复原,会出现无法复原的特殊情况
这3类问题,都要求我们对B魔方有着除了知道复原方法之外更深刻的原理认知,才能以不变应万变,迎刃而解。
七,魔方差分、恒等式
1,魔方差分
如果2个魔方是一级相似关系,且复原方法非常接近,那么我们可以用差分来表示子问题关系。
用集合语言来描述,把1个魔方需要需要处理的问题表示成1个集合,则A魔方和B魔方的差分就是A-(A&B),记作D=A-B,即在掌握了B的复原方法之后,只需要知道D如何处理,即可复原A。
常见差分:
D1 = 二阶镜面魔方 - 二阶魔方,即不通过颜色只通过形状来确定部件的对应关系和朝向
D2 = 三阶百搭魔方 - 三阶魔方,即隐形中心块的定位问题
D3 = 三阶图案魔方B- 三阶魔方,即中间层4个中心块的朝向处理
D4 = 三阶图案魔方A- 三阶图案魔方B,即顶层中心块的朝向处理
D5 = 三阶扭曲魔方 - 三阶图案魔方A,即中间层棱块的隐形朝向问题
D6 = 三面体魔方 - 三阶魔方,即棱块的隐形区分问题
D7 = 钻石魔方 - 三阶魔方,即顶层角块的隐形朝向问题
D8 = 上古魔方 - 三阶魔方 - D3 - D5,即六面颜色定位问题
D9 = 凹凸魔方,即底层复原问题
D10 = 小红帽魔方 - 凹凸魔方,即中间层复原问题
D11 = 三阶魔方 - 小红帽魔方,即顶层复原问题
PS:D2是6个中心块和整个魔方之间的位置关系,D8是6个面之间的位置关系。
2,恒等式
在已经定义一些差分的前提下,可以提出一些恒等式。
三阶镜面魔方 - 三阶魔方 = D1
三阶空心魔方 - 三阶魔方= D2
苹果魔方 - 三阶魔方 = D3
粽子魔方 - 三阶魔方= D3 + D4
六棱柱魔方 - 三阶魔方 = D3 + D4 + D6 + D7
圆柱三阶魔方 - 三阶魔方 = D3 + D5
三阶扭曲魔方 - 三阶魔方 = D3 + D5
八,获得魔方复原方法的方法论
以二阶齿轮魔方为例,介绍一下对于任何一种没见过的新魔方,如何推导出这种魔方的复原方法。
1,确认该魔方的结构化
第一次拿到这个魔方,我花了1分钟左右确定了操作集,从而确定了结构化。
2,找到一个接近复原状态的非复原状态
注意这种接近关系需要是非平凡的,这个概念参考《跨领域的抽象概念》中的“魔方的平凡接近状态”
我花了3分钟,找到了这个非平凡的接近复原状态:

那么此时,我就确定了存在一个公式,可以单独调整大角块的朝向。
3,分析出复原方法的梗概
二阶齿轮魔方只有4个小角块和4个大角块,且已经确定存在一个公式可以单独调整大角块的朝向。
于是,我基本上就确定了复原方法的梗概:
第一步调整正方体外形,第二步调整4个小角块的朝向,第三步调整4个大角块的朝向。
可行性分析:
因为层先法最难的就是最后一步,要保证不会打乱之前的步骤,而这个方法的最后一步是确定可行的,所以整个方法基本上确定是可行的。
4,找出预期存在的公式
这一步我大概花了5分钟。
至此,复原方法就完整的得到了。



被折叠的 条评论
为什么被折叠?



