感覺這種算法還是比較局限的吧,重復搜索是一個不好的地方,而且需要高效的估值函數來進行強剪枝,這點比較困難。
迭代搜索深度是一個比較炫酷的搜索方式,不過有點拿時間換空間的感覺。
首先迭代深度比較搓的寫法是,首先設置一個閥值MaxH,初始為最小值。
當在搜索深度Depth <= MaxH時找到解則此時為最優解,否則MaxH++,繼續深搜。
另外一種比較吊的寫法是二分搜索深度,若搜到則減小閥值,否則增大閥值。
總之,迭代深度搜索就是通過改變深搜的深度來尋找最優解,這樣做的好處是省掉了BFS中狀態標記所有的空間花銷。
對於這種算法掌握的並不透徹,就不多說了。
#include
#include
#include
#include
#include
#include
#include
#include
#include