Many Solvers, One Interface: ROI, the R Optimization Infrastructure Package

  • Stefan Theußl (Contributor)
  • David Meyer (Contributor)
  • Hornik, K. (Contributor)

Activity: Talk or presentationScience to science

Description

Currently, R and a wide variety of contributed packages on CRAN and other package repositories offer tools to solve many different optimization problems. However, the user interfaces to available optimizers and their output, i.e., the format of the returned solution, often differ considerably. It is not only the users interested in R as an optimization tool, but also the developers who need to handle different problem classes transparently and who are facing this lack of standardization. Therefore, an integrative multi-purpose optimization framework for R seems to be desirable.

In this talk we present the state of the art of general purpose continuous and mathematical programming solvers available in R. We discuss different classes of optimization problems encountered in statistical computing and related fields in order to derive the necessary building blocks for a general optimization infrastructure package. Based on the gained knowledge we propose an object oriented approach to optimization: The main function in the
R Optimization Infrastructure package ROI takes only three arguments, namely the problem object containing information about the optimization problem which is to be solved, the solver to use, and a list of additional control arguments like e.g., solver parameters. This makes the process of optimizing a given problem very transparent for the user as it is completely abstracted from the solver. Furthermore, this approach allows for easy switching between solvers, given that the solver supports the corresponding problem class and thus enhances comparability.

Finally, we show that the complexity of creating large problem instances can be significantly reduced via appropriate constructor functions and methods.
Period20 Jul 201023 Jul 2010
Event titleuseR! 2010
Event typeUnknown
Degree of RecognitionInternational

Austrian Classification of Fields of Science and Technology (ÖFOS)

  • 102022 Software development