A set of common benchmark functions for testing optimization algorithms in Julia
To add the package, enter the following into the REPL:
julia> using Pkg
julia> Pkg.add("BenchmarkFunctions")
A simple example for creating a grid and evaluating a benchmark function is:
using BenchmarkFunctions
X = ndgrid(-4:0.1:4,-4:0.1:4)
y = himmelblau(X)
To recreate the above plot:
using BenchmarkFunctions
plot("himmelblau", -4:0.1:4, -4:0.1:4)
This package also include some complicated benchmark functions.
The Competition on Real-World Multiobjective Constrained Optimization 2021 (RW-MOP-2021) presented 50 benchmark functions from real-world problems for testing multi-objective optimization algorithms. Those problems are available here.
julia> using BenchmarkFunctions
julia> f, conf = get_RW_MOP_problem(2); # problem 2
julia> conf
Dict{Symbol, Any} with 8 entries:
:xmin => [0.05, 0.2, 0.2, 0.35, 3.0]
:xmax => [0.5, 0.5, 0.6, 0.5, 6.0]
:n => 5
:function => "vibrating_platform"
:gn => 5
:hn => 0
:fn => 2
:nadir => [-0.00127461, 318.255]
Use BenchmarkFunctions.NAME_OF_PROBLEMS_RW_MOP_2021
for full list of problems.