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