A*算法 计算九宫格数字移动问题
今天进行程序的测试,发现运算速度相当缓慢,当使用876,543,210这个矩阵变换,运算了130k+步骤,耗时有半个小时多。经过简单计算,九个格子放入九个数,就有A99种排列组合,结果是360K+,所以当程序运行到100K+的时候,我还是在耐心等待,不过帮我测试的同学可没有我的耐心,早早得都关了。-_-||所以在昨天晚上抱着尝试的心态,写了A*算法。该算法就是有序搜索,与盲目搜索的不同之处就是多了一个跟据一定的策略,从open表中找一个最容易产生结果的结点进行扩展。在这个程序中,该策略就是找到与目标状态数字的排列最接近的结点进行扩展。结果再输入876,543,210只有经过700+,改进速度提升了几个数量级,结果还是另人满意的。
下载地址
用户评论
逻辑清楚,效率很高
很好的东西,逻辑很条理,效率很高,感谢
能运行成功,效率也挺高。希望能研究好A*算法后,能扩展到N*N格子的自动移动。
嗯,写的不错,逻辑很条理!