Title: | Objective functions for benchmarking the performance of global optimization algorithms |
---|---|
Description: | This package makes available 50 objective functions for benchmarking the performance of global optimization algorithms |
Authors: | Katharine Mullen |
Maintainer: | Katharine Mullen <[email protected]> |
License: | GPL (>= 3) |
Version: | 1.1 |
Built: | 2024-11-03 06:39:20 UTC |
Source: | CRAN |
This package makes available 50 objective functions for benchmarking the performance of global optimization algorithms.
The C
implementations were downloaded in a form that was modified from
the paper above, and modified further for incorporation into this
package from a site maintained by GAMS Development Corp. and GAMS
Software GmbH:
http://www.gamsworld.org/performance/selconglobal/selcongloballib.htm.
Katharine Mullen [email protected]
Montaz Ali, M., Khompatraporn, C. and Zabinsky, Z. B. (2005), A Numerical Evaluation of Several Stochastic Algorithms on Selected Continuous Global Optimization Test Problems, Journal of Global Optimization, 31, 4, 635–672.
Mullen, K. M. (2014), Continuous Global Optimization in R, Journal of Statistical Software, 60, 6, 1–45, URL http://www.jstatsoft.org/v60/i06/.
http://www.gamsworld.org/performance/selconglobal/selcongloballib.htm
for the C
source.
This function returns the default lower and upper bounds (box constraints) for the given objective function.
getDefaultBounds(fnName)
getDefaultBounds(fnName)
fnName |
A character vector naming the objective function to call. Options are elements of c("Ackleys", "AluffiPentini", "BeckerLago", "Bohachevsky1", "Bohachevsky2", "Branin", "Camel3", "Camel6", "CosMix2", "CosMix4", "DekkersAarts", "Easom", "EMichalewicz", "Expo", "GoldPrice", "Griewank", "Gulf", "Hartman3", "Hartman6", "Hosaki", "Kowalik", "LM1", "LM2n10", "LM2n5", "McCormic", "MeyerRoth", "MieleCantrell", "Modlangerman", "ModRosenbrock", "MultiGauss", "Neumaier2", "Neumaier3", "Paviani", "Periodic", "PowellQ", "PriceTransistor", "Rastrigin", "Rosenbrock", "Salomon", "Schaffer1", "Schaffer2", "Schubert", "Schwefel", "Shekel10", "Shekel5", "Shekel7", "Shekelfox5", "Wood", "Zeldasine10", "Zeldasine20"). Unique partial matches to these elements are accepted. |
A list containing the elements
lower |
Vector of reals representing lower bounds |
upper |
Vector of reals representing upper bounds |
Katharine Mullen [email protected]
Mullen, K. M. (2014), Continuous Global Optimization in R, Journal of Statistical Software, 60, 6, 1–45, URL http://www.jstatsoft.org/v60/i06/.
getProblemDimen("Ackleys") getProblemDimen("AluffiPentini")
getProblemDimen("Ackleys") getProblemDimen("AluffiPentini")
Return the real value representing the global optimum
(minimum) of a given objective function between the default bounds
possible to obtain via the function getDefaultBounds(fnName)
.
getGlobalOpt(fnName)
getGlobalOpt(fnName)
fnName |
A character vector naming the objective function to call. Options are elements of c("Ackleys", "AluffiPentini", "BeckerLago", "Bohachevsky1", "Bohachevsky2", "Branin", "Camel3", "Camel6", "CosMix2", "CosMix4", "DekkersAarts", "Easom", "EMichalewicz", "Expo", "GoldPrice", "Griewank", "Gulf", "Hartman3", "Hartman6", "Hosaki", "Kowalik", "LM1", "LM2n10", "LM2n5", "McCormic", "MeyerRoth", "MieleCantrell", "Modlangerman", "ModRosenbrock", "MultiGauss", "Neumaier2", "Neumaier3", "Paviani", "Periodic", "PowellQ", "PriceTransistor", "Rastrigin", "Rosenbrock", "Salomon", "Schaffer1", "Schaffer2", "Schubert", "Schwefel", "Shekel10", "Shekel5", "Shekel7", "Shekelfox5", "Wood", "Zeldasine10", "Zeldasine20"). Unique partial matches to these elements are accepted. |
Real representing the global optimum (minimum) of the objective
function named in fnName
.
Katharine Mullen [email protected]
Montaz Ali, M., Khompatraporn, C. and Zabinsky, Z. B. (2005), A Numerical Evaluation of Several Stochastic Algorithms on Selected Continuous Global Optimization Test Problems, Journal of Global Optimization, 31, 4, 635–672.
Mullen, K. M. (2014), Continuous Global Optimization in R, Journal of Statistical Software, 60, 6, 1–45, URL http://www.jstatsoft.org/v60/i06/.
http://www.gamsworld.org/performance/selconglobal/selcongloballib.htm
for the C
source.
getGlobalOpt("Ackleys") getGlobalOpt("AluffiPentini")
getGlobalOpt("Ackleys") getGlobalOpt("AluffiPentini")
This function returns an integer value that corresponds to the length of the parameter vector expected by a given objective function.
getProblemDimen(fnName)
getProblemDimen(fnName)
fnName |
A character vector naming the objective function to call. Options are elements of c("Ackleys", "AluffiPentini", "BeckerLago", "Bohachevsky1", "Bohachevsky2", "Branin", "Camel3", "Camel6", "CosMix2", "CosMix4", "DekkersAarts", "Easom", "EMichalewicz", "Expo", "GoldPrice", "Griewank", "Gulf", "Hartman3", "Hartman6", "Hosaki", "Kowalik", "LM1", "LM2n10", "LM2n5", "McCormic", "MeyerRoth", "MieleCantrell", "Modlangerman", "ModRosenbrock", "MultiGauss", "Neumaier2", "Neumaier3", "Paviani", "Periodic", "PowellQ", "PriceTransistor", "Rastrigin", "Rosenbrock", "Salomon", "Schaffer1", "Schaffer2", "Schubert", "Schwefel", "Shekel10", "Shekel5", "Shekel7", "Shekelfox5", "Wood", "Zeldasine10", "Zeldasine20"). Unique partial matches to these elements are accepted. |
Note that some of the above functions can handle parameter
vectors of multiple lengths; the return value given indicates the
parameter vector length that corresponds to a problem dimension for
which the function getGlobalOpt
returns the global optimum.
An integer value describing the length of the parameter vector expected by the objective function.
Katharine Mullen [email protected]
Mullen, K. M. (2014), Continuous Global Optimization in R, Journal of Statistical Software, 60, 6, 1–45, URL http://www.jstatsoft.org/v60/i06/.
getProblemDimen("Ackleys") getProblemDimen("AluffiPentini")
getProblemDimen("Ackleys") getProblemDimen("AluffiPentini")
This function is used to access one of 50 objective functions that may be useful for benchmarking performance of global optimization algorithms.
goTest(par, fnName, checkDim = TRUE)
goTest(par, fnName, checkDim = TRUE)
par |
Vector of reals representing the parameter vector at which to evaluate the objective function. |
fnName |
A character vector representing the name of the objective function to use. Options are elements of c("Ackleys", "AluffiPentini", "BeckerLago", "Bohachevsky1", "Bohachevsky2", "Branin", "Camel3", "Camel6", "CosMix2", "CosMix4", "DekkersAarts", "Easom", "EMichalewicz", "Expo", "GoldPrice", "Griewank", "Gulf", "Hartman3", "Hartman6", "Hosaki", "Kowalik", "LM1", "LM2n10", "LM2n5", "McCormic", "MeyerRoth", "MieleCantrell", "Modlangerman", "ModRosenbrock", "MultiGauss", "Neumaier2", "Neumaier3", "Paviani", "Periodic", "PowellQ", "PriceTransistor", "Rastrigin", "Rosenbrock", "Salomon", "Schaffer1", "Schaffer2", "Schubert", "Schwefel", "Shekel10", "Shekel5", "Shekel7", "Shekelfox5", "Wood", "Zeldasine10", "Zeldasine20"). Unique partial matches to these elements are accepted. |
checkDim |
A boolean value that is |
Note that the factor of 0.02 in Ackley's function has been changed to the value commonly found in the literature, 0.2. Also, Storn's Tchebychev Problem in 9 and 17 dimensions was not included, since the global minima of the imlementation of these functions does not correspond to the global minima reported in the above paper.
A real that representes the value of the objective function
fnName
at the parameter vector par
.
Katharine Mullen [email protected]
Montaz Ali, M., Khompatraporn, C. and Zabinsky, Z. B. (2005), A Numerical Evaluation of Several Stochastic Algorithms on Selected Continuous Global Optimization Test Problems, Journal of Global Optimization, 31, 4, 635–672.
Mullen, K. M. (2014), Continuous Global Optimization in R, Journal of Statistical Software, 60, 6, 1–45, URL http://www.jstatsoft.org/v60/i06/.
http://www.gamsworld.org/performance/selconglobal/selcongloballib.htm
for the C
source.
goTest(fnName="Ackleys", par=rnorm(10)) goTest(fnName="AluffiPentini", par=c(1,2)) goTest(fnName="AluffiPentini", par=rep(1,getProblemDimen("AluffiPentini"))) ## use in an optimization via 'optim' optim(par=c(1,2), fn=goTest, fnName="AluffiPentini")
goTest(fnName="Ackleys", par=rnorm(10)) goTest(fnName="AluffiPentini", par=c(1,2)) goTest(fnName="AluffiPentini", par=rep(1,getProblemDimen("AluffiPentini"))) ## use in an optimization via 'optim' optim(par=c(1,2), fn=goTest, fnName="AluffiPentini")