感觉这种算法还是比较局限的吧,重复搜索是一个不好的地方,而且需要高效的估值函数来进行强剪枝,这点比较困难。
迭代搜索深度是一个比较炫酷的搜索方式,不过有点拿时间换空间的感觉。
首先迭代深度比较搓的写法是,首先设置一个阀值MaxH,初始为最小值。
当在搜索深度Depth <= MaxH时找到解则此时为最优解,否则MaxH++,继续深搜。
另外一种比较吊的写法是二分搜索深度,若搜到则减小阀值,否则增大阀值。
总之,迭代深度搜索就是通过改变深搜的深度来寻找最优解,这样做的好处是省掉了BFS中状态标记所有的空间花销。
对于这种算法掌握的并不透彻,就不多说了。
#include
#include
#include
#include
#include
#include
#include
#include
#include