gulf | R Documentation |
Test function 11 from the More', Garbow and Hillstrom paper.
gulf(m = 99)
m |
Number of summand functions in the objective function. Should be between 3 and 100, according to the MGH paper. Default value is 99, which Jamil and Xang (2013) list as the only valid value. |
The objective function is the sum of m
functions, each of n
parameters.
Dimensions: Number of parameters n = 3
, number of summand
functions 3 <= m <= 100
.
Minima: f = 0
at (50, 25, 1.5)
.
Note that the equation as published by More', Garbow and Hillstrom (1981) contains an error, where the symbol 'mi' should be interpreted as a minus sign. The corrected version can be found in Jamil and Xang (2013), and no doubt several other publications. The Jamil and Xang equation unfortunately contains its own minor errors, but you can piece together the correct equation from these two sources without too much trouble.
A list containing:
fn
Objective function which calculates the value given input
parameter vector.
gr
Gradient function which calculates the gradient vector
given input parameter vector.
he
If available, the hessian matrix (second derivatives)
of the function w.r.t. the parameters at the given values.
fg
A function which, given the parameter vector, calculates
both the objective value and gradient, returning a list with members
fn
and gr
, respectively.
x0
Standard starting point.
fmin
reported minimum
xmin
parameters at reported minimum
More', J. J., Garbow, B. S., & Hillstrom, K. E. (1981). Testing unconstrained optimization software. ACM Transactions on Mathematical Software (TOMS), 7(1), 17-41. \Sexpr[results=rd]{tools:::Rd_expr_doi("doi.org/10.1145/355934.355936")}
Jamil, M., & Yang, X. S. (2013). A literature survey of benchmark functions for global optimisation problems. International Journal of Mathematical Modelling and Numerical Optimisation, 4(2), 150-194. \Sexpr[results=rd]{tools:::Rd_expr_doi("doi.org/10.1504/IJMMNO.2013.055204")} \Sexpr[results=rd]{tools:::Rd_expr_doi("arxiv.org/abs/1308.4008")}
# Use 10 summand functions
fun <- gulf(m = 10)
# Optimize using the standard starting point
x0 <- fun$x0
res_x0 <- stats::optim(par = x0, fn = fun$fn, gr = fun$gr, method =
"L-BFGS-B")
# Use your own starting point
res <- stats::optim(c(0.1, 0.2, 0.3), fun$fn, fun$gr, method = "L-BFGS-B")
# Use 20 summand functions
fun20 <- gulf(m = 20)
res <- stats::optim(fun20$x0, fun20$fn, fun20$gr, method = "L-BFGS-B")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.