pengw 发表于 2005-4-14 08:21:15

[原创]基于N阶定律的魔方复原算法分析:第一版(完成于西藏)

<p><b>魔方复原算法分析</b></p><p><b></b></p><p><b>-------------------------------------------------</b><br/>1<b> 穷举复原法<br/></b>1.1 初始设定<br/>起始图案:特定的任意非复原图案,称为A<br/>目标图案:复原图案,称为B<br/>1.2 操作目标<br/>找出A到B的最短复原步数<br/>1.3 复原方法<br/>* 假定A能在N步内复原<br/>* 偿试N步在另一个B图案魔方六个面的不同分配方式<br/>* 如果N步的一个分配方式再现了A,则此分配方式的逆序就是A图的复原步骤,再用N-1步递归调用第二步,直至找到最小分配方式<br/>* 如果N步的所有分配方式不能再现B,则用N+1步递归调用第二步,直至找到再现B的分配方式<br/>* 这也是当前唯一可行的最优算法<br/>1.4 算法优点<br/>算法结构简单,保证找出最短步数<br/>1.5 算法缺点<br/>耗时长,技术含量最低<br/>对四阶以上高阶魔方来说,无疑是挑战宇宙年龄<br/>2 <b>顺序复原法<br/></b>2.1 初始设定<br/>起始图案:特定的任意非复原图案,称为A<br/>目标图案:复原图案,称为B<br/>2.2 操作目标<br/>找出A到B的转换步骤<br/>2.3 复原方法<br/>将魔方每层块进行排序,逐层逐块对魔方块进行块归位,这种算法要求编排每个块可能状态对应的公式序列,依据块的当前状态选择合适的公式实施块复位,最后将所有块复位的公式按顺拼接在一起就是一个特定图案的复原步骤<br/>2.4 算法优点<br/>* 算法构造容易,组织结构非常清淅<br/>* 特适合初学编程新手及教学之用,本人十六年前做的第一个成功三阶复算法就是这种方法<br/>* 公式数据可手工采集组织,可随时更新<br/>2.5 算法缺点<br/>* 公式数据采集量大,校对工作量大,需要一定的检索公式的技巧<br/>* 一个公式对应块的一个状态,对三阶而言,复位第一个边角块需要求23组对应工式,复位第二个边角块需要20组对应个公式,复位第七个边角块须要2组公式,中棱块情况大至相同.<br/>* 对四阶以上高阶魔方最上层边棱块错误(有一个边的所有边棱块二二互换了位置)的处理,要对最上层以下的所有n-1个内层实施90度转动,然后再对这n-1个内层逐块重复实施非扰动归位(即归位方法不再适成新的边棱块二二互换),最后才对最上层实施逐块归位<br/>* 显然,这种方法到最上层才会发现边棱块错误,处理完边棱块错误后,又重复处理n-1个内层块的复位问题,且处理量不小.<br/>* 对高阶魔方,手工编制公式数据不现实<br/>* 极不适合步法优化.<br/>2.6 附带特性<br/>* 用块对应的公式组进行组合,可算出魔方的所有组合状态<br/>* 在复原过程中即可判断出魔方的组装错误及错误类型<br/>3 <b>定律复原法</b><br/>3.1 初始设定<br/>起始图案:特定的任意非复原图案,称为A<br/>目标图案:复原图案,称为B<br/>3.2 操作目标<br/>找出A到B的实现步骤<br/>3.3 复原方法<br/>* 从簇间关系的角度,找出A图案当前存在的非零态扰动关系并将其消解为零态扰动关系<br/>* 仅用簇内变换规则对各块实施复位<br/>3.4 算法优点<br/>* 概念清淅<br/>* 没有混沌的感觉,没有重复<br/>* 构造算法容易<br/>* 特别适合电脑处理<br/>* 公式极少<br/>* 特别适合高阶魔方还原<br/>3.5 算法缺点<br/>1. 对N阶定律要有非常透彻的理解<br/>2. 特别不适合手工玩家复原,玩家应有鹰一样的视觉,内存条记忆的准确性<br/>3. 可优化性差<br/>4 <b>经验复原法<br/></b>4.1 初始设定<br/>起始图案:特定的任意非复原图案,称为A<br/>目标图案:复原图案,称为B<br/>4.2 操作目标<br/>找出A到B的复原步数<br/>4.3 复原方法<br/>通过对魔方当前状态的判断,应用已熟记的大量经验公式,对魔方实施复原<br/>4.4 算法优点<br/>速度快,平均优化效果相对较好<br/>是一种折中性能最好的方法<br/>4.5 算法缺点<br/>* 算法设计不易,结构复杂,组织性差<br/>* 手工操作,玩家需要记住大量经验公式,对玩家的记性与反应有极高的要求<br/>* 严重依赖个人经验<br/>* 不适合四阶以上高阶魔方求解处理<br/>-------------------------------------------------------</p><p>忍冬:完成于西藏拉萨,布达拉宫脚下</p><p>2005年月4月14日</p>
[此贴子已经被作者于2006-11-8 6:44:41编辑过]

大烟头 发表于 2005-12-10 15:48:56

<P>可笑啊!这与“N阶定律”有何关系?</P>
<P>有必要全部文章都打上“N阶定律”这记号吗?不如直接打上“忍冬”的记号,成“基于忍冬的魔方复原算法分析”。</P>
<P>然后就可对别人说“不管什么人玩魔方都逃不出忍大师的手掌心!”你真的太高明了,佩服佩服!</P>

乌木 发表于 2005-12-10 17:20:28

<P>烟兄且慢笑他。估计您和我一样不会编程什么的,至少我是不会。</P>
<P>我这里说说外行话,说错的话,魔友们指出就是。</P>
<P>我想冬兄此文是编程的总的指导思想吧?我有一帖谈如何“克隆”</P>
<P>一个魔方图案,其中A、B态都是打乱态,自认为所用公式既最少</P>
<P>又是仅用一套,这特点用在编程时,需要调用的子程序就那么几个。</P>
<P>我的方法不适于快速法,因为有得有失--公式少了,步子就多了,</P>
<P>但对电脑来说,步子稍多无所谓吧?</P>
<P>冬兄本帖说:</P>
<P><FONT color=#0000ff>“4.3 复原方法<BR>通过对魔方当前状态的判断,应用已熟记的大量经验公式,对魔方实施复原”</FONT></P>
<P><FONT color=#0000ff><FONT color=#000000>若我的上述说法能用于<FONT color=#0000ff>“4 </FONT><FONT color=#0000ff><STRONG>经验复原法”</STRONG></FONT><FONT color=#000000>的编程,自认为不必</FONT></FONT></FONT></P>
<P><FONT color=#0000ff><FONT color=#000000><FONT color=#000000><FONT color=#0000ff>“</FONT><FONT color=#0000ff>应用已熟记的大量经验公式”</FONT></FONT><FONT color=#000000>去编程了。我说得对否?<BR></FONT><BR></P></FONT></FONT>

大烟头 发表于 2005-12-10 19:47:35

忍大师对复原法归类总结是不错的。这我承认。但。。。。。呵呵。。。。。。

清道夫2 发表于 2005-12-10 23:21:39

<DIV class=quote><B>以下是引用<I>大烟头</I>在2005-12-10 15:48:56的发言:</B><BR>
<P>可笑啊!这与“N阶定律”有何关系?</P>
<P>有必要全部文章都打上“N阶定律”这记号吗?不如直接打上“忍冬”的记号,成“基于忍冬的魔方复原算法分析”。</P>
<P>然后就可对别人说“不管什么人玩魔方都逃不出忍大师的手掌心!”你真的太高明了,佩服佩服!</P></DIV>
<P>这是忍者基于自已原创理论的观点,当然没有必要写进大烟头的独角坐标复原法,这只是一种视角而已,大烟头当然可以发表"基于大烟头"的复原算法分析,谁会介意?
<P>任何正方体色子魔方的状态本来就逃不出忍大师N阶定律的掌心,你有反证吗?肯定没有,永远也不可能有.</P>

清道夫2 发表于 2005-12-10 23:23:09

<DIV class=quote><B>以下是引用<I>大烟头</I>在2005-12-10 19:47:35的发言:</B><BR>忍大师对复原法归类总结是不错的。这我承认。但。。。。。呵呵。。。。。。</DIV>
<P>但。。。。。呵呵。。。。。。找不到出气的反证,痛心啊,玩笑.</P>

大烟头 发表于 2005-12-11 21:02:28

<DIV class=quote><B>以下是引用<I>清道夫2</I>在2005-12-10 23:21:39的发言:</B><BR><BR>
<P>  
<P>任何正方体色子魔方的状态本来就逃不出忍大师N阶定律的掌心,你有反证吗?肯定没有,永远也不可能有.</P></DIV>
<P>先不论这鸡与蛋的问题,n阶魔方中层可转,你的定律行吗?吹牛。。。</P>

爱因斯坦 发表于 2005-12-11 22:44:10

<P>N阶定律还是摆脱不了魔方实际结构的束缚.  以立方体色子阵来定义结构只是一个幌子而已.</P>
<P>对魔方内部嵌套的情况就一笔带过,对于中间层的转动问题不能囊括在内.</P>

清道夫2 发表于 2005-12-11 23:35:56

<DIV class=quote><B>以下是引用<I>爱因斯坦</I>在2005-12-11 22:44:10的发言:</B><br>
<P>N阶定律还是摆脱不了魔方实际结构的束缚.  以立方体色子阵来定义结构只是一个幌子而已.</P>
<P>对魔方内部嵌套的情况就一笔带过,对于中间层的转动问题不能囊括在内.</P></DIV>
<P>
<P>N阶定律只讨论正方体色子阵表层色子所有可见面的状态</P>
<P>1.什么样的魔方定律不受魔方结构制约?</P>
<P>2.内部嵌套难到不受N阶定律制约?</P>
<P>3.中层转动难到还须要讨论?爱因斯坦可是相对论的高手,他是绝对不会讨论中层转动问题的,这样吧,就请小邱搞一个中层扰动方程给大家看看如何?</P>
[此贴子已经被作者于2005-12-12 0:14:22编辑过]

清道夫2 发表于 2005-12-12 00:26:09

<DIV class=quote><B>以下是引用<I>大烟头</I>在2005-12-11 21:02:28的发言:</B><br><br>
<P>先不论这鸡与蛋的问题,n阶魔方中层可转,你的定律行吗?吹牛。。。</P></DIV>
<P>N阶定律本来就是公式无关地讨论状态变换规则,所以对任何层的转动都不“感冒”,此外,只要有与中层转动等价的描述,为什么一定要用中层转动?我倒是很想看看中层扰动方程是什么模样</P>
<P>另外,我更想看看,如何用其它簇表达扰动的方法来表达中心块簇的扰动,因为有人认为所有簇都是平等地享用着通用三交换。</P>

[此贴子已经被作者于2005-12-12 0:29:05编辑过]
页: [1] 2 3
查看完整版本: [原创]基于N阶定律的魔方复原算法分析:第一版(完成于西藏)