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