IDA*

1,由bfs和dfs的优缺点引起,如果碰上了既不知道深度,状态又不好表示的题目该怎么办。

2,所以引出了我们的迭代加深。

3,模板

int idt=0;//1,规定搜索深度
bool dfs(int x)
{
	if(x>idt)  return false;//2,若搜索深度超过规定
	//就停止进一步搜索 
	if(chck())  return true;
	...
	return false;
	
	
 } 
 main()//3,每次搜索失败后就让搜索深度加深一层
 // 
 {
 	for(;;)
 	{
 		++idt;
	 }
	 ///4,第一次找到答案是其深度就是最优值 
 }

 4,对哦,每次深度加1是不是,每次都要把之前遍历过的遍历一次。

但是人家讲了,无所谓的,为什么呢》

因为这个搜索一般是指数爆炸层次的,往往你就下去一层的要搜索的东西要超过你之前搜索的n-1的搜索的结果。

s

原文地址:https://www.cnblogs.com/beiyueya/p/12016989.html