Version: 1.0-3
Title: 'qpOASES' Plugin for the 'R' Optimization Infrastructure
Description: Enhances the 'R' Optimization Infrastructure ('ROI') package with the quadratic solver 'qpOASES'. More information about 'qpOASES' can be found at https://github.com/coin-or/qpOASES.
Imports: methods, slam, ROI (≥ 1.0-0), Rcpp (≥ 0.12.11), checkmate
License: GPL-3
LinkingTo: Rcpp
URL: https://roigrp.gitlab.io, https://gitlab.com/roigrp/solver/ROI.plugin.qpoases
NeedsCompilation: yes
Packaged: 2023-07-07 10:58:17 UTC; f
Author: Florian Schwendinger [aut, cre], Hans Joachim Ferreau [cph], Andreas Potschka [cph], Christian Kirches [cph], Dennis Janka [cph], Andreas Waechter [cph]
Maintainer: Florian Schwendinger <FlorianSchwendinger@gmx.at>
Repository: CRAN
Date/Publication: 2023-07-07 12:50:02 UTC

qpOASES

Description

This package provides an interface to qpOASES. pOASES is an open-source C++ implementation of the online active set strategy, which was inspired by important observations from the field of parametric quadratic programming (QP).

References

H.J. Ferreau and C. Kirches and A. Potschka and H.G. Bock and M. Diehl. qpOASES: A parametric active-set algorithm for quadratic programming, “Mathematical Programming Computation”, 2014

H.J. Ferreau and H.G. Bock and M. Diehl. An online active set strategy to overcome the limitations of explicit MPC, “International Journal of Robust and Nonlinear Control”, 2008

H.J. Ferreau and A. Potschka and C. Kirches. qpOASES “webpage” https://github.com/coin-or/qpOASES, 2017


Quadratic Problem 1

Description

maximize \ \ x_1^2 + x_2^2 + x_3^2 - 5 x_2

subject \ to:

-4 x_1 - 3 x_2 + \geq -8

2 x_1 + x_2 + \geq 2

- 2 x_2 + x_3 \geq 0

x_1, x_2, x_3 \geq 0

Examples

Sys.setenv(ROI_LOAD_PLUGINS = "FALSE")
library("ROI")
library("ROI.plugin.qpoases")

A <- cbind(c(-4, -3, 0), 
           c( 2,  1, 0), 
           c( 0, -2, 1))
x <- OP(Q_objective(diag(3), L =  c(0, -5, 0)),
        L_constraint(L = t(A),
                     dir = rep(">=", 3),
                     rhs = c(-8, 2, 0)))

opt <- ROI_solve(x, solver="qpoases")
opt
## Optimal solution found.
## The objective value is: -2.380952e+00
solution(opt)
## [1]  0.4761905 1.0476190 2.0952381