IDA*
模拟退火
基本思路(Main Thoughts):
IDA*是一种优秀的搜索法,在一般的实际问题中,它比普通的搜索更快。
通过迭代加深和估价函数剪枝来搜索。
通常处理没有层数上界或上界很多大的搜索。
实现步骤(Implementation Steps):
- 枚举搜索层数上界
- 搜索
- 估价函数剪枝。设当前上界为maxd。h(x)代表x状态已经扩展的层数 ,g(x)代表x状态估计还要扩展的层数,当h(x)+g(x)>maxd 时剪枝
模板(Code):
时间&空间复杂度(Time & Memory Complexity):
空间:O(?)
时间:O(?)
主要用途&优缺点(Main Applications & Advantages & Disadvantages):
主要用途:通常处理没有层数上界或上界很多大的搜索。
优点:快
缺点:估价函数容易打挂 代码较多 容易剪枝剪手
推荐题目&数据(Recommendatory Problems & Data) :
CODEVS 1288 埃及分数 比较裸的IDA*
CODEVS 2495 水叮当的舞步 估价函数裸 搜索方式优美
UVA 11212 编辑书稿 剪枝容易剪到手
UVA 1603 破坏正方形 比较简单的IDA* 主要难在构图 可用DLX