首页 > 解决方案 > 在调度中获得价值

问题描述

我想重新安排时间,我有 2 种赚取价值不同的模式,模式 1 的赚取价值比模式 2 低且持续时间长。如果我想提高生产力 * 模式 m 下活动 i 的持续时间 <= 在第 7 天赚取价值而不是选择模式2来达到当天的赚取价值。我已经做出了约束,但我认为它不会影响我的模型。我混淆了这个模型中缺少的东西。我需要一个建议。 赚取价值是我们获得的项目进度,而不是数量,而是成本。例如,项目总价值为 1000000 美元。每一项任务都有其价值。例如,在第 7 天,我们必须获得 450000 美元,这与我们从第 0-7 天开始已经完成的许多任务的计划表格总和相同

dvar interval Taskss [t in Tasks] in t.RelDate..t.DueDate   ; 
dvar interval mode[m in Modes] optional  size m.pt;
subject to {
 //Alternative mode of resource productivity in Cost's unit
  forall (t in Tasks, m in Modes) {
 // if(m.costprod *m.pt == 0 && 0 <= 559717712) presenceOf(mode[first(Modes)]);
  
    alternative(Taskss[t], all(m in Modes: m.taskId==t.id) mode[m]);
}
 forall (t in Tasks, m in Modes)
  (sum(t in Tasks)sum(m in Modes) m.costprod * m.pt <= 559717712 in 0..NbDays-14) != presenceOf(mode[first(Modes)]);

标签: optimizationschedulingcplexconstraint-programmingibm-ilog-opl

解决方案


我不明白你想建模什么。什么是“挣值”?它是模型的常数参数吗?还是一个变量?当您提到“在第 7 天赚取价值”时,“赚取价值”的概念似乎也有一个时间维度。“挣值”会随着时间而演变吗?如何 ?

我认为您应该正式定义要建模的内容。一个小例子也会有所帮助。


推荐阅读