[C++] 2阶魔方还原

[C++] 2阶魔方还原,第1张

除非是被拆解过的3阶魔方,不是有个上帝数吗?貌似是20的样子。也就是说,都不会超过20步。想找到这样的最小结果没段握有固定算法很难的啊。顺便,那20步不仅仅是转90,也包括180和-90。

判断是否能还原还是挺简单的握友庆。因为六面中心块的相对关系是不会变的。所以只要判断八个角和12个边的那些块的颜色组合是否满足中心6块的位置告粗就行。

魔方还原软件是基于智能优化算法,致力于自动解决魔方问题,通过有效率的算法实现高效还原魔方目标。

全自动魔方还原软件的基本原理是,先将搅乱的魔方数据转换为状态矩阵,用优化算法计算罩谈从初始状态到目标状态的最短路径,再将每步的转换指令以及具体转换方式进行计算,根据推演结果控制机器执行魔方还原。

魔方还原软件使用的优化算法一般包括深度优先搜索算法,广度优先搜索算法,A*算法,IDA*算法,迭代加深搜索算法等。深度优先搜索算法由于开销大,容易爆宽闷肢发出空间,并没有在魔方还原中得到应用;广度优先搜索算法虽然耗费的开支低,但是搜索效率不高,也没有得到应用;A*算法可以快速的找出最优路径,但是也有可能无法找到最优路径;IDA*算法在A*算法的基础上加以改进,使得在搜索过程中更加节慎世省时间,可以更快的找到最优路径;迭代加深搜索算法可以保证找出最优路径,但是由于耗费的开销,一般不会用于魔方还原中。

目前,魔方还原软件一般采用IDA*优化算法,比对状态矩阵,计算出最优化路径,快速还原魔方,实现全自动还原魔方的目标。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12369195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存