算法分析与设计第二版(李春葆)第五章回溯法

基本思想:先定义问题的解空间,然后在问题的解空间树中,按深度优先策略,从根结点出发搜索解空间树。

三个问题:

两种求解的可能

  • 求最优解
  • 求所有可能的解

当所给的问题是从n哥元素的集合S中找出满足某种性质的子集时,相应的解空间树称为子集树

当所给问题是确定n哥元素满足某种性质的排列时,相应的解空间树称为排列树

在遍历过程中,为减少无效搜索,应用约束条件、目标函数等剪枝函数进行剪枝。

两种剪枝函数约束函数和限界函数

同时使用约束条件和目标函数的界进行裁剪的是0/1背包问题

只使用约束条件进行裁剪的是N皇后问题

回溯法的算法框架按照问题的解空间一般分为子集树算法框架和排列树算法框架。

  • 用回溯法解0-1背包问题时,该问题的解空间结构为子集树结构   最坏情况2的n次方
  • 旅行商问题的解空间树是排列树
  • 求解子集和问题是子集树   最坏情况2的n次方
  • N皇后问题的解空间树是子集树   n的n次方
  • 图的m着色问题的解空间树是子集树   m的n次方
  • 求解任务分配问题时子集树   n的n次方
  • 活动安排问题时排列数   n的阶乘
  • 流水作业调度问题是排列数  n的阶乘

回溯法的效率依赖于满足显式约束的值的个数、计算约束函数的时间、计算限界函数的时间,不依赖于确定解空间的时间。

算法解空间树搜索方式存储结点的常用数据结构结点存储特性常用应用
回溯法深度优先搜索活结点的所有可行子节结点找出满足约束条件的所有解
分支限界法广度优先或最小耗费优先搜索队列、优先队列每个结点只有一次成为活结点的机会找出满足约束条件的一个解或特定意义下的最优解

习题:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值