Algorithm 如何及时找到24个难题的最佳解决方案?

Algorithm 如何及时找到24个难题的最佳解决方案?,algorithm,graph-algorithm,heuristics,Algorithm,Graph Algorithm,Heuristics,问题: 在不到5秒内(在平均计算机上)计算出随机24(5x5)的最佳解决方案 我所尝试的: 如前所述,使用曼哈顿距离/线性冲突算法作为启发式,我的Java实现可以在不到2秒钟的时间内解决4x4(15)难题 在5x5(24)个拼图上运行相同的实现会在5分钟后生成解决方案的路径 我在想,我可以通过先解算顶行和左列,然后解算剩余的4x4框来减少搜索空间,从而减少执行时间。这被证明是困难的,因为我想不出/设计一个能让IDA*及时解决顶部和左侧部分的启发式算法。在russel和norvig的AI书中提到,

问题:

在不到5秒内(在平均计算机上)计算出随机24(5x5)的最佳解决方案

我所尝试的:

如前所述,使用曼哈顿距离/线性冲突算法作为启发式,我的Java实现可以在不到2秒钟的时间内解决4x4(15)难题

在5x5(24)个拼图上运行相同的实现会在5分钟后生成解决方案的路径


我在想,我可以通过先解算顶行和左列,然后解算剩余的4x4框来减少搜索空间,从而减少执行时间。这被证明是困难的,因为我想不出/设计一个能让IDA*及时解决顶部和左侧部分的启发式算法。

在russel和norvig的AI书中提到,5x5滑动拼图有如此巨大的状态空间,即使是最好的AI搜索算法也需要数小时才能解决。(71页,第三版)

在优化世界中很少有人在爪哇发展,C++是一个更好的选择,有没有浏览模式数据库?他们在寻找最佳解决方案方面也非常缓慢