权重分配以定义目标函数

时间:2018-02-03 01:15:26

标签: c optimization weighted simulated-annealing objective-function

我有一组具有执行时间(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)。积极的松弛,并根据这些重量和松弛,我需要定义一个目标函数,可以用来最大化松弛。

这个问题似乎并不困难。但是,我找不到解决方案。在这方面的一些帮助非常感谢。

由于

1 个答案:

答案 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