出现这个问题的原因是表达式中包含了指示器约束形式,但在CPLEX求解器中该形式的表达式不被支持。因此需要在 AMPL 中使用 Gurobi 求解器,或者考虑修改表达式的形式以适应 CPLEX 求解器。
例如,如果您有以下表达式:
subject to ind_con : x <= MyIndicator * M;
可以通过将指示器约束转化为等价的线性约束来解决此问题:
subject to ind_con1 : x - MyIndicator * M <= 0;
subject to ind_con2 : x - (1 - MyIndicator) * M >= 0;
或者,使用 Gurobi 求解器可以轻松处理指示器约束。
solver gurobi;
上一篇:AMPL程序给出零最优值
下一篇:AMPL代码编译问题:已定义