Python PYOMO:如何创建约束松弛?(在Pyomo中从CPLEX重写约束)
我正在尝试使用CPLEX解算器将用GAMS编写的模型传输到Pyomo。CPLEX有一个功能,允许建模者在模型不可行时放松约束和决策变量——FeasOpt(用于可行优化)。我在Pyomo中重新创建这个自动不可行松弛特性时遇到了麻烦,而不必使用松弛变量 下面是我的GAMS/CPLEX代码片段: 以不可行性为代价的放松约束:Python PYOMO:如何创建约束松弛?(在Pyomo中从CPLEX重写约束),python,mathematical-optimization,cplex,pyomo,gams-math,Python,Mathematical Optimization,Cplex,Pyomo,Gams Math,我正在尝试使用CPLEX解算器将用GAMS编写的模型传输到Pyomo。CPLEX有一个功能,允许建模者在模型不可行时放松约束和决策变量——FeasOpt(用于可行优化)。我在Pyomo中重新创建这个自动不可行松弛特性时遇到了麻烦,而不必使用松弛变量 下面是我的GAMS/CPLEX代码片段: 以不可行性为代价的放松约束: RotationOnce1(R)$(sum(W$B1(W), VAC(R,W))<4 or sum(W$B1(W), AIRP(R,W))<4).. | sum(Ro
RotationOnce1(R)$(sum(W$B1(W), VAC(R,W))<4 or sum(W$B1(W), AIRP(R,W))<4).. | sum(Rot$Act(Rot), y1(R,Rot))=e=1;
*$ontext
$onecho > cplex.opt
feasopt 1
feasoptmode 1
x.feaspref 0
RotationOnce1.feaspref 1
如何在pyomo中重新创建约束松弛(没有松弛变量)?在Pyomo中重写上面的CPLEX片段会很有帮助Pyomo似乎没有实现FeasOpt功能:
我不知道这是否有帮助(我不知道如何让工作变得轻松),但是如果你知道你想要放松的Pyomo约束,你可以使用
model.your_containt.deactivate()
将其停用。这就是你想要做的吗?@V.Brunelle正在寻找一种自动化的方法,但我仍然不清楚pyomo是否有类似的功能来完成类似的任务。它不必被称为“FeasOpt”