Skip to content

Commit 3a68db0

Browse files
tmigotfrapac
andauthored
Add missing COPS instances in JuMP + refactor test II (#386)
* add missing COPS instances * Add missing COPS instances in JuMP + refactor test II --------- Co-authored-by: fpacaud <[email protected]>
1 parent 20684bd commit 3a68db0

23 files changed

+1017
-15
lines changed

docs/src/contributing.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,11 @@ The documentation should be added to the file in the `PureJuMP` folder.
2626
* A first version of the `meta` can be generated using `generate_meta`. A `String` is returned that can be copy-pasted into the `Meta` folder, and then edited.
2727

2828
```julia
29-
using ADNLPModels, NLPModels, NLPModelsJuMP, OptimizationProblems
29+
using ADNLPModels, Distributed, NLPModels, NLPModelsJuMP, OptimizationProblems, Test
3030
include("test/utils.jl")
31-
# there must exists a function `problem_name` which loads the model in the environment
32-
name = "problem_name"
33-
open("$name.jl", "w") do io
34-
print(io, generate_meta(name))
35-
end
31+
# there must exists a function `problem_name` which loads the model in the environment,
32+
# it must be exported.
33+
create_meta_files(String["catmix", "gasoil", "glider", "methanol", "pinene", "rocket", "steering"])
3634
```
3735

3836
* Problems modeled with `ADNLPModels` should be type-stable, i.e. they should all have keyword argument `type::Type{T} = Float64` where `T` is the type of the initial guess and the type used by the `NLPModel` API.

src/Meta/catmix.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
catmix_meta = Dict(
2+
:nvar => 2302,
3+
:variable_nvar => true,
4+
:ncon => 2002,
5+
:variable_ncon => true,
6+
:minimize => true,
7+
:name => "catmix",
8+
:has_equalities_only => true,
9+
:has_inequalities_only => false,
10+
:has_bounds => true,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :general,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => 0.0,
16+
:is_feasible => true,
17+
:defined_everywhere => missing,
18+
:origin => :unknown,
19+
)
20+
get_catmix_nvar(; n::Integer = default_nvar, kwargs...) = 23 * n + 2
21+
get_catmix_ncon(; n::Integer = default_nvar, kwargs...) = 20 * n + 2
22+
get_catmix_nlin(; n::Integer = default_nvar, kwargs...) = 14 * n + 2
23+
get_catmix_nnln(; n::Integer = default_nvar, kwargs...) = 6 * n + 0
24+
get_catmix_nequ(; n::Integer = default_nvar, kwargs...) = 20 * n + 2
25+
get_catmix_nineq(; n::Integer = default_nvar, kwargs...) = 0

src/Meta/gasoil.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
gasoil_meta = Dict(
2+
:nvar => 2603,
3+
:variable_nvar => true,
4+
:ncon => 2600,
5+
:variable_ncon => true,
6+
:minimize => true,
7+
:name => "gasoil",
8+
:has_equalities_only => true,
9+
:has_inequalities_only => false,
10+
:has_bounds => true,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :general,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => Inf,
16+
:is_feasible => missing,
17+
:defined_everywhere => missing,
18+
:origin => :unknown,
19+
)
20+
get_gasoil_nvar(; n::Integer = default_nvar, kwargs...) = 26 * n + 3
21+
get_gasoil_ncon(; n::Integer = default_nvar, kwargs...) = 26 * n + 0
22+
get_gasoil_nlin(; n::Integer = default_nvar, kwargs...) = 18 * n + 0
23+
get_gasoil_nnln(; n::Integer = default_nvar, kwargs...) = 8 * n + 0
24+
get_gasoil_nequ(; n::Integer = default_nvar, kwargs...) = 26 * n + 0
25+
get_gasoil_nineq(; n::Integer = default_nvar, kwargs...) = 0

src/Meta/glider.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
glider_meta = Dict(
2+
:nvar => 506,
3+
:variable_nvar => true,
4+
:ncon => 407,
5+
:variable_ncon => true,
6+
:minimize => false,
7+
:name => "glider",
8+
:has_equalities_only => true,
9+
:has_inequalities_only => false,
10+
:has_bounds => true,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :general,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => Inf,
16+
:is_feasible => missing,
17+
:defined_everywhere => missing,
18+
:origin => :unknown,
19+
)
20+
get_glider_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6
21+
get_glider_ncon(; n::Integer = default_nvar, kwargs...) = 4 * n + 7
22+
get_glider_nlin(; n::Integer = default_nvar, kwargs...) = 7
23+
get_glider_nnln(; n::Integer = default_nvar, kwargs...) = 4 * n + 0
24+
get_glider_nequ(; n::Integer = default_nvar, kwargs...) = 4 * n + 7
25+
get_glider_nineq(; n::Integer = default_nvar, kwargs...) = 0

src/Meta/methanol.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
methanol_meta = Dict(
2+
:nvar => 3005,
3+
:variable_nvar => true,
4+
:ncon => 3000,
5+
:variable_ncon => true,
6+
:minimize => true,
7+
:name => "methanol",
8+
:has_equalities_only => true,
9+
:has_inequalities_only => false,
10+
:has_bounds => true,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :general,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => Inf,
16+
:is_feasible => missing,
17+
:defined_everywhere => missing,
18+
:origin => :unknown,
19+
)
20+
get_methanol_nvar(; n::Integer = default_nvar, kwargs...) = 30 * n + 5
21+
get_methanol_ncon(; n::Integer = default_nvar, kwargs...) = 30 * n + 0
22+
get_methanol_nlin(; n::Integer = default_nvar, kwargs...) = 21 * n + 0
23+
get_methanol_nnln(; n::Integer = default_nvar, kwargs...) = 9 * n + 0
24+
get_methanol_nequ(; n::Integer = default_nvar, kwargs...) = 30 * n + 0
25+
get_methanol_nineq(; n::Integer = default_nvar, kwargs...) = 0

src/Meta/minsurf.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
minsurf_meta = Dict(
2+
:nvar => 144,
3+
:variable_nvar => true,
4+
:ncon => 256,
5+
:variable_ncon => true,
6+
:minimize => true,
7+
:name => "minsurf",
8+
:has_equalities_only => false,
9+
:has_inequalities_only => false,
10+
:has_bounds => false,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :linear,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => Inf,
16+
:is_feasible => missing,
17+
:defined_everywhere => missing,
18+
:origin => :unknown,
19+
)
20+
get_minsurf_nvar(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = (nx + 2)*(ny + 2)
21+
get_minsurf_ncon(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = (nx + 2)*(ny + 2) + 2*(nx + ny + 4) + ((2*divrem(nx + 1, 4)[1] + divrem(nx + 1, 4)[2] + 1) * (2*divrem(ny + 1, 4)[1] + divrem(ny + 1, 4)[2] + 1))
22+
get_minsurf_nlin(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = (nx + 2)*(ny + 2) + 2*(nx + ny + 4) + ((2*divrem(nx + 1, 4)[1] + divrem(nx + 1, 4)[2] + 1) * (2*divrem(ny + 1, 4)[1] + divrem(ny + 1, 4)[2] + 1))
23+
get_minsurf_nnln(; n::Integer = default_nvar, kwargs...) = 0
24+
get_minsurf_nequ(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = 2*(nx + ny + 4)
25+
get_minsurf_nineq(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = (nx + 2) * (ny + 2) + ((2*divrem(nx + 1, 4)[1] + divrem(nx + 1, 4)[2] + 1) * (2*divrem(ny + 1, 4)[1] + divrem(ny + 1, 4)[2] + 1))

src/Meta/pinene.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
pinene_meta = Dict(
2+
:nvar => 5005,
3+
:variable_nvar => true,
4+
:ncon => 5000,
5+
:variable_ncon => true,
6+
:minimize => true,
7+
:name => "pinene",
8+
:has_equalities_only => true,
9+
:has_inequalities_only => false,
10+
:has_bounds => true,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :general,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => Inf,
16+
:is_feasible => missing,
17+
:defined_everywhere => missing,
18+
:origin => :unknown,
19+
)
20+
get_pinene_nvar(; n::Integer = default_nvar, kwargs...) = 50 * n + 5
21+
get_pinene_ncon(; n::Integer = default_nvar, kwargs...) = 50 * n + 0
22+
get_pinene_nlin(; n::Integer = default_nvar, kwargs...) = 35 * n + 0
23+
get_pinene_nnln(; n::Integer = default_nvar, kwargs...) = 15 * n + 0
24+
get_pinene_nequ(; n::Integer = default_nvar, kwargs...) = 50 * n + 0
25+
get_pinene_nineq(; n::Integer = default_nvar, kwargs...) = 0

src/Meta/rocket.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
rocket_meta = Dict(
2+
:nvar => 405,
3+
:variable_nvar => true,
4+
:ncon => 304,
5+
:variable_ncon => true,
6+
:minimize => false,
7+
:name => "rocket",
8+
:has_equalities_only => true,
9+
:has_inequalities_only => false,
10+
:has_bounds => true,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :general,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => Inf,
16+
:is_feasible => missing,
17+
:defined_everywhere => missing,
18+
:origin => :unknown,
19+
)
20+
get_rocket_nvar(; n::Integer = default_nvar, kwargs...) = 4 * n + 5
21+
get_rocket_ncon(; n::Integer = default_nvar, kwargs...) = 3 * n + 4
22+
get_rocket_nlin(; n::Integer = default_nvar, kwargs...) = 4
23+
get_rocket_nnln(; n::Integer = default_nvar, kwargs...) = 3 * n + 0
24+
get_rocket_nequ(; n::Integer = default_nvar, kwargs...) = 3 * n + 4
25+
get_rocket_nineq(; n::Integer = default_nvar, kwargs...) = 0

src/Meta/steering.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
steering_meta = Dict(
2+
:nvar => 506,
3+
:variable_nvar => true,
4+
:ncon => 408,
5+
:variable_ncon => true,
6+
:minimize => true,
7+
:name => "steering",
8+
:has_equalities_only => false,
9+
:has_inequalities_only => false,
10+
:has_bounds => true,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :general,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => Inf,
16+
:is_feasible => missing,
17+
:defined_everywhere => missing,
18+
:origin => :unknown,
19+
)
20+
get_steering_nvar(; n::Integer = default_nvar, kwargs...) = 5 * n + 6
21+
get_steering_ncon(; n::Integer = default_nvar, kwargs...) = 4 * n + 8
22+
get_steering_nlin(; n::Integer = default_nvar, kwargs...) = 8
23+
get_steering_nnln(; n::Integer = default_nvar, kwargs...) = 4 * n + 0
24+
get_steering_nequ(; n::Integer = default_nvar, kwargs...) = 4 * n + 7
25+
get_steering_nineq(; n::Integer = default_nvar, kwargs...) = 1

src/Meta/torsion.jl

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
torsion_meta = Dict(
2+
:nvar => 144,
3+
:variable_nvar => true,
4+
:ncon => 144,
5+
:variable_ncon => true,
6+
:minimize => true,
7+
:name => "torsion",
8+
:has_equalities_only => false,
9+
:has_inequalities_only => false,
10+
:has_bounds => false,
11+
:has_fixed_variables => false,
12+
:objtype => :other,
13+
:contype => :linear,
14+
:best_known_lower_bound => -Inf,
15+
:best_known_upper_bound => -0.3305785123966928,
16+
:is_feasible => true,
17+
:defined_everywhere => missing,
18+
:origin => :unknown,
19+
)
20+
get_torsion_nvar(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = (nx + 2) * (ny + 2)
21+
get_torsion_ncon(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = (nx + 2) * (ny + 2)
22+
get_torsion_nlin(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = (nx + 2) * (ny + 2)
23+
get_torsion_nnln(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = 0
24+
get_torsion_nequ(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = 0
25+
get_torsion_nineq(; n::Integer = default_nvar, nx = Int(round(sqrt(max(1, n - 2)))), ny = Int(round(sqrt(max(1, n - 2)))), kwargs...) = (nx + 2) * (ny + 2)

0 commit comments

Comments
 (0)