Scheduling
Task[t] 纪录开始时间为t的任务链表
f[t] 纪录t-n时间内最大value值,初始均为0
for i=n-1 to 0 do{
t=Task[i].head;
while (t){
f[i]=max{f[i],f[t.endtime]+t.value};
t=t->next;
}
f[i]=max{f[i],f[i+1]};
}
Fractional knapsack
根据性价比v/w排序
证明分数背包问题具有贪心选择性质
最优装载问题
问题描述:有一批集装箱要装上一艘载重量为c的轮船。其中集装箱i的重量为Wi。最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。
最优子结构性质:设(x1,x2,……xn)是最优装载问题的满足贪心选择性质的最优解,则易知,x1=1,(x2,x3,……xn)是轮船载重量为c-w1,待装船集装箱为{2,3,……n}时相应最优装载问题的最优解。因此,最优装载问题具有最优子结构性质。
求解过程:最优装载问题可用贪心算法求解。采用重量最轻者先装的贪心选择策略,可产生最优装载问题的最优解。