Eghbal
Eghbal

Reputation: 3783

How define inequal constraints in MATLAB optimization toolbox?

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

Answers (2)

Matthew Gunn
Matthew Gunn

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 ofa'x+b > 0anda'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

serge_k
serge_k

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

Related Questions