optimization - 在调度中获得价值
问题描述
我想重新安排时间,我有 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)]);
解决方案
我不明白你想建模什么。什么是“挣值”?它是模型的常数参数吗?还是一个变量?当您提到“在第 7 天赚取价值”时,“赚取价值”的概念似乎也有一个时间维度。“挣值”会随着时间而演变吗?如何 ?
我认为您应该正式定义要建模的内容。一个小例子也会有所帮助。
推荐阅读
- c++ - 如何使用 -Werror= 使编译器为所有 -Wimplicit-int-conversion 警告抛出错误?
- c# - 当有很多记录时,C# MVC Controller ActionResult 查询需要很长时间才能加载
- r - 试图在ggplots中使用变量作为标签
- mysql - 如何使用子查询或派生表查询表?
- c++ - 如何在cmake项目中使用c++20
- apache - 如何使用 Apache 将子域主机转发到 proxypass?
- flutter - 当我更改下拉按钮时,它会影响下一个
- python - 从 unyt 包导入类时 PyCharm 找不到引用
- linux - 在 CentOS 7 上无法从 Docker 容器内访问网络
- python - 带有补充自定义词典的拼写校正器