-1

我有一组具有执行时间(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,这些 slack 可以是正的或负的。

问题是我需要为每个工作(或 slack)定义权重(W),使得具有负 slack 的工作(即 R>D,错过最后期限的工作)比具有正 slack 的工作具有更大的权重(W)和基于这些权重和松弛度,我需要定义一个可用于最大化松弛度的目标函数。

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

谢谢

4

1 回答 1

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

于 2018-02-03T04:55:36.980 回答