迭代加深搜索
定义
迭代加深是一种 每次限制搜索深度的 深度优先搜索。
解释
迭代加深搜索的本质还是深度优先搜索,只不过在搜索的同时带上了一个深度 \(d\),当 \(d\) 达到设定的深度时就返回,一般用于找最优解。如果一次搜索没有找到合法的解,就让设定的深度加一,重新从根开始。
代码
inline int dfs(int x)//x:深度
{
if(x>mxd)return ;//mxd:当前设定的最大深度
······
······
}
注意
- 在大多数的题目中,广搜还是比较方便的,而且容易判重。当发现广搜在空间上不够优秀,而且要找最优解的问题时,就应该考虑迭代加深
- 一般在求最少步数类似的题目中可以运用