File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ackley_meta = Dict (
2+ :nvar => 100 ,
3+ :variable_nvar => true ,
4+ :ncon => 0 ,
5+ :variable_ncon => false ,
6+ :minimize => true ,
7+ :name => " ackley" ,
8+ :has_equalities_only => false ,
9+ :has_inequalities_only => false ,
10+ :has_bounds => false ,
11+ :has_fixed_variables => false ,
12+ :objtype => :other ,
13+ :contype => :unconstrained ,
14+ :best_known_lower_bound => - Inf ,
15+ :best_known_upper_bound => 20.0 + exp (1.0 ),
16+ :is_feasible => true ,
17+ :defined_everywhere => missing ,
18+ :origin => :unknown ,
19+ )
20+ get_ackley_nvar (; n:: Integer = default_nvar, kwargs... ) = n
21+ get_ackley_ncon (; n:: Integer = default_nvar, kwargs... ) = 0
22+ get_ackley_nlin (; n:: Integer = default_nvar, kwargs... ) = 0
23+ get_ackley_nnln (; n:: Integer = default_nvar, kwargs... ) = 0
24+ get_ackley_nequ (; n:: Integer = default_nvar, kwargs... ) = 0
25+ get_ackley_nineq (; n:: Integer = default_nvar, kwargs... ) = 0
Original file line number Diff line number Diff line change 1+ griewank_meta = Dict (
2+ :nvar => 100 ,
3+ :variable_nvar => true ,
4+ :ncon => 0 ,
5+ :variable_ncon => false ,
6+ :minimize => true ,
7+ :name => " griewank" ,
8+ :has_equalities_only => false ,
9+ :has_inequalities_only => false ,
10+ :has_bounds => false ,
11+ :has_fixed_variables => false ,
12+ :objtype => :other ,
13+ :contype => :unconstrained ,
14+ :best_known_lower_bound => - Inf ,
15+ :best_known_upper_bound => 360001.0 ,
16+ :is_feasible => true ,
17+ :defined_everywhere => missing ,
18+ :origin => :unknown ,
19+ )
20+ get_griewank_nvar (; n:: Integer = default_nvar, kwargs... ) = n
21+ get_griewank_ncon (; n:: Integer = default_nvar, kwargs... ) = 0
22+ get_griewank_nlin (; n:: Integer = default_nvar, kwargs... ) = 0
23+ get_griewank_nnln (; n:: Integer = default_nvar, kwargs... ) = 0
24+ get_griewank_nequ (; n:: Integer = default_nvar, kwargs... ) = 0
25+ get_griewank_nineq (; n:: Integer = default_nvar, kwargs... ) = 0
Original file line number Diff line number Diff line change 1+ rastrigin_meta = Dict (
2+ :nvar => 100 ,
3+ :variable_nvar => true ,
4+ :ncon => 0 ,
5+ :variable_ncon => false ,
6+ :minimize => true ,
7+ :name => " rastrigin" ,
8+ :has_equalities_only => false ,
9+ :has_inequalities_only => false ,
10+ :has_bounds => false ,
11+ :has_fixed_variables => false ,
12+ :objtype => :other ,
13+ :contype => :unconstrained ,
14+ :best_known_lower_bound => - Inf ,
15+ :best_known_upper_bound => 10000.0 ,
16+ :is_feasible => true ,
17+ :defined_everywhere => missing ,
18+ :origin => :unknown ,
19+ )
20+ get_rastrigin_nvar (; n:: Integer = default_nvar, kwargs... ) = n
21+ get_rastrigin_ncon (; n:: Integer = default_nvar, kwargs... ) = 0
22+ get_rastrigin_nlin (; n:: Integer = default_nvar, kwargs... ) = 0
23+ get_rastrigin_nnln (; n:: Integer = default_nvar, kwargs... ) = 0
24+ get_rastrigin_nequ (; n:: Integer = default_nvar, kwargs... ) = 0
25+ get_rastrigin_nineq (; n:: Integer = default_nvar, kwargs... ) = 0
Original file line number Diff line number Diff line change 1+ sphere_meta = Dict (
2+ :nvar => 100 ,
3+ :variable_nvar => true ,
4+ :ncon => 0 ,
5+ :variable_ncon => false ,
6+ :minimize => true ,
7+ :name => " sphere" ,
8+ :has_equalities_only => false ,
9+ :has_inequalities_only => false ,
10+ :has_bounds => false ,
11+ :has_fixed_variables => false ,
12+ :objtype => :other ,
13+ :contype => :unconstrained ,
14+ :best_known_lower_bound => - Inf ,
15+ :best_known_upper_bound => 100.0 ,
16+ :is_feasible => true ,
17+ :defined_everywhere => missing ,
18+ :origin => :unknown ,
19+ )
20+ get_sphere_nvar (; n:: Integer = default_nvar, kwargs... ) = n
21+ get_sphere_ncon (; n:: Integer = default_nvar, kwargs... ) = 0
22+ get_sphere_nlin (; n:: Integer = default_nvar, kwargs... ) = 0
23+ get_sphere_nnln (; n:: Integer = default_nvar, kwargs... ) = 0
24+ get_sphere_nequ (; n:: Integer = default_nvar, kwargs... ) = 0
25+ get_sphere_nineq (; n:: Integer = default_nvar, kwargs... ) = 0
Original file line number Diff line number Diff line change 1+ # Ackley test function
2+ #
3+ # A multivariate multimodal optimization problem from the
4+ # AMPGO test set.
5+ #
6+ # Problem Ackley in
7+ # http://infinity77.net/global_optimization/test_functions_nd_A.html
8+ # Andrea Gavana
9+ #
10+ # f(x) = -20*exp(-0.2*sqrt(sum(x_i^2)/n)) - exp(sum(cos(2*pi*x_i))/n) + 20 + e
11+ #
12+ # Global minimum: f(0,...,0) = 0
13+ # Bounds: x_i in [-32, 32] for all i
14+
15+ export ackley
16+
17+ " Ackley multimodal minimization problem"
18+ function ackley (args... ; n:: Int = default_nvar, kwargs... )
19+ n < 1 && @warn (" ackley: number of variables must be ≥ 1" )
20+ n = max (1 , n)
21+
22+ nlp = Model ()
23+
24+ x0 = [- 32 + 64 * rand () for i = 1 : n]
25+ @variable (nlp, x[i = 1 : n], start = x0[i])
26+
27+ @objective (
28+ nlp,
29+ Min,
30+ - 20 * exp (- 0.2 * sqrt (sum (x[i]^ 2 for i = 1 : n) / n)) -
31+ exp (sum (cos (2 * π * x[i]) for i = 1 : n) / n) +
32+ 20 +
33+ exp (1 )
34+ )
35+
36+ return nlp
37+ end
Original file line number Diff line number Diff line change 1+ # Griewank test function
2+ #
3+ # A multivariate multimodal optimization problem from the
4+ # AMPGO test set.
5+ #
6+ # Problem Griewank in
7+ # http://infinity77.net/global_optimization/test_functions_nd_G.html
8+ # Andrea Gavana
9+ #
10+ # f(x) = sum(x_i^2)/4000 - prod(cos(x_i/sqrt(i))) + 1
11+ #
12+ # Global minimum: f(0,...,0) = 0
13+ # Bounds: x_i in [-600, 600] for all i
14+
15+ export griewank
16+
17+ " Griewank multimodal minimization problem"
18+ function griewank (args... ; n:: Int = default_nvar, kwargs... )
19+ n < 1 && @warn (" griewank: number of variables must be ≥ 1" )
20+ n = max (1 , n)
21+
22+ nlp = Model ()
23+
24+ x0 = [- 600 + 1200 * rand () for i = 1 : n]
25+ @variable (nlp, x[i = 1 : n], start = x0[i])
26+
27+ @objective (
28+ nlp,
29+ Min,
30+ sum (x[i]^ 2 for i = 1 : n) / 4000 - prod (cos (x[i] / sqrt (i)) for i = 1 : n) + 1
31+ )
32+
33+ return nlp
34+ end
Original file line number Diff line number Diff line change 1+ # Rastrigin test function
2+ #
3+ # A multivariate highly multimodal optimization problem from the
4+ # AMPGO test set.
5+ #
6+ # Problem Rastrigin in
7+ # http://infinity77.net/global_optimization/test_functions_nd_R.html
8+ # Andrea Gavana
9+ #
10+ # f(x) = 10*n + sum(x_i^2 - 10*cos(2*pi*x_i))
11+ #
12+ # Global minimum: f(0,...,0) = 0
13+ # Bounds: x_i in [-5.12, 5.12] for all i
14+
15+ export rastrigin
16+
17+ " Rastrigin multimodal minimization problem"
18+ function rastrigin (args... ; n:: Int = default_nvar, kwargs... )
19+ n < 1 && @warn (" rastrigin: number of variables must be ≥ 1" )
20+ n = max (1 , n)
21+
22+ nlp = Model ()
23+
24+ x0 = [- 5.12 + 10.24 * rand () for i = 1 : n]
25+ @variable (nlp, x[i = 1 : n], start = x0[i])
26+
27+ @objective (nlp, Min, 10 * n + sum (x[i]^ 2 - 10 * cos (2 * π * x[i]) for i = 1 : n))
28+
29+ return nlp
30+ end
Original file line number Diff line number Diff line change 1+ # Sphere test function
2+ #
3+ # A simple multivariate convex optimization problem from the
4+ # AMPGO test set.
5+ #
6+ # Problem Sphere in
7+ # http://infinity77.net/global_optimization/test_functions_nd_S.html
8+ # Andrea Gavana
9+ #
10+ # f(x) = sum(x_i^2)
11+ #
12+ # Global minimum: f(0,...,0) = 0
13+ # Bounds: x_i in [-1, 1] for all i
14+
15+ export sphere
16+
17+ " Sphere convex minimization problem"
18+ function sphere (args... ; n:: Int = default_nvar, kwargs... )
19+ n < 1 && @warn (" sphere: number of variables must be ≥ 1" )
20+ n = max (1 , n)
21+
22+ nlp = Model ()
23+
24+ x0 = [- 1 + 2 * rand () for i = 1 : n]
25+ @variable (nlp, x[i = 1 : n], start = x0[i])
26+
27+ @objective (nlp, Min, sum (x[i]^ 2 for i = 1 : n))
28+
29+ return nlp
30+ end
You can’t perform that action at this time.
0 commit comments