The ROPI Homepage has moved! Please check for the latest news under
Library description
ROPI is a freely available C++ library that facilitates the applicability of robust optimization models. It provides two main features:
 
Note that ROPI is a work in progress and still under development. Preliminary library version can be downloaded below. Feedback and bugfinds are greatly appreciated!
Application example
Assume you have a linear program in an mps file. Read in the program using
LP lp;
lp.read_mpsfile("file.mps");
 
Now let us assume that the right-hand-side of this LP is uncertain. We create an uncertainty set of 5 scenarios, and in each scenario exactly one parameter may deviate.
FiniteUncertainty unc;
list<Con>* lpcons = lp.get_cons();
for (int i=0; i<5; ++i)
{
  list<Con>::iterator it = lpcons->begin();
  advance(it,rand()%(lpcons->size()));
  FiniteScenario scen;
  scen.rhs[*it] = it->rhs * (1+(rand()%100)/400.0 - 1.0/8 );
  unc.scenarios.push_back(scen);
}
 
We now generate a robust counterpart and solve it using Cplex.
Robustness rob(&lp,ROB_STRICT);
rob.set_uncertainty(unc);
LP rc = rob.generate_robust();
Solver sol;
sol.init(&rc, SOL_CPLEX);
sol.solve();
 
And that's it!
Installation
Version history
Current version is 0.1.0 (June 19, 2012).
Downloads
Version 0.1.0
 
Last update: June 19, 2012