I face something related to this http://ask.cvxr.com/t/avoiding-infeasibility-without-sacrificing-accuracy/ .Still it is not the same and a bit complex so I will try to explain it the best way possible.
Pl2pathAdjX*paths >= (1-lowX)*4;
Pl2pathAdjY*paths >= (1-lowY)*4;
Pl2pathAdjZ*paths >= (1-lowZ)*4;
Pl2pathAdjX*paths <= (1-lowX).*allCrX;
Pl2pathAdjY*paths <= (1-lowY).*allCrY;
Pl2pathAdjZ*paths <= (1-lowZ).*allCrZ;
This part of my program ( made of linear constraints and a linear objective) is what my question is about.
In the left hand sides Pl2pathAdj[X,y,z] is an constrant matrix and paths is a binary variable (vector). In the right hand sides low[X,y,z] is a binary variable (vector) and allCr[X,Y,Z] is a constant vector (with mainly 3-digit numbers).
Now the thing is that, it is great if this set of constraints is satisfied, but sometimes it damages feasibility. This indicates that it could probably be added as a term to the energy, even though the scaling between the two objectives is a question (but that has to worry me the modeler and not you).
What I want to achieve by this set of constraints, is that the left hand side, has to be greater than 4 and smaller than some big number or equal to zero (from previous constraints it is also guaranteed to be a multiple of 2). But it must not be equal to 2. This discontinuity prevents me from simply putting it as a term in the energy. Neither does it sound linear nor can I think of 2 terms to express it appropriately.
Is the problem clear? Does anybody have a suggestion?