Package 'ROI.plugin.alabama'

Title: 'alabama' Plug-in for the 'R' Optimization Infrastructure
Description: Enhances the R Optimization Infrastructure ('ROI') package with the 'alabama' 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-09-10 02:52:43 UTC
Source: https://github.com/r-forge/roi

Help Index


Banana

Description

The following example is also known as Rosenbrock's banana 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

Solution: c(1, 1)

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(li = 1:2, ui = 1:2, lb = c(-3, -3), ub = c(3,  3)))

nlp <- ROI_solve(x, solver = "alabama", start = c(-2, 2.4), method = "BFGS")
nlp
## Optimal solution found.
## The objective value is: 3.049556e-23
solution(nlp)
## [1] 1 1

Hock-Schittkowski-Collection Problem 16

Description

The following example solves problem 16 from the Hock-Schittkowski-Collection.

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

subject to:  x1+x220   x12+x20subject \ to: \ \ x_1 + x_2^2 \geq 0 \ \ \ x_1^2 + x_2 \geq 0

2x10.5   x21-2 \geq x_1 \geq 0.5 \ \ \ x_2 \geq 1

Solution: c(0.5, 0.25)

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), 
         constraints = c(F_constraint(F=function(x) x[1] + x[2]^2, ">=", 0,
                                      J=function(x) c(1, 2*x[2])),
                         F_constraint(F=function(x) x[1]^2 + x[2], ">=", 0,
                                      J=function(x) c(2*x[1], x[2]))),
         bounds = V_bound(li=1:2, ui=1:2, lb=c(-2, -Inf), ub=c(0.5,  1)) )

nlp <- ROI_solve(x, solver="alabama", start=c(-2, 1))
nlp
## Optimal solution found.
## The objective value is: 2.499999e-01
solution(nlp)
## [1] 0.5000001 0.2499994

Hock-Schittkowski-Collection Problem 36

Description

The following example solves exmaple 36 from the Hock-Schittkowski-Collection.

minimize x1x2x3minimize \ -x_1 x_2 x_3

subject to: x1+2x2+x372subject \ to: \ x_1 + 2 x_2 + x_3 \leq 72

0x120, 0x211, 0x3420 \leq x_1 \leq 20, \ 0 \leq x_2 \leq 11, \ 0 \leq x_3 \leq 42

Examples

library(ROI)

hs036_obj <- function(x) {
    -x[1] * x[2] * x[3]
}

hs036_con <- function(x) {
    x[1] + 2 * x[2] + 2 * x[3]
}


x <- OP( objective = F_objective(hs036_obj, n = 3L), 
         constraints = F_constraint(hs036_con, "<=", 72),
         bounds = V_bound(ub = c(20, 11, 42)) )

nlp <- ROI_solve(x, solver = "alabama", start = c(10, 10, 10))
nlp
## Optimal solution found.
## The objective value is: -3.300000e+03
solution(nlp, "objval")
## [1] -3300
solution(nlp)
## [1] 20 11 15