0

如果有人能解决这个问题,请帮助我,我将不胜感激。如果有车辆可以将物料从机器 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)
4

1 回答 1

1

在 C# 中,您没有运算符重载,因此您应该依赖

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

等等

请参阅 CPLEX_Studio1210\cplex\examples\src\cs 中的示例 foodmanufact.cs

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

如果您想从 C# 调用 OPL,您可以查看中的示例

CPLEX_Studio1210\opl\examples\opl_interfaces\dotnet

于 2020-03-08T09:19:10.450 回答