2023-02-01 23:26:37 +01:00
|
|
|
// Copyright 2023 wanderer <a_mirre at utb dot cz>
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
|
|
package cec2020
|
|
|
|
|
2023-02-07 22:54:15 +01:00
|
|
|
import "git.dotya.ml/wanderer/math-optim/bench"
|
|
|
|
|
2023-02-01 23:26:37 +01:00
|
|
|
/*
|
|
|
|
extern double *OShift,*M,*y,*z,*x_bound;
|
|
|
|
extern int ini_flag,n_flag,func_flag,*SS;
|
|
|
|
*/
|
2023-02-07 22:54:15 +01:00
|
|
|
|
2023-02-08 19:50:40 +01:00
|
|
|
// Functions is a string-func map of function names and specific bench funcs
|
|
|
|
// for easier iterable access.
|
|
|
|
var Functions = map[string]func([]float64) float64{
|
|
|
|
"Bent Cigar": BentCigar,
|
|
|
|
"Schwefel Modified": Schwefel,
|
|
|
|
"Lunacek Bi-Rastrigin": LunacekBiRastrigin,
|
|
|
|
"Rosenbrock-Griewank": RosenbrockGriewank,
|
|
|
|
"Hybrid1": Hybrid1,
|
|
|
|
"Hybrid2": Hybrid2,
|
|
|
|
"Hybrid3": Hybrid3,
|
2023-02-09 22:10:33 +01:00
|
|
|
"Composition1": Composition1,
|
|
|
|
"Composition2": Composition2,
|
|
|
|
"Composition3": Composition3,
|
2023-02-08 19:50:40 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// FuncNames represents a numbered list of function name.
|
|
|
|
var FuncNames = map[int]string{
|
|
|
|
0: "Bent Cigar",
|
|
|
|
1: "Schwefel Modified",
|
|
|
|
2: "Lunacek Bi-Rastrigin",
|
|
|
|
3: "Rosenbrock-Griewank",
|
|
|
|
4: "Hybrid1",
|
|
|
|
5: "Hybrid2",
|
|
|
|
6: "Hybrid3",
|
2023-02-09 22:10:33 +01:00
|
|
|
7: "Composition1",
|
|
|
|
8: "Composition2",
|
|
|
|
9: "Composition3",
|
2023-02-08 19:50:40 +01:00
|
|
|
}
|
2023-02-07 22:54:15 +01:00
|
|
|
|
|
|
|
// SearchRange specifies the CEC2020 search range.
|
|
|
|
var SearchRange = bench.NewfuncParams(searchRangeMin, searchRangeMax)
|
2023-02-09 03:12:30 +01:00
|
|
|
|
|
|
|
var (
|
|
|
|
// Dimensions to bench.
|
|
|
|
Dimensions = []int{
|
|
|
|
5,
|
|
|
|
10,
|
|
|
|
15,
|
|
|
|
20,
|
|
|
|
}
|
|
|
|
// MaxFES as specified for each dimension.
|
|
|
|
MaxFES = []int{
|
|
|
|
50000,
|
|
|
|
1000000,
|
|
|
|
3000000,
|
|
|
|
10000000,
|
|
|
|
}
|
|
|
|
)
|