Algorithm 安排适当数量的任务以最大化回报的算法:难还是基本?

Algorithm 安排适当数量的任务以最大化回报的算法:难还是基本?,algorithm,math,discrete-mathematics,Algorithm,Math,Discrete Mathematics,在第i周,您可以选择: 无所事事 用奖励bi完成基本任务 用奖励做一项艰巨的任务 如果你选择做一项艰巨的任务,你必须在前一周“什么也没做”[i-1] 为了获得最大的回报,我们必须选择哪些任务?我们可以假设bi和ti>0 我的尝试 我设计的一个贪婪的解决方案是比较t_2和b_1+b_2,它t_2更高,什么都不做,在下一周做一个艰难的任务;如果没有,则执行基本任务。继续做这个过程直到结束。不幸的是,这并不能得到最优解 有没有人对获得最优解的算法有什么想法 提前谢谢 我建议使用动态规划技术来解决这个问

在第i周,您可以选择:

无所事事 用奖励bi完成基本任务 用奖励做一项艰巨的任务 如果你选择做一项艰巨的任务,你必须在前一周“什么也没做”[i-1]

为了获得最大的回报,我们必须选择哪些任务?我们可以假设bi和ti>0

我的尝试

我设计的一个贪婪的解决方案是比较t_2和b_1+b_2,它t_2更高,什么都不做,在下一周做一个艰难的任务;如果没有,则执行基本任务。继续做这个过程直到结束。不幸的是,这并不能得到最优解

有没有人对获得最优解的算法有什么想法

提前谢谢

我建议使用动态规划技术来解决这个问题,因为它更直接、更直观。DP的设置如下所示:

设p[i]表示从第1周到第i周的最优报酬,则我们有以下递推关系:

p[i]=i的max{p[i-2]+ti,p[i-1]+bi}≥ 二,

基本情况是p[0]=0,p[1]=b1,假设您只能在第一周完成基本任务

使现代化 最优性的证明。观察最优解P[i]必须由bi或ti组成,反正陈述可以很容易地证明

在p[i]使用bi的情况下,最佳可能的解决方案是p[i]=p[i-1]+bi,因为根据定义p[i-1]是最佳解决方案。另一方面,如果P[i]使用ti,那么最好的解决方案是P[i]=P[i-2]+ti。

我建议使用动态规划技术来解决这个问题,因为它更直接和直观。DP的设置如下所示:

设p[i]表示从第1周到第i周的最优报酬,则我们有以下递推关系:

p[i]=i的max{p[i-2]+ti,p[i-1]+bi}≥ 二,

基本情况是p[0]=0,p[1]=b1,假设您只能在第一周完成基本任务

使现代化 最优性的证明。观察最优解P[i]必须由bi或ti组成,反正陈述可以很容易地证明


在p[i]使用bi的情况下,最佳可能的解决方案是p[i]=p[i-1]+bi,因为根据定义p[i-1]是最佳解决方案。另一方面,如果P[i]使用ti,那么最好的可能解决方案是P[i]=P[i-2]+ti。

什么都不做不会给出最佳解决方案。如果你有一个解Q[i]在第一周什么都不做,那么Q[i]+bi永远是一个更好的解。是的,这种情况下的最优解是由P[i-2]+tiDoing nothing给出的。如果你有一个解Q[i]在第i周没有任何作用,那么Q[i]+bi永远是一个更好的解。是的,这种情况下的最优解由P[i-2]+ti给出