ROI

The R Optimization Infrastructure (ROI) package provides an extensible infrastructure to model linear, quadratic, conic and general nonlinear optimization problems in a consistent way.

library(ROI)

Furthermore, the infrastructure administers many different solvers, reformulations, problem collections and functions to read and write optimization problems in various formats.

Extensions

ROI provides the modeling capabilities and manages the plugins, the plugins add the solvers to ROI.

Plugins

plugins <- ROI_available_solvers()[,c("Package", "Repository")]
plugins <- aggregate(Repository ~ Package,  data = plugins,
                     FUN = paste, collapse = ", ")
knitr::kable(plugins, row.names = TRUE)
Package Repository
1 ROI.plugin.alabama https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
2 ROI.plugin.cbc https://github.com/dirkschumacher
3 ROI.plugin.cccp https://gitlab.com/roigrp/solver
4 ROI.plugin.clp https://github.com/datastorm-open
5 ROI.plugin.cplex https://CRAN.R-project.org
6 ROI.plugin.deoptim https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
7 ROI.plugin.ecos https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
8 ROI.plugin.glpk https://CRAN.R-project.org
9 ROI.plugin.highs https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
10 ROI.plugin.ipop https://CRAN.R-project.org
11 ROI.plugin.lpsolve https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
12 ROI.plugin.mosek https://gitlab.com/roigrp/solver
13 ROI.plugin.msbinlp https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
14 ROI.plugin.neos https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
15 ROI.plugin.nloptr https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
16 ROI.plugin.optimx https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
17 ROI.plugin.osqp https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
18 ROI.plugin.qpoases https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
19 ROI.plugin.quadprog https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
20 ROI.plugin.scs https://CRAN.R-project.org, https://gitlab.com/roigrp/solver
21 ROI.plugin.symphony https://CRAN.R-project.org, https://gitlab.com/roigrp/solver

Installation

The Installation page contains information to assist with the installation of ROI and its companion packages.

Additional resources

Additional to this web page there exist several resources:

Contribute

There are several possible ways to contribute to the ROI project.

  • Since ROI was designed to allow decentralized development anyone is free and invited to extend ROI by creating a new plugin or model collection.
  • The source code of this page is stored on Gitlab modifications to this page can be suggested by raising an issue or creating a pull request.
  • If you find ROI useful we would be happy to add your particular use case to the Use Cases page. To do so you can again raise and issue or create a pull request on Gitlab. The use case should be either written in Sweave, knitr or R Markdown and contain an author and a license (e.g. GNU General Public License version 3).

Citation

Theußl, S., Schwendinger, F., & Hornik, K. (2020). ROI: An Extensible R Optimization Infrastructure. Journal of Statistical Software, 94(15), 1–64. https://doi.org/10.18637/jss.v094.i15

@article{JSSv094i15,
  title   = {ROI: An Extensible R Optimization Infrastructure},
  volume  = {94},
  url     = {https://www.jstatsoft.org/index.php/jss/article/view/v094i15},
  doi     = {10.18637/jss.v094.i15},
  number  = {15},
  journal = {Journal of Statistical Software},
  author  = {Theußl, Stefan and Schwendinger, Florian and Hornik, Kurt},
  year    = {2020},
  pages   = {1–64}
}