GOA {metaheuristicOpt} | R Documentation |
This is the internal function that implements Grasshopper
Algorithm. It is used to solve continuous optimization tasks.
Users do not need to call it directly,
but just use metaOpt
.
GOA(FUN, optimType = "MIN", numVar, numPopulation = 40,
maxIter = 500, rangeVar)
FUN |
an objective function or cost function, |
optimType |
a string value that represent the type of optimization.
There are two option for this arguments: |
numVar |
a positive integer to determine the number variables. |
numPopulation |
a positive integer to determine the number populations. The default value is 40. |
maxIter |
a positive integer to determine the maximum number of iterations. The default value is 500. |
rangeVar |
a matrix ( |
Grasshopper Optimisation Algorithm (GOA) was proposed by (Mirjalili et al., 2017). The algorithm mathematically models and mimics the behaviour of grasshopper swarms in nature for solving optimisation problems.
Vector [v1, v2, ..., vn]
where n
is number variable
and vn
is value of n-th
variable.
Shahrzad Saremi, Seyedali Mirjalili, Andrew Lewis, Grasshopper Optimisation Algorithm: Theory and application, Advances in Engineering Software, Volume 105, March 2017, Pages 30-47, ISSN 0965-9978, https://doi.org/10.1016/j.advengsoft.2017.01.004
##################################
## Optimizing the schewefel's problem 1.2 function
# define schewefel's problem 1.2 function as objective function
schewefels1.2 <- function(x){
dim <- length(x)
result <- 0
for(i in 1:dim){
result <- result + sum(x[1:i])^2
}
return(result)
}
## Define parameter
numVar <- 5
rangeVar <- matrix(c(-10,10), nrow=2)
## calculate the optimum solution using grasshoper algorithm
resultGOA <- GOA(schewefels1.2, optimType="MIN", numVar, numPopulation=20,
maxIter=100, rangeVar)
## calculate the optimum value using schewefel's problem 1.2 function
optimum.value <- schewefels1.2(resultGOA)