Reputation: 3783
As mentioned in MATLAB R2016 we have this form: A*x ≤ b
in optimization toolbox constraints. How can I define something lkie this: A*x < b
in constraints?
Upvotes: 1
Views: 197
Reputation: 4519
As @serge_k said, if you have a strict inequality constraint, you want to represent it as A*x <= b - t
to force at least t
separation. There are some situations where this reasonably comes up (eg. support vector machines solve a'x+b >= 1
and a'x +b <= -1' instead of
a'x+b > 0and
a'x +b < 0'
That said, the vast vast majority of the time, strict vs. non-strict inequalities really shouldn't matter. If your constraint is A*x<b
and A*x <= b
won't do, you may be in the land of pure math rather than numerical computing: floating point operations aren't this precise!
There aren't many plausible, real world situation where A*x - b = 10^-99999
is wonderful, but A*x - b = 0
is 100% wrong?
Upvotes: 1
Reputation: 1772
Polyhedron {x: A*x < b}
is no longer a closed set, so if you need to find max/min of a function over this set it may not belong to this set, but suprimum/infimum always exists and for example for linear (in fact, any convex) objective function it's the same as max/min over {x:A*x ≤ b}
, check Weierstrass extreme value theorem. One option is to set some tolerance t and optimize over A*x ≤ b-t
and use sensitivity analysis to see where the solution goes as t -> 0
.
Upvotes: 2