From eb875e459e8ed3ea6337880fa8ccf777dfa89cff Mon Sep 17 00:00:00 2001 From: Mauricio Zambrano-Bigiarini <hzambran@users.noreply.github.com> Date: Fri, 21 Sep 2012 17:10:55 +0000 Subject: [PATCH] 'test\_functions': new shifted versions of sphere, acley, griewank and rastrigin --- DESCRIPTION | 2 +- R/test_functions.R | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 28de9b5..fed2061 100755 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: hydroPSO Type: Package Title: Model-Independent Particle Swarm Optimisation for Environmental Models -Version: 0.1-58-2 +Version: 0.1-58-3 Date: 2012-09-20 Author: Mauricio Zambrano-Bigiarini [aut, cre] and Rodrigo Rojas [ctb] Authors@R: c(person("Mauricio", "Zambrano-Bigiarini", email="mzb.devel@gmail.com", role=c("aut","cre")), person("Rodrigo", "Rojas", email="Rodrigo.RojasMujica@gmail.com", role=c("ctb")) ) diff --git a/R/test_functions.R b/R/test_functions.R index 6ddc341..b2adee7 100755 --- a/R/test_functions.R +++ b/R/test_functions.R @@ -66,3 +66,66 @@ ackley <- function(x) { return( -20*exp( -0.2*sqrt((1/n)*sum(x^2)) ) - exp( (1/n)*sum(cos(2*pi*x)) ) + 20 + exp(1) ) } # 'schafferF6' END + +################################################################################ +########################### Shifted Functions ################################## +################################################################################ + +# MZB, 21-Sep-2012. Unimodal Function +# Shifted Sphere: f(o,..,o)=-450. Minimization. In [-100, 100]^n. AcceptableError < 0.01 +ssphere <- function (x, o=-100+200*runif(length(x)), fbias=-450) { + n <- length(x) + if (n != length(o)) stop("length(x) != length(o)") + z <- x - o + return(sum(z^2) + fbias) +} # 'ssphere' + +# MZB, RR, 21-Jun-2011 +# Shifted Griewank : f(o,..,o)=-180. Minimization. In [-600, 600]^n. AcceptableError < 0.05 +sgriewank <- function (x, o=-600+1200*runif(length(x)), fbias=-180) { + n <- length(x) + if (n != length(o)) stop("length(x) != length(o)") + z <- x - o + return(1 + (1/4000) * sum(z^2) - prod(cos(z/sqrt(seq(1:n)))) + fbias) +} # 'sgriewank' + + +# MZB, 21-Sep-2012. Multimodal Basic Function +# Shifted Rosenbrock : f(o,..,o)=390. Minimization. In [-100, 100]^n. AcceptableError < 100 +srosenbrock <- function(x, o=-100+200*runif(length(x)), fbias=390) { + n <- length(x) + if (n != length(o)) stop("length(x) != length(o)") + z <- x - o + return( sum( ( 1- z[1:(n-1)] )^2 + 100*( z[2:n] - z[1:(n-1)]^2 )^2 ) + fbias ) +} # 'srosenbrock' END + + +# MZB, 21-Sep-2012 +# Shifted Ackley: f(o,..,o)=-140. Minimization. In [-32.768, 32.768]^n. AcceptableError < 0.01, a=20 ; b=0.2 ; c=2*pi +sackley <- function (x, o=-32+64*runif(length(x)), fbias=-140) { + n <- length(x) + if (n != length(o)) stop("length(x) != length(o)") + z <- x - o + return(-20 * exp(-0.2 * sqrt((1/n) * sum(z^2))) - exp((1/n) * sum(cos(2 * pi * z))) + 20 + exp(1) + fbias ) +} # 'sackley' + + +# MZB, 21-Sep-2012 +# Shifted Rastrigin: f(o,..,o)=-330. Minimization. In [-5.12, 5.12]^n. AcceptableError < 100 +srastrigin <- function(x, o=-5+10*runif(length(x)), fbias=-330) { + n <- length(x) + if (n != length(o)) stop("length(x) != length(o)") + z <- x - o + return( 10*n + sum( z^2 - 10*cos(2*pi*z) ) + fbias ) +} # 'srastrigin' END + + +# MZB, 21-Sep-2012 +# Shifted Rotated Rastrigin: f(o,..,o)=-330. Minimization. In [-5.12, 5.12]^n. AcceptableError < 100 +srrastrigin <- function(x, o=-5+10*runif(length(x)), fbias=-330) { + n <- length(x) + if (n != length(o)) stop("length(x) != length(o)") + z <- x - o + return( 10*n + sum( z^2 - 10*cos(2*pi*z) ) + fbias ) +} # 'srastrigin' END + -- GitLab