| 
最后登录2023-8-16在线时间3007 小时阅读权限100注册时间2007-12-3积分3923帖子2556精华6UID15558性别保密WCA ID2008CHEN27兴趣爱好理论
 
   
 积分3923帖子2556精华6UID15558性别保密WCA ID2008CHEN27兴趣爱好理论
 
      | 
| 在之前一篇帖子中,我根据某篇国外论文对魔方求解的研究,认为CE的最短步数算法是基于BFS思路的常规A*算法。但是昨天花了半个晚上的时间一行行分析了CE的核心代码(可能是前几年的版本)后发现原来所谓的IDA*算法就是纯BFS加减枝,当然大致的思路还是正确的。基于这点发现,在现在看来,其实CE所谓的IDA*算法和A*根本没什么关系,只是常规的减枝罢了,有理由相信很快就能找到一个更优的,基于用空间换时间的思想的算法。 
 名词解释:
 BFS:广度优先搜索,优先搜索步数短的节点,即先尝试所有步数为1的状态,然后2,然后3等等。
 DFS:深度优先搜索,优先进行下一步转动(就是先一通乱转),当然在搜索魔方的时候根据上一个帖子的说明限定了转动步数上限。
 剪枝:即在搜索的过程中适当的放弃一些不可行的解。(比如已经转了24步了,那这个状态显然没有继续的必要了)
 
 另注:关于对称性的研究,我所看的CE代码里面并没有处理搜索时碰到的对称性,我认为如果加上这块,程序的效率会提高48倍左右,当然具体还在思考中。
 同时提出一个很久远的问题:有没有一个合适的状态表示方法,使得诸如RUR'与F'U'F这类对称的状态有些相同表示
 | 
 |