【问题标题】:How to add a constraint like this with CPLEX opl?如何使用 CPLEX opl 添加这样的约束?
【发布时间】:2019-10-28 18:33:22
【问题描述】:

S[i][j][k]是机器[k]上操作O[i][j]的开始时间。

C[i][j][k] 机器[k]上操作O[i][j]的完成时间。

如果操作 O[i][j] 在 machine[k] 上执行,则 v[i][j][k] 等于 1,否则为 0。

我想添加约束 S[i][j][k]+C[i][j][k]

MC[i][j]是可以处理操作O[i][j]的候选机器集。

谁能帮忙解决这个问题?

我是 CPLEX 的新手,我不知道如何添加这样的约束(因为 k 有一些约束 k 应该属于 MC[i][j])

【问题讨论】:

    标签: algorithm scheduling cplex opl


    【解决方案1】:

    在 OPL 中,您几乎可以像使用自然语言一样编写这种约束:

    float bigM = ...; // Put some value for bigM
    forall (i in I)
      forall (j in J)
        forall (k in MC[i][j])
          S[i][j][k] + S[i][j][k] <= v[i][j][k] * bigM;
    

    请注意,您的描述中似乎存在问题:S[i][j][k] 指定了作业的开始完成时间。这很可能不是您想要的。

    【讨论】:

    • 非常感谢!!我没有发现我输入了这些错误。非常感谢您回答我。
    猜你喜欢
    • 1970-01-01
    • 2019-07-19
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多