Package 'ROI.plugin.nloptr'

Title: 'nloptr' Plug-in for the 'R' Optimization Infrastructure
Description: Enhances the R Optimization Infrastructure ('ROI') package with the 'NLopt' solver for solving nonlinear optimization problems.
Authors: Florian Schwendinger [aut, cre]
Maintainer: Florian Schwendinger <[email protected]>
License: GPL-3
Version: 1.0-0
Built: 2024-10-10 02:42:41 UTC
Source: https://github.com/r-forge/roi

Help Index


NLP 1

Description

The following example solves the Rosenbrock function (https://en.wikipedia.org/wiki/Rosenbrock_function).

minimize f(x)=100(x2x12)2+(1x1)2minimize \ f(x) = 100 (x_2 - x_1^2)^2 + (1 - x_1)^2

Examples

library(ROI)

f <- function(x) {
    return( 100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2 )
}

f.gradient <- function(x) {
    return( c( -400 * x[1] * (x[2] - x[1] * x[1]) - 2 * (1 - x[1]),
               200 * (x[2] - x[1] * x[1])) )
}

x <- OP( objective = F_objective(f, n = 2L, G = f.gradient), 
         bounds = V_bound(ld = -3, ud= 3, nobj = 2L) )

nlp <- ROI_solve(x, solver = "nloptr.lbfgs", start = c(-1.2, 1))
nlp
## Optimal solution found.
## The objective value is: 1.189412e-15
solution(nlp)
## [1] 1 1