回 帖 发 新 帖 刷新版面

主题:'迭代加深'跟先序遍历森林有啥区别?

书上迭代加深算法描述:
设树的深度最大为max,
1.令N为初始结点的列表;
2.若N为空,则退出并返回失败信号;
3.令n为N中第一个结点,然后将n从N中移出;
4.若n为目标结点,则退出并返回成功信号;
5.如果n的深度等于max,则返回第2步;
6.否则,将n的子结点插入到N的开头,然后返回第2步.

看, 和先序遍历森林有什么区别么? 怎么能叫渐进最优?

回复列表 (共4个回复)

沙发

网上搜索了一下,迭代加深用于树的深度可能非常深的情况下,是人工智能里对弈算法啊,好像TOJ里的'埃及分数'就是这样做的.

max是你指定的,max不断加深,就是在指定的范围内深搜,退出条件可以是计时器超时,'埃及分数'不用这样,因为里面有一个层次越少越优的条件.

板凳

博弈搜索算法基本上都基于深度优先啊。

3 楼

恩,深搜省存储空间,任何时间都只在栈里保存了一条路的信息,像一个棋盘的一个布局表示上不容易,用深搜就只需表示‘着法’,退回的时候撤消‘着法’就行了,着法的表示比棋局的信息简单多了。

4 楼

hehehe,certainly.

我来回复

您尚未登录,请登录后再回复。点此登录或注册