IDA*

模拟退火

 

基本思路(Main Thoughts):

  IDA*是一种优秀的搜索法,在一般的实际问题中,它比普通的搜索更快。

  通过迭代加深和估价函数剪枝来搜索。

  通常处理没有层数上界或上界很多大的搜索。

 

实现步骤(Implementation Steps):

  1. 枚举搜索层数上界
  2. 搜索
  3. 估价函数剪枝。设当前上界为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

 

posted @ 2015-12-16 21:23  puck_just_me  阅读(...)  评论(... 编辑 收藏