Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PYOMO:如何创建约束松弛?(在Pyomo中从CPLEX重写约束)_Python_Mathematical Optimization_Cplex_Pyomo_Gams Math - Fatal编程技术网

Python PYOMO:如何创建约束松弛?(在Pyomo中从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

我正在尝试使用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(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”