动态规划解法 在上述递归关系中,4,可以是S中任一活动,每选定一个特 定的a,则确定特定的子问题。 动态规划方法按照合适的次序 解所有的子问题。 问题3: 是否有可能不必解所 有的子问题?
动态规划解法 在上述递归关系中,ak可以是Sij中任一活动,每选定一个特 定的ak , 则确定特定的子问题。动态规划方法按照合适的次序 解所有的子问题
问题4: 所谓“GREEDY”是指什 么?
Activity Selection:the Idea 要解的问题用Sk={a;∈S:≥}表示,S是原始问题所给的 所有活动的集合,则原始问题为S: ■ Greedy方法: 口选择完成时间最早的活动,假设是a; 口解子问题S1 Greedy可以指不同的“最”,但有的“最” 可以得到正确的解,有的“最”却未必!
Activity Selection: the Idea ◼ 要解的问题用 表示,S是原始问题所给的 所有活动的集合,则原始问题为S0 ; ◼ Greedy方法: ❑ 选择完成时间最早的活动,假设是a1 ; ❑ 解子问题S1。 Greedy可以指不同的“最”,但有的“最” 可以得到正确的解,有的“最”却未必!
如何去“编程表达”这样的递归式? RECURSIVE-ACTIVITY-SELECTOR (s.f.k,n) 1m=k+1 2 while m≤n and s[m<f[k] /find the first activity in Sk to finish 3 m=m+1 4 ifm≤n 5 return {am}URECURSIVE-ACTIVITY-SELECTOR(s,f.m.n) 6 else return 0 解子问题S1
如何去“编程表达”这样的递归式? 解子问题S1
GREEDY-ACTIVITY-SELECTOR(s,f) 1 n =s.length 2A={a1} 3k=1 4 for m 2 to n 问题5: 5 ifs[m≥f[k] 6 A=AUam 为什么不需 7 k m 要递归? 8 return A 问题68 为什么代价是幾性的?