Last updated on 2025-02-21 05:50:57 CET.
Flavor | Version | Tinstall | Tcheck | Ttotal | Status | Flags |
---|---|---|---|---|---|---|
r-devel-linux-x86_64-debian-clang | 1.0-1 | 8.12 | 103.51 | 111.63 | OK | |
r-devel-linux-x86_64-debian-gcc | 1.0-1 | 5.64 | 64.30 | 69.94 | OK | |
r-devel-linux-x86_64-fedora-clang | 1.0-1 | 182.44 | ERROR | |||
r-devel-linux-x86_64-fedora-gcc | 1.0-1 | 253.77 | ERROR | |||
r-devel-macos-arm64 | 1.0-1 | 52.00 | OK | |||
r-devel-macos-x86_64 | 1.0-1 | 120.00 | OK | |||
r-devel-windows-x86_64 | 1.0-1 | 8.00 | 94.00 | 102.00 | OK | |
r-patched-linux-x86_64 | 1.0-1 | 8.85 | 93.28 | 102.13 | OK | |
r-release-linux-x86_64 | 1.0-1 | 6.64 | 90.61 | 97.25 | OK | |
r-release-macos-arm64 | 1.0-1 | 58.00 | OK | |||
r-release-macos-x86_64 | 1.0-1 | 88.00 | OK | |||
r-release-windows-x86_64 | 1.0-1 | 7.00 | 91.00 | 98.00 | OK | |
r-oldrel-macos-arm64 | 1.0-1 | 46.00 | OK | |||
r-oldrel-macos-x86_64 | 1.0-1 | 148.00 | OK | |||
r-oldrel-windows-x86_64 | 1.0-1 | 8.00 | 102.00 | 110.00 | OK |
Version: 1.0-1
Check: tests
Result: ERROR
Running ‘test_nloptr.R’
Running the tests in ‘tests/test_nloptr.R’ failed.
Complete output:
> stopifnot(require(nloptr))
Loading required package: nloptr
>
> Sys.setenv(ROI_LOAD_PLUGINS = FALSE)
>
> library(ROI)
ROI: R Optimization Infrastructure
Registered solver plugins: nlminb.
Default solver: auto.
> library(ROI.plugin.nloptr)
>
> check <- function(domain, condition, level=1, message="", call=sys.call(-1L)) {
+ if ( isTRUE(condition) ) return(invisible(NULL))
+ msg <- sprintf("in %s", domain)
+ if ( all(nchar(message) > 0) ) msg <- sprintf("%s\n\t%s", msg, message)
+ stop(msg)
+ return(invisible(NULL))
+ }
>
>
> ##
> ## Rosenbrock Banana function.
> ##
> test_nlp_01 <- function(solver) {
+ objval <- 0
+ sol <- c(1, 1)
+
+ obj <- function(x) {
+ return( 100 * (x[2] - x[1] * x[1])^2 + (1 - x[1])^2 )
+ }
+
+ grad <- 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(F_objective(F = obj, n = 2L, G = grad))
+ bounds(x) <- V_bound(lb = c(-3, -3), ub = c(3, 3))
+
+ control <- list(start = c(-1.2, 1))
+ opt <- ROI_solve(x, solver = solver, control = control)
+
+ check("NLP-01@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-01@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
> ##
> ## Example from NLopt tutorial.
> ##
> test_nlp_02 <- function(solver) {
+ objval <- -0.5443311
+ sol <- c(1/3, 8/27)
+
+ obj <- function(x) -sqrt(x[2])
+ grad <- function(x) -c(0, 0.5 / sqrt(x[2]))
+
+ con <- function(x) (c(2, -1) * x[1] + c(0, 1))^3 - x[2]
+ jac <- function(x) {
+ a <- c(2, -1)
+ b <- c(0, 1)
+ rbind(c(3 * a[1] * (a[1] * x[1] + b[1])^2, -1.0),
+ c(3 * a[2] * (a[2] * x[1] + b[2])^2, -1.0))
+ }
+
+ x <- OP(objective = F_objective(F = obj, n = 2L, G = grad),
+ constraints = F_constraint(con, c("<=", "<="), c(0, 0), J = jac),
+ maximum = TRUE)
+
+ control <- list(start = c(1.234, 5.678))
+ opt <- ROI_solve(x, solver, control = control)
+
+ check("NLP-02@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-02@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
> ##
> ## Problem 23 from the Hock-Schittkowsky test suite.
> ##
> test_nlp_03 <- function(solver) {
+ objval <- 2
+ sol <- c(1, 1)
+
+ obj <- function(x) x[1]^2 + x[2]^2
+ grad <- function(x) c(2 * x[1], 2 * x[2])
+
+
+ con <- function(x) {
+ c(1 - x[1] - x[2], 1 - x[1]^2 - x[2]^2, 9 - 9*x[1]^2 - x[2]^2,
+ x[2] - x[1]^2, x[1] - x[2]^2)
+ }
+
+ jac <- function(x) {
+ rbind(c(-1, -1), c(-2 * x[1], -2 * x[2]), c(-18 * x[1], -2 * x[2]),
+ c(-2 * x[1], 1), c(1, -2 * x[2]))
+ }
+
+ x <- OP(objective = F_objective(F = obj, n = 2L, G = grad),
+ constraints = F_constraint(F = con, dir = leq(5), rhs = double(5), J = jac),
+ bounds = V_bound(ld = -50, ud = 50, nobj = 2L))
+
+ control <- list(start = c(3, 1), max_iter = 100000)
+ opt <- ROI_solve(x, solver, control = control)
+
+ check("NLP-03@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-03@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
> ##
> ## Problem 71 from the Hock-Schittkowsky test suite.
> ##
> test_nlp_04 <- function(solver) {
+ objval <- 17.01402
+ sol <- c(1, 4.74299963, 3.82114998, 1.37940829)
+
+ obj <- function(x) x[1] * x[4] * (x[1] + x[2] + x[3]) + x[3]
+
+ grad <- function(x) {
+ c(x[1] * x[4] + x[4] * (x[1] + x[2] + x[3]), x[1] * x[4],
+ x[1] * x[4] + 1.0, x[1] * (x[1] + x[2] + x[3]))
+ }
+
+ con <- c(function(x) c(25 - x[1] * x[2] * x[3] * x[4]),
+ function(x) x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 - 40)
+
+ jac <- c(function(x) c(-x[2] * x[3] * x[4], -x[1] * x[3] * x[4],
+ -x[1] * x[2] * x[4], -x[1] * x[2] * x[3]),
+ function(x) c(2.0 * x[1], 2.0 * x[2], 2.0 * x[3], 2.0 * x[4]))
+
+ x <- OP(objective = F_objective(F = obj, n = 4L, G = grad),
+ constraints = F_constraint(F = con, dir = c("<=", "=="), rhs = c(0, 0), J = jac),
+ bounds = V_bound(ld = 1, ud = 5, nobj = 4L))
+
+ control <- list(start = c(1, 5, 5, 1))
+ opt <- ROI_solve(x, solver, control = control)
+
+ check("NLP-04@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-04@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
>
> ##
> ## Problem from
> ## @article{betts1977accelerated,
> ## title = {An accelerated multiplier method for nonlinear programming},
> ## author = {Betts, JT},
> ## journal = {Journal of Optimization Theory and Applications},
> ## volume = {21},
> ## number = {2},
> ## pages = {137--174},
> ## year = {1977},
> ## publisher = {Springer}
> ## }
> ##
> test_nlp_05 <- function(solver) {
+ objval <- 0
+ sol <- c(1, 1)
+
+ obj <- function(x) 100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2
+
+ x <- OP(objective = F_objective(F = obj, n = 2L))
+ bounds(x) <- V_bound(lb = c(-Inf, -1.5))
+
+ control <- list(start = c(2, 3))
+ opt <- ROI_solve(x, solver, control)
+
+ check("NLP-05@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-05@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
>
> ##
> ## Problem from
> ## @article{betts1977accelerated,
> ## title = {An accelerated multiplier method for nonlinear programming},
> ## author = {Betts, JT},
> ## journal = {Journal of Optimization Theory and Applications},
> ## volume = {21},
> ## number = {2},
> ## pages = {137--174},
> ## year = {1977},
> ## publisher = {Springer}
> ## }
> ##
> test_nlp_06 <- function(solver) {
+ objval <- 0.0504261879
+ sol <- c(2*sqrt(598/1200) * cos(1/3*acos(1/(400*(sqrt(598/1200)^3)))), 1.5)
+
+ obj <- function(x) 100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2
+
+ x <- OP(objective = F_objective(F = obj, n = 2L))
+ bounds(x) <- V_bound(lb = c(-Inf, 1.5))
+
+ control <- list(start = c(2, 2.6))
+ opt <- ROI_solve(x, solver, control = control)
+
+ check("NLP-06@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-06@06", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
>
> ## SOURCE: Rglpk manual
> ## https://cran.r-project.org/web/packages/Rglpk/Rglpk.pdf
> ##
> ## LP - Example - 1
> ## max: 2 x_1 + 4 x_2 + 3 x_3
> ## s.t.
> ## 3 x_1 + 4 x_2 + 2 x_3 <= 60
> ## 2 x_1 + x_2 + 2 x_3 <= 40
> ## x_1 + 3 x_2 + 2 x_3 <= 80
> ## x_1, x_2, x_3 >= 0
> test_nlp_07 <- function(solver) {
+ ## -----------------------------------------------------
+ ## Test transformation from LP to NLP
+ ## -----------------------------------------------------
+ mat <- matrix(c(3, 4, 2, 2, 1, 2, 1, 3, 2), nrow=3, byrow=TRUE)
+ lo <- L_objective(c(2, 4, 3))
+ lc <- L_constraint(L = mat, dir = c("<=", "<=", "<="), rhs = c(60, 40, 80))
+ lp <- OP(objective = lo, constraints = lc, maximum = TRUE)
+
+ sol <- c(0, 6.66666666666667, 16.6666666666667)
+ objval <- 76.6666666666667
+
+ opt <- ROI_solve(lp, solver = "nloptr.auglag", start = c(1, 1, 1))
+
+ check("NLP-07@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-07@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
>
> if ( !any(grepl("nloptr", names(ROI_registered_solvers()))) ) {
+ ## This should never happen.
+ cat("ROI.plugin.nloptr cloud not be found among the registered solvers.\n")
+ } else {
+ print("Start Testing!")
+ cat("Test 01: ")
+ local({test_nlp_01("nloptr.lbfgs")})
+ cat("OK\n"); cat("Test 02: ")
+ local({test_nlp_02("nloptr.cobyla")})
+ cat("OK\n"); cat("Test 03: ")
+ local({test_nlp_03("nloptr.auglag")})
+ cat("OK\n"); cat("Test 04: ")
+ local({test_nlp_04("nloptr.slsqp")})
+ }
[1] "Start Testing!"
Test 01: Error in check("NLP-01@01", equal(solution(opt), sol, tol = 1e-04)) :
in NLP-01@01
Calls: local ... eval -> eval -> eval -> eval -> test_nlp_01 -> check
Execution halted
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 1.0-1
Check: tests
Result: ERROR
Running ‘test_nloptr.R’ [6s/11s]
Running the tests in ‘tests/test_nloptr.R’ failed.
Complete output:
> stopifnot(require(nloptr))
Loading required package: nloptr
>
> Sys.setenv(ROI_LOAD_PLUGINS = FALSE)
>
> library(ROI)
ROI: R Optimization Infrastructure
Registered solver plugins: nlminb.
Default solver: auto.
> library(ROI.plugin.nloptr)
>
> check <- function(domain, condition, level=1, message="", call=sys.call(-1L)) {
+ if ( isTRUE(condition) ) return(invisible(NULL))
+ msg <- sprintf("in %s", domain)
+ if ( all(nchar(message) > 0) ) msg <- sprintf("%s\n\t%s", msg, message)
+ stop(msg)
+ return(invisible(NULL))
+ }
>
>
> ##
> ## Rosenbrock Banana function.
> ##
> test_nlp_01 <- function(solver) {
+ objval <- 0
+ sol <- c(1, 1)
+
+ obj <- function(x) {
+ return( 100 * (x[2] - x[1] * x[1])^2 + (1 - x[1])^2 )
+ }
+
+ grad <- 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(F_objective(F = obj, n = 2L, G = grad))
+ bounds(x) <- V_bound(lb = c(-3, -3), ub = c(3, 3))
+
+ control <- list(start = c(-1.2, 1))
+ opt <- ROI_solve(x, solver = solver, control = control)
+
+ check("NLP-01@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-01@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
> ##
> ## Example from NLopt tutorial.
> ##
> test_nlp_02 <- function(solver) {
+ objval <- -0.5443311
+ sol <- c(1/3, 8/27)
+
+ obj <- function(x) -sqrt(x[2])
+ grad <- function(x) -c(0, 0.5 / sqrt(x[2]))
+
+ con <- function(x) (c(2, -1) * x[1] + c(0, 1))^3 - x[2]
+ jac <- function(x) {
+ a <- c(2, -1)
+ b <- c(0, 1)
+ rbind(c(3 * a[1] * (a[1] * x[1] + b[1])^2, -1.0),
+ c(3 * a[2] * (a[2] * x[1] + b[2])^2, -1.0))
+ }
+
+ x <- OP(objective = F_objective(F = obj, n = 2L, G = grad),
+ constraints = F_constraint(con, c("<=", "<="), c(0, 0), J = jac),
+ maximum = TRUE)
+
+ control <- list(start = c(1.234, 5.678))
+ opt <- ROI_solve(x, solver, control = control)
+
+ check("NLP-02@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-02@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
> ##
> ## Problem 23 from the Hock-Schittkowsky test suite.
> ##
> test_nlp_03 <- function(solver) {
+ objval <- 2
+ sol <- c(1, 1)
+
+ obj <- function(x) x[1]^2 + x[2]^2
+ grad <- function(x) c(2 * x[1], 2 * x[2])
+
+
+ con <- function(x) {
+ c(1 - x[1] - x[2], 1 - x[1]^2 - x[2]^2, 9 - 9*x[1]^2 - x[2]^2,
+ x[2] - x[1]^2, x[1] - x[2]^2)
+ }
+
+ jac <- function(x) {
+ rbind(c(-1, -1), c(-2 * x[1], -2 * x[2]), c(-18 * x[1], -2 * x[2]),
+ c(-2 * x[1], 1), c(1, -2 * x[2]))
+ }
+
+ x <- OP(objective = F_objective(F = obj, n = 2L, G = grad),
+ constraints = F_constraint(F = con, dir = leq(5), rhs = double(5), J = jac),
+ bounds = V_bound(ld = -50, ud = 50, nobj = 2L))
+
+ control <- list(start = c(3, 1), max_iter = 100000)
+ opt <- ROI_solve(x, solver, control = control)
+
+ check("NLP-03@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-03@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
> ##
> ## Problem 71 from the Hock-Schittkowsky test suite.
> ##
> test_nlp_04 <- function(solver) {
+ objval <- 17.01402
+ sol <- c(1, 4.74299963, 3.82114998, 1.37940829)
+
+ obj <- function(x) x[1] * x[4] * (x[1] + x[2] + x[3]) + x[3]
+
+ grad <- function(x) {
+ c(x[1] * x[4] + x[4] * (x[1] + x[2] + x[3]), x[1] * x[4],
+ x[1] * x[4] + 1.0, x[1] * (x[1] + x[2] + x[3]))
+ }
+
+ con <- c(function(x) c(25 - x[1] * x[2] * x[3] * x[4]),
+ function(x) x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 - 40)
+
+ jac <- c(function(x) c(-x[2] * x[3] * x[4], -x[1] * x[3] * x[4],
+ -x[1] * x[2] * x[4], -x[1] * x[2] * x[3]),
+ function(x) c(2.0 * x[1], 2.0 * x[2], 2.0 * x[3], 2.0 * x[4]))
+
+ x <- OP(objective = F_objective(F = obj, n = 4L, G = grad),
+ constraints = F_constraint(F = con, dir = c("<=", "=="), rhs = c(0, 0), J = jac),
+ bounds = V_bound(ld = 1, ud = 5, nobj = 4L))
+
+ control <- list(start = c(1, 5, 5, 1))
+ opt <- ROI_solve(x, solver, control = control)
+
+ check("NLP-04@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-04@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
>
> ##
> ## Problem from
> ## @article{betts1977accelerated,
> ## title = {An accelerated multiplier method for nonlinear programming},
> ## author = {Betts, JT},
> ## journal = {Journal of Optimization Theory and Applications},
> ## volume = {21},
> ## number = {2},
> ## pages = {137--174},
> ## year = {1977},
> ## publisher = {Springer}
> ## }
> ##
> test_nlp_05 <- function(solver) {
+ objval <- 0
+ sol <- c(1, 1)
+
+ obj <- function(x) 100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2
+
+ x <- OP(objective = F_objective(F = obj, n = 2L))
+ bounds(x) <- V_bound(lb = c(-Inf, -1.5))
+
+ control <- list(start = c(2, 3))
+ opt <- ROI_solve(x, solver, control)
+
+ check("NLP-05@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-05@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
>
> ##
> ## Problem from
> ## @article{betts1977accelerated,
> ## title = {An accelerated multiplier method for nonlinear programming},
> ## author = {Betts, JT},
> ## journal = {Journal of Optimization Theory and Applications},
> ## volume = {21},
> ## number = {2},
> ## pages = {137--174},
> ## year = {1977},
> ## publisher = {Springer}
> ## }
> ##
> test_nlp_06 <- function(solver) {
+ objval <- 0.0504261879
+ sol <- c(2*sqrt(598/1200) * cos(1/3*acos(1/(400*(sqrt(598/1200)^3)))), 1.5)
+
+ obj <- function(x) 100 * (x[2] - x[1]^2)^2 + (1 - x[1])^2
+
+ x <- OP(objective = F_objective(F = obj, n = 2L))
+ bounds(x) <- V_bound(lb = c(-Inf, 1.5))
+
+ control <- list(start = c(2, 2.6))
+ opt <- ROI_solve(x, solver, control = control)
+
+ check("NLP-06@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-06@06", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
>
> ## SOURCE: Rglpk manual
> ## https://cran.r-project.org/web/packages/Rglpk/Rglpk.pdf
> ##
> ## LP - Example - 1
> ## max: 2 x_1 + 4 x_2 + 3 x_3
> ## s.t.
> ## 3 x_1 + 4 x_2 + 2 x_3 <= 60
> ## 2 x_1 + x_2 + 2 x_3 <= 40
> ## x_1 + 3 x_2 + 2 x_3 <= 80
> ## x_1, x_2, x_3 >= 0
> test_nlp_07 <- function(solver) {
+ ## -----------------------------------------------------
+ ## Test transformation from LP to NLP
+ ## -----------------------------------------------------
+ mat <- matrix(c(3, 4, 2, 2, 1, 2, 1, 3, 2), nrow=3, byrow=TRUE)
+ lo <- L_objective(c(2, 4, 3))
+ lc <- L_constraint(L = mat, dir = c("<=", "<=", "<="), rhs = c(60, 40, 80))
+ lp <- OP(objective = lo, constraints = lc, maximum = TRUE)
+
+ sol <- c(0, 6.66666666666667, 16.6666666666667)
+ objval <- 76.6666666666667
+
+ opt <- ROI_solve(lp, solver = "nloptr.auglag", start = c(1, 1, 1))
+
+ check("NLP-07@01", equal(solution(opt), sol, tol = 1e-4))
+ check("NLP-07@02", equal(solution(opt, "objval"), objval, tol = 1e-4))
+ }
>
>
> if ( !any(grepl("nloptr", names(ROI_registered_solvers()))) ) {
+ ## This should never happen.
+ cat("ROI.plugin.nloptr cloud not be found among the registered solvers.\n")
+ } else {
+ print("Start Testing!")
+ cat("Test 01: ")
+ local({test_nlp_01("nloptr.lbfgs")})
+ cat("OK\n"); cat("Test 02: ")
+ local({test_nlp_02("nloptr.cobyla")})
+ cat("OK\n"); cat("Test 03: ")
+ local({test_nlp_03("nloptr.auglag")})
+ cat("OK\n"); cat("Test 04: ")
+ local({test_nlp_04("nloptr.slsqp")})
+ }
[1] "Start Testing!"
Test 01: Error in check("NLP-01@01", equal(solution(opt), sol, tol = 1e-04)) :
in NLP-01@01
Calls: local ... eval -> eval -> eval -> eval -> test_nlp_01 -> check
Execution halted
Flavor: r-devel-linux-x86_64-fedora-gcc