Forum Discussion
FICO
6 years agoCommunity Manager
Robust Optimisation: Equality vs Inequality constraint (Fixed vs Uncertains)
Hi, I am attempting a robust optimisation problem using the knapsack example 1.2.1 in the robust doc as a template. I calculate the possible % deviation for each variable in the model (P23PERCENT). ...
FICO
6 years agoCommunity Manager
Hi Will,
The box uncertainty set you have defined is a sensible approach, but there are a few reasons why you get an infeasible problem.
First, the lower and upper bound should be used within the same constraint, as otherwise the problem becomes “too robust”, i.e. too strong constraints on the mpvars for the solution to be feasible for all uncertain assignments. Rather than writing two constraints with a different sign on the uncertain parameter and only an upper bound on the uncertain itself, I’d rather write one robust constraint and set bounds on the uncertain parameters, i.e. the following uncertainty set:
P23UNCERTAIN(t) <= P23PERCENT(t) * abs(P23COEFF(t))
P23UNCERTAIN(t) >= - P23PERCENT(t) * abs(P23COEFF(t))(note the abs() in order to make P23UNCERTAIN(t) vary between a small negative and a small positive) and the following single robust constraint (which replaces the first two with P23TARGETL):
P23MODL1 := sum(t in VARIABLES1) (P23COEFF(t) + P23UNCERTAIN(t))*OPTS(t) >= P23TARGETLThe second pair of constraints would be replaced by a similar single robust constraint. This reflects your box-constrained uncertainty set: the coefficient of OPTS(t) can vary between P23COEFF(t) * (1 – P23PERCENT(t)) and P23COEFF(t) * (1 + P23PERCENT(t)).
I haven’t tried this approach, so I don’t know if it results in an infeasible problem, which anyway depends on your data. The bottom line is that your initial model is infeasible because the robust constraints depend on a very large uncertainty set with due to loose bounds on the uncertain parameters. The above constraints should achieve the robustness you had in mind: the uncertainty set is now a bounded box, but this doesn’t mean the problem is going to be feasible.
Second, the size of the uncertainty set determines how robust the solution will be. The larger the uncertainty set, the more stringent constraints the solution will have to satisfy in order to achieve robustness; this can lead to worse objective function values (because the set of feasible OPTS(t) is more restricted) or even to infeasibility.
Box uncertainty sets have the peculiarity that the uncertain parameters realized at an optimal solution of the robust problem are a vertex of the box, i.e. they are all at their lower or upper bound. This is a rather unlikely practical situation where ALL parameters are far from their expected value. One could imagine only a few such parameters are off. In your case you could also imagine a confidence ellipsoid containing all uncertain realizations, something of the form
sum(t in VARIABLES1) ((P23UNCERTAIN(t) / (abs(P23COEFF(t)) * P23PERCENT(t)))**2) <= 1which is an ellipsoid contained in the aforementioned box (this would hence replace the upper/lower bound constraints on P23UNCERTAIN(t)) and that prevents all uncertain parameters from being at an extreme of the box (obviously, only use it if this makes sense for your application).
(Note: in Mosel I believe the ** should be replaced by a caret, but the caret i not accepted in text by this forum platform.)
An alternative to the above ellipsoid that limits the (weighted) l-2 distance is an uncertainty set that limits the l-1 distance, and it’s the cardinality() uncertainty set mentioned in the manual.
Hope this helps.
Related Content
Related Content
A specific separation procedure, $(l,S)$ Inequalities, to solve the lot-sizing problem
Dear support team, I have tried to use a specific separation procedure, $(l, S)$ Inequalities, to solve the lot-sizing problem proposed in the references, like Algorithm and formulations for lot siz...8 months agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum4 unread comments4 unread10Views0likes4CommentsMapping methods between XPRBctr and new class Inequality
I'm porting a Java application to c++ (I'm using latest Xpress Version). From guide I understood that XPRBctr old BCL class has been mapped to Inequality, but I cannot find some methods (i.e. addTerm...1 year agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum1 unread comment1 unread0Views0likes1CommentIs it possible to refine how much information is provided in the Xpress Optimiser Logs
I currently use XPRS_VERBOSE to switch between full logging of the optimisation process and essentially no logging. Is it possible to control (i.e. reduce) how much output is written during logging w...1 year agoPlace FICO® Xpress Optimization ForumFICO® Xpress Optimization Forum1 unread comment1 unread0Views0likes1Comment