Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Regarding robust optimisation

1 view
Skip to first unread message

sh.mojta...@gmail.com

unread,
Aug 5, 2008, 7:57:11 AM8/5/08
to
Dear all,

I have a LP model here as follow:

Min = .42*x1 + .56*x2 + .70*x3;

S.t.

x1 + x2 + x3 = 900;

x1 <= 400 * y1;
x2 <= 700 * y2;
x3 <= 600 * y3;

30*x1 <= 12500;
40*x2 <= 20000;
50*x3 <=15000;

.15*x1 + .2*x2 +.15*x3 >= 100;
.2*x1 + .05*x2 + .2*x3 >= 100;
.25*x1 + .15*x2+ .05*x3 >= 150;

y1+y2+y3 = 2;

xi>=0,

yi=0, if x=o
yi=1, if x>=o


The constraints

.15*x1 + .2*x2 +.15*x3 >= 100;
.2*x1 + .05*x2 + .2*x3 >= 100;
.25*x1 + .15*x2+ .05*x3 >= 150;


have uncertainties in x1, x2, and x3 coefficients. I want to know how
can I make a robust optimisation model for this LP model?

for example, if we know that all the coefficients have variations
about 30%.

Thank you,
Shab


Peter Spellucci

unread,
Aug 5, 2008, 11:33:03 AM8/5/08
to

In article <3b9efb53-6447-4755...@r15g2000prd.googlegroups.com>,

sh.mojta...@gmail.com writes:
>Dear all,
>
>I have a LP model here as follow:

no, this is a MILP and even with stochastic part.
I know of no ready to use software which combines these three features
in one code, but maybe there exists some.


But if this indeed your problem, not only a model,
then, with only three 0-1-variables you could simply try all possible
combinations. for the stochastic part, you could try stochastic LP
or, if you require strict bounds, then an interval arithmetic based
LP (with the 0-1-variables fixed in different combinations)
an overview on codes is obtainable from
http://plato.asu.edu/guide.html

there is an ambiguity in your model:
if x (you mean: x_i?) is zero, you allow y_i =0 or y_i =1 ?


hth
peter

Johan Löfberg

unread,
Aug 12, 2008, 8:03:08 AM8/12/08
to
Assuming you want it to be feasible in the worst-case, you can
explicitly derive it

sum (a_i+d_i*delta_i)*xi >b where |delta_i|<1

You have a model where d_i = 0.3*a_i

write as

sum a_i*xi + sum 0.3*a_i*delta_i*xi > b where |delta_i|<1

worst case is when delta_i = -sign(a_i*x_i) and the explicit expression is

sum a_i*xi - sum 0.3*abs(a_i*xi) > b

This can be handled by introducing a new variable t_i to model the
absolute value

sum a_i*xi - sum 0.3*t_i > b
t_i > a_i*x_i > -t_i


FYI, these worst-case reformulations are done automatically in the
robust optimization framework in the MATLAB toolbox YALMIP.

/johan

0 new messages