rotdk.gms : Robust Optimization

Description

```Robust Optimization.
```

Reference

• Laguna, M, Applying Robust Optimization to Capacity Expansion of One Location in Telecommunications with Demand Uncertainty. Management Science 44, 11 (1998), 101-110.

Large Model of Type : MIP

Category : GAMS Model library

Main file : rotdk.gms

``````\$title Robust Optimization (ROTDK,SEQ=185)

\$onText
Robust Optimization.

Laguna, M, Applying Robust Optimization to Capacity Expansion of
One Location in Telecommunications with Demand Uncertainty.
Management Science 44, 11 (1998), 101-110.

Keywords: mixed integer linear programming, robust optimization, capacity expansion,
time-dependent knapsack problem
\$offText

Set
s 'scenarios'    / 1*1000    /
t 'time periods' / t1*t12    /
j 'components'   / C001*C010 /;

Alias (t,tt);

Parameter
di(s,t) 'increment'
D(t,s)  'demand'
c(j)    'capacity size'
p(j)    'capacity cost'
mu      'mean capacity parameter'
sigma   'std capacity parameter';

mu    = 100;
sigma =  10;

c(j) = round(uniform(1,mu));
p(j) = round(mu + c(j) + uniform(-sigma,sigma));

di(s,t)\$(ord(s) <= 0.25*card(s)) = round(normal( 50,10));
di(s,t)\$(ord(s) >  0.25*card(s) and ord(s) <= 0.75*card(s)) = round(normal(100,20));
di(s,t)\$(ord(s) >  0.75*card(s)) = round(normal(150,40));

d(t,s) = sum(tt\$(ord(tt) <= ord(t)), di(s,tt));
* display c, p, di, d;

Parameter
dis(t) 'discount factor'
w      'shortage penalty';

dis(t) = power(.86,ord(t) - 1);
w      = 5;

Variable
x(j,t) 'expansion'
z(s)   'max capacity shortage'
cap(t) 'installed capacity'
obj;

Integer  Variable x;
Positive Variable z;

Equation
capbal(t)   'capacity balance'
dembal(t,s) 'demand balance'
objdef;

objdef..      obj =e= sum((j,t), dis(t)*p(j)*x(j,t)) + w/card(s)*sum(s, z(s));

capbal(t)..   cap(t) =e= cap(t-1) + sum(j, c(j)*x(j,t));

dembal(t,s).. cap(t) + z(s) =g= d(t,s);

Model rotdk / all /;

option limCol = 0, limRow = 0;

* do not reset optcr if already set to a nondefault value
if{(.1 = %gams.optCr%), option optCr = 0.05;};

solve rotdk min obj using mip;
``````