PYOMO:如何创建约束松弛? (从 Pyomo 中的 CPLEX 重写约束)
Posted
技术标签:
【中文标题】PYOMO:如何创建约束松弛? (从 Pyomo 中的 CPLEX 重写约束)【英文标题】:PYOMO: How to create constraint relaxation? (Rewrite constraint from CPLEX in Pyomo) 【发布时间】:2019-08-26 21:18:00 【问题描述】:我正在尝试将使用 CPLEX 求解器在 GAMS 中编写的模型转移到 Pyomo。 CPLEX 具有允许建模者在模型不可行时放松约束和决策变量的功能 - FeasOpt(用于可行优化)。我在不使用松弛变量的情况下在 Pyomo 中重新创建这种自动不可行性松弛功能时遇到了麻烦。
下面是我的 GAMS/CPLEX 代码的 sn-p:
以不可行为代价的放松约束:
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 sn-p 会有所帮助
【问题讨论】:
我不知道这是否有帮助(我不知道如何使 FeasOpt 工作),但是如果您知道要放松的 Pyomo 约束,您可以随时使用 @ 停用它987654323@。这是你想要做的吗? @V.Brunelle 寻找自动化方法 【参考方案1】:Pyomo 似乎没有实现 FeasOpt 功能: https://github.com/Pyomo/pyomo/search?q=feasopt&unscoped_q=feasopt
【讨论】:
但我仍然不清楚 pyomo 是否具有类似的功能来完成类似的任务。它不必被称为“FeasOpt”以上是关于PYOMO:如何创建约束松弛? (从 Pyomo 中的 CPLEX 重写约束)的主要内容,如果未能解决你的问题,请参考以下文章