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