乌木 发表于 2006-7-7 10:52:22

<p>文章说:<br/>“10.最短步数算法<br/>1. 在当前魔方状态上分别执行12n个动作后,分别获得12n个魔方状态 <br/>2. 对12n个状态分别计算所有簇相对于簇终态的簇最短步数及每个状态的所有簇最短步数之和 <br/>3. 取一个簇最短步数之和最小的状态作为当前状态,并记录其动作 <br/>4. 回到第一步,直到当前状态是魔方目标状态为止。 <br/>5. 所有记录下来的动作,即是魔方始/未二态的最短步数”</p><p>以3阶为例,为求态A和态N之间的最少步数,<br/>1、对态A分别做UU'RR'……12个动作,得态B1、B2、B3……B12。<br/>2、计算B1-H(子魔方,以下类同)和N-H之间的最少步数k1,<br/>&nbsp;&nbsp; 计算B1-M和N-M之间的最少步数k2,<br/>&nbsp;&nbsp; 计算B1-A和N-A之间的最少步数k3,<br/>&nbsp;&nbsp; K1=k1+k2+k3 。</p><p>&nbsp;&nbsp; 类似地,由B2得K2,由B3的K3,……由B12得K12 。<br/>3、K1~K12中选最小的一个(有多个的话,任取其一?),它对应的B当作新的初态,比如,选得B1。<br/>4、对(比如)B1分别做UU'RR'……12个动作,……(同上循环)。</p><p>我的问题:对(比如)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值。对吗?</p><p>-------------------------------------</p><p>此外,文章说:“子魔方的最短步数/最远状态完全制约魔方最短步数/最远状态 ”</p><p>这“制约”的具体内容一定较复杂吧?否则听哪个子魔方的?所有子魔方都会施加影响,一定有某种“协议”吧?还有,子魔方的动作就是整魔方的动作(奇阶的H子魔方虽整个架子不动,但其中心块的就地旋转就是整魔方的表层转动),故为何不是“魔方最短步数/最远状态完全制约子魔方的最短步数/最远状态”?</p>

pengw 发表于 2006-7-7 11:30:59

<p>答1:一楼的论文是导论,是方向性指导,也许各人有各人的具体算法,关建是每个簇的最短步数计算</p><p>答2:对于三阶,假设A簇始态与其终态的最短步数有N步,你能说魔方始未二态的最短步数小于N步?</p>

大烟头 发表于 2006-7-12 10:23:38

<p>先顶一下。</p><p>说实在的,我看得不是很明白,能有最少步具体的分析操作例子就好了。</p>

jinyou 发表于 2006-7-12 16:22:39

<p>所以要看下文了</p>

彳亍 发表于 2006-7-13 00:58:45

<p>有个浅显的理论指导实践就好了<br/>不知道应用于所有实际状态的魔方,都能多少步解决呢?</p>

pengw 发表于 2006-7-13 13:02:19

<p>行者:</p><p>你好,一直有一个观点,当问题的复杂到了一定程度,是无法用更简单的方式来表达,正如不能用小学算术来表达微分方程。楼主的最短步数分析用于指明一个正确的方向,正如楼主所言,子摩方最短步数求解是目前最关键的问题,行者有兴趣,不妨分析一下二阶的最短步数问题及三阶中棱块簇最短步数问题。解决了这二个问题,三阶的最短步数问题将不再是一个问题。</p><p>最近很忙,不能及时回贴,还请各位谅解。</p>

大烟头 发表于 2006-7-13 16:30:28

&lt;P&gt;&amp;nbsp;&lt;/P&gt; <p>如这个情况:</p><p>棱簇子魔方最少步为R' ,角簇子魔方最少步为L,忍大师你来讲一下这三阶的最少步应如何分析?</p><p>&lt;applet code="com.lar5.Caesar.class" codebase="<a href="http://sbdq.51.net/java/Caesar" target="_blank"><font color="#000000">http://sbdq.51.net/java/Caesar</font></a>" width="260" height="300"&gt;<br/>&nbsp; &lt;param name="pos" value="eeeeedeeecccccfcccafaffefffdadaaaaaabdbcdddddfbbbbbfbb"&gt;<br/>&nbsp; &lt;param name="misc" value=fullpeek,arrows,showalg,&gt;<br/>&lt;/applet&gt;</p>
[此贴子已经被作者于2006-7-28 9:25:11编辑过]

大烟头 发表于 2006-7-13 16:58:31

论坛不能发java了 <applet codebase="3" height="300" width="300" code="RubikPlayer.class"><param value="SupersetENG" name="scrptLanguage"/><param value="F F' R R'" name="scrpt"/><param value="0,0,0,0,0,5,0,0,0" name="stickersFront"/><param value="2,1,1,1,1,1,2,1,1" name="stickersRight"/><param value="4,2,4,2,2,0,2,2,2" name="stickersDown"/><param value="3,3,3,2,3,3,3,3,3" name="stickersBack"/><param value="4,4,5,4,4,4,4,4,5" name="stickersLeft"/><param value="5,5,5,5,5,3,1,5,1" name="stickersUp"/></applet>
[此贴子已经被作者于2006-7-28 9:24:12编辑过]

乌木 发表于 2006-7-13 18:55:05

<p>烟兄,冬兄的思路好像不是直接由您所说的R'和L求整魔方的最少步的,而是如31楼我初步理解的那样多次循环后得到最少步的。尽管我还未真正弄清楚(31楼已经先提了一些问题),但看来一上来就由R'和L来求最少步是无法“协调”(冬兄文章用语)出什么来的吧?总之,尽管是导论,也还有不少地方我不懂。</p><p>----------------------------------------------</p><p>我7月7日也贴不出java图(菜鸟区《java贴助手》)。</p>

大烟头 发表于 2006-7-28 09:26:45

<p>&nbsp;</p>如这个情况:棱簇子魔方最少步为R' ,角簇子魔方最少步为L,忍大师你来讲一下这三阶的最少步应如何分析? <applet codebase="http://sbdq.51.net/java/Caesar" height="300" width="260" code="com.lar5.Caesar.class"><param value="eeeeedeeecccccfcccafaffefffdadaaaaaabdbcdddddfbbbbbfbb" name="pos"/><param value="fullpeek,arrows,showalg," name="misc"/></applet>
页: 1 2 3 [4] 5 6 7 8
查看完整版本: [原创]基于N阶定律的魔方最短步数分析导论