ROPI
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:
  • A user-friendly MIP class that allows automatic transformation to solver-specific MIP classes. Using this feature, MIPs can be generically written, and solved with whatever solver is currently available. ROPI currently supports transformation to Cplex-, Gurobi-, and Xpress-MIPs. Support for further solvers can be easily added.
  • An automatic transformation from a given nominal MIP to a robust MIP. Currently implemented is Strict Robustness, Light Robustness, RecFeas and RecOpt.


0


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

  • After unzipping the ROPI tarball, open the file runtobuild.sh.
  • Here you may need to adjust the home directories for Cplex, Gurobi, and Xpress.
  • If you miss one of them, just leave the path variable empty. ROPI is then compiled without the respective solver support.
  • Run ./runtobuild.sh, and you are set up!




Version history

Current version is 0.1.0 (June 19, 2012).



Downloads

Version 0.1.0

 




Last update: June 19, 2012
   Contact

   Working Group Optimization
   Marc Goerigk
   Lotzestraße 16-18
   37083 Göttingen
   Germany
 
   Tel: +49 551-394508
   Fax: +49 551-393944