我有一组具有执行时间(C1,C2 ... Cn)和截止时间(D1,D2,... Dn)的作业。每项工作都会在一段时间内完成执行,即 响应时间(R1,R2,...... Rn)。但是,有可能不是每个工作都会在截止日期之前完成执行。所以我为每个作业定义了一个名为Slack的变量,即(S1,S2,...... Sn)。 Slack基本上是截止日期和作业响应时间之间的差异,即
S1 = D1-R1 S2 = D2-R2,..等等
我有一套松弛[S1,S2,S3,...... Sn]。根据任务的截止日期和完成时间,即D和R,这些松弛可以是正面的或负面的。
问题是我需要为每个作业(或松弛)定义权重(W),使得具有负松弛的作业(即,R> D,错过最后期限的作业)具有比具有负作用的作业更多的权重(W)。积极的松弛,并根据这些重量和松弛,我需要定义一个目标函数,可以用来最大化松弛。
这个问题似乎并不困难。但是,我找不到解决方案。在这方面的一些帮助非常感谢。
由于
答案 0 :(得分:0)
通常可以使用变量拆分:
轻松完成splus(i) - smin(i) = d(i) - r(i)
splus(i) ≥ 0, smin(i) ≥ 0
如果我们在目标中有一个术语,那么我们将最小化:
sum(i, w1 * splus(i) + w2 * smin(i) )
这样可以正常工作:我们不需要添加互补条件splus(i)*smin(i)=0
。