N的启发式A *算法
我实现了一个算法来解决N-Puzzle问题。 该算法将使用其他算法,如A *和启发式双向搜索。 总的来说,这两种算法都给了我很好的结果:A *为一些问题找到了解决方案,其中有50多个动作,而另一个则用于其他更大的解决方案。
问题在于:我使用曼哈顿距离作为两种算法的启发式算法,并且如果棋盘没有重复的棋子,似乎可以很好地工作。 例如,对于3x3,经典的8拼图开始板可以是1,2,3 | 4,5,6 | 7,8,0,重复拼贴可以是:1,1,1 | 2,3,2 | 1 ,1,0。 但在这种情况下(当电路板有重复的瓦片时),这些算法可行,但不一样,需要更多时间并提供更大的解决方案。 我修改了启发式功能,现在每个瓷砖都采用最短路径到达任何原始位置,例如,如果是几个2,则每个瓷砖将计算曼哈顿距离到距其最近的起始位置的距离为2。
问题:任何知道这些问题的更好的启发式方法? 曼哈顿距离启发式法对于重复元素的问题是否仍然可以接受? 这是另一个与N-Puzzle不同的问题吗?
谢谢...
链接地址: http://www.djcxy.com/p/65559.html