Steve
Steve

Reputation: 135

PYOMO: How to create constraint relaxation? (Rewrite constraint from CPLEX in Pyomo)

I am trying to transfer a model written in GAMS using CPLEX solver to Pyomo. CPLEX has a feature allowing modelers to relax constraints & decision variables if a model is infeasible - FeasOpt (for Feasible Optimization). I am having trouble recreating this automated infeasibility relaxation feature in Pyomo without having to use slack variables.

Below is a snippet of my GAMS/CPLEX code:

Constraint for relaxation that costs infeasibility:

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;

Assigning relaxation preference:

*$ontext
$onecho > cplex.opt
feasopt 1
feasoptmode 1

x.feaspref 0
RotationOnce1.feaspref 1

How can i recreate constraint relaxation (without slack variables) in pyomo? Rewriting the CPLEX snippet above in Pyomo would be helpful

Upvotes: 4

Views: 905

Answers (1)

Xavier Nodet
Xavier Nodet

Reputation: 5105

It seems that Pyomo doesn't implement the FeasOpt feature: https://github.com/Pyomo/pyomo/search?q=feasopt&unscoped_q=feasopt

Upvotes: 1

Related Questions