【问题标题】:Is it possible to solve a CP formulated problem with the CPLEX-Engine without transforming the model?是否可以在不转换模型的情况下使用 CPLEX-Engine 解决 CP 公式化问题?
【发布时间】:2019-10-01 04:23:05
【问题描述】:
我已经将灵活的车间问题制定为 CP 模型,就像 CPLEX Optimization Studio 中建议的那样。问题正在运行并创建正确的计划。所以我的问题是,是否也有可能使用 CPLEX 引擎解决这个问题,而不将其转换为 MIP。这样我就可以比较两个引擎的结果。那么一般来说,是否可以在 CP 公式模型上运行 CPLEX-Engine,或者我是否必须为此创建单独的 MIP?
【问题讨论】:
标签:
cplex
constraint-programming
opl
cp-optimizer
【解决方案1】:
如果您使用特定于 CP Optimizer 的构造(例如 interval 变量),那么 CPLEX 将无法理解您的模型。
【解决方案3】:
是的,这是可能的。在 OPL 中,尝试起来很容易。只需添加或删除一行
using CP;
在 .mod 的开头使用 CP 优化器或 CPLEX。
但是,两个引擎中的每一个都有它支持和不支持的 modelong 构造。例如,CP 优化器不支持连续变量,而 CPLEX 不支持 alldiff 约束、区间变量等。如果您遇到“无法提取”异常或类似情况,则您的模型使用仅受以下一种支持的建模构造引擎。
此外,即使您没有遇到异常,您的比较仍可能存在偏差:求解器引擎的性能不仅取决于模型类型和数据,还取决于实际模型公式。对于大量问题,有一些方法可以以对 CP 有利但对 CPLEX 不利的方式来表述它们,反之亦然。因此,如果两个引擎中的一个被证明速度较慢,您还必须考虑您的配方是否适合该特定引擎。
说了这么多,总是值得一试,看看会发生什么。