计算机算法设计与分析-复习18
计算机算法设计与分析-复习18(回溯法解决0-1背包问题)
步骤
- 按照单位收益排序(递减)
- 约束函数(左孩子有用,右孩子没用)
- 限界函数(左孩子没用,右孩子有用)
- cw代表当前重量
- L为最优解下界,初始为0,知道算到叶子节点再更新(谁大谁更新),
- 右儿子产生需要估计最优解上界(除了叶子节点)(前几个放进去(按照树的实际情况),当前不放,剩余按照贪心做(可以分割背包))(如果大于L,就生成)(小于L左右孩子均不生成)
- 当选择结点时,发现大于总重量,那么不生成,否则生成。
- 整个问题最优解,就是求完解之后的L
例题
致谢
[1] 以上图片来自于中国科学院大学马丙鹏老师计算机算法设计与分析课程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现