工作延时损失最小选择问题:每个工作包含工作耗时和延时损失2个属性,延时损失即该工作每延后一个小时开始做,则就损失一个loss值。注每个工作的耗时和延时损失各不相同。该问题类似于操作系统中的作业调度问题。
因此若每个工作的loss值都相同,则等价于作业调度问题,即耗时短的应当最先做,即最短最优调度算法。该算法的原理的greedy策略点是time,即当前工作耗时越短,则后面工作的等待时间越少,则损失越少,最后累加的损失也是最小的;将耗时最大的排在前面先完成,则虽然越往后,后面的工作的损失的增量放缓,但由于前面的耗时过大,导致后面累加的延时基数很大,所以虽然增速放缓,但经累加后的延时仍然很大。相比于从小到大排序而言,耗时大的先做总的延时要大于耗时小的先做的总延时。所以在损失相同的情况下,总延时越小,则总的损失就越小,符合greedy=》min(loss)。
另一方面,若每个工作的工作时间一定,则说明无论工作的先后顺序如何,总的延时都是一定的,则要想最后总的损失最小,则将损失大的工作优先做,则比将损失大的留在最后做的总损失要小。这里的greedy策略点是loss最小,符合最后greedy=》min(loss)。根据具体问题的条件选择greedy loss策略(即time、loss)。
而本文问题的工作time 和loss是不定的,即任意数字。那么该问题的greedy策略点是什么呢?刚开始无从知晓,若仅从