【问题标题】:CPLEX using if then constraints with CP optimizer in C#CPLEX 在 C# 中使用带有 CP 优化器的 if then 约束
【发布时间】:2020-03-07 14:28:37
【问题描述】:

如果有人能解决这个问题,请帮助我,我将不胜感激。 如果有车辆可以将物料从 1 号机输送到 2 号机或从 4 号机到 3 号机,这意味着该区间(命名为 V)有两个可选区间(命名为 V12 和 V43)可供选择。 但是,如果前面的运行区间是在机器 1 上运行的,而后面的运行区间是在机器 2 上运行的,则只能选择 V12 作为替代区间。 这意味着,我需要做一个类似的约束

if (presenceOf(V12)) =>
   presenceOf(operation[x][1].machine==1) && presenceOf(operation[x][2].machine == 2)

【问题讨论】:

    标签: c# scheduling cplex opl cp-optimizer


    【解决方案1】:

    在 C# 中你没有运算符重载,所以你应该依赖

    • cplex.IfThen for =>
    • cplex.Ge for >=
    • cplex.Eq for ==

    等等

    查看 CPLEX_Studio1210\cplex\examples\src\cs 中的示例 foodmanufact.cs

    FoodManufact.cs 实现了食品生产计划问题的解决方案,这在 H. P. Williams 的建模教科书中很有名。

    如果您想从 C# 调用 OPL,您可以查看

    中的示例

    CPLEX_Studio1210\opl\examples\opl_interfaces\dotnet

    【讨论】:

      猜你喜欢
      • 2021-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多