南开大学算法导论第六章课件.pdf
文本预览下载声明
第六章 动态规划
苏 明
1
算法回顾
贪心算法
利用局部最优化原理,逐渐建立起完整
的最优解
构成算法设计最自然的方法;对人们碰
到的大多数问题,实际困难不在于确定
几个贪心策略中那一个是正确的,而是
事实上可能不存在有效的贪心算法
2
算法回顾
分治策略
把问题递归分解成几个更小规模的子问
题;然后通过一个合理的复杂度把子问
题的解合并成全局的解
分治策略没有强到可以把指数的蛮力搜
索减少到多项式时间;倾向于降低已经
存在的多项式阶算法的阶数
3
算法介绍
动态规划
通过把事情分解为一系列子问题,然后
对越来越大的子问题建立正确的解,从
而隐含的探查所有可行解的空间。
穿过问题可行解的指数规模的集合,不
必明确检查所有的解
4
动态规划简介
Bellman
1950s 为了研究系统控制问题
而提出了动态规划的方法;
对控制理论界和数学界有深远影响。
Dynamic programming = planning over time.
5
动态规划应用
应用领域
生物信息学
控制论
信息论
行为学研究.
计算机科学: 理论, 图形, 人工智能, 系统, ….
一些经典的动态规划算法
Unix 比较两个文件的不同算法
Smith-Waterman序列比对算法.
Bellman-Ford 网络中的最短路径路由算法
Cocke-Kasami-Younger 自然语言处理算法
6
6.1 带权的区间调度
问题的提出
对于区间调度问题,不同区间有一样的权重,
贪心算法可以得到最优解
如果不同区间有不同的权重:
任务 j 在 s 时间开始,f 时刻结束,且其权重为v .
j j j
两个任务如果对应的时间区间不相交,称为相容.
目标:寻找最大的不相容的区间子集,使得所选区
间的权重之和最大。
7
带权的区间调度
不同区间的影响是不一样的
a
b
c
d
e
f
g
h
显示全部