Performance tips
The package ADNLPModels.jl
is designed to easily model optimization problems andto allow an efficient access to the NLPModel API
. In this tutorial, we will see some tips to ensure the maximum performance of the model.
Use in-place constructor
When dealing with a constrained optimization problem, it is recommended to use in-place constraint functions.
using ADNLPModels, NLPModels
f(x) = sum(x)
x0 = ones(2)
lcon = ucon = ones(1)
c_out(x) = [x[1]]
nlp_out = ADNLPModel(f, x0, c_out, lcon, ucon)
c_in(cx, x) = begin
cx[1] = x[1]
return cx
end
nlp_in = ADNLPModel!(f, x0, c_in, lcon, ucon)
ADNLPModel - Model with automatic differentiation backend ADModelBackend{
ForwardDiffADGradient,
ForwardDiffADHvprod,
ForwardDiffADJprod,
ForwardDiffADJtprod,
SparseADJacobian,
SparseADHessian,
ForwardDiffADGHjvprod,
}
Problem name: Generic
All variables: ████████████████████ 2 All constraints: ████████████████████ 1
free: ████████████████████ 2 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 fixed: ████████████████████ 1
infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nnzh: (100.00% sparsity) 0 linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nonlinear: ████████████████████ 1
nnzj: ( 50.00% sparsity) 1
Counters:
obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
using BenchmarkTools
cx = rand(1)
x = 18 * ones(2)
@btime cons!(nlp_out, x, cx)
1-element Vector{Float64}:
18.0
@btime cons!(nlp_in, x, cx)
1-element Vector{Float64}:
18.0
The difference between the two increases with the dimension.
Note that the same applies to nonlinear least squares problems.
F(x) = [
x[1];
x[1] + x[2]^2;
sin(x[2]);
exp(x[1] + 0.5)
]
x0 = ones(2)
nequ = 4
nls_out = ADNLSModel(F, x0, nequ)
F!(Fx, x) = begin
Fx[1] = x[1]
Fx[2] = x[1] + x[2]^2
Fx[3] = sin(x[2])
Fx[4] = exp(x[1] + 0.5)
return Fx
end
nls_in = ADNLSModel!(F!, x0, nequ)
ADNLSModel - Nonlinear least-squares model with automatic differentiation backend ADModelBackend{
ForwardDiffADGradient,
ForwardDiffADHvprod,
EmptyADbackend,
EmptyADbackend,
EmptyADbackend,
SparseADHessian,
EmptyADbackend,
ForwardDiffADHvprod,
ForwardDiffADJprod,
ForwardDiffADJtprod,
SparseADJacobian,
SparseADHessian,
}
Problem name: Generic
All variables: ████████████████████ 2 All constraints: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 All residuals: ████████████████████ 4
free: ████████████████████ 2 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 nonlinear: ████████████████████ 4
upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 nnzj: ( 37.50% sparsity) 5
low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 nnzh: ( 33.33% sparsity) 2
fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nnzh: ( 0.00% sparsity) 3 linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nonlinear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nnzj: (------% sparsity)
Counters:
obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jac_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
hess_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jhess_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hprod_residual: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
Fx = rand(4)
@btime residual!(nls_out, x, Fx)
4-element Vector{Float64}:
18.0
342.0
-0.7509872467716762
1.0825498775023076e8
@btime residual!(nls_in, x, Fx)
4-element Vector{Float64}:
18.0
342.0
-0.7509872467716762
1.0825498775023076e8
This phenomenon also extends to related backends.
Fx = rand(4)
v = ones(2)
@btime jprod_residual!(nls_out, x, v, Fx)
4-element Vector{Float64}:
1.0
37.0
0.6603167082440802
1.0825498775023076e8
@btime jprod_residual!(nls_in, x, v, Fx)
4-element Vector{Float64}:
1.0
37.0
0.6603167082440802
1.0825498775023076e8
Use only the needed operations
It is tempting to define the most generic and efficient ADNLPModel
from the start.
using ADNLPModels, NLPModels
f(x) = (x[1] - x[2])^2
x0 = ones(2)
lcon = ucon = ones(1)
c_in(cx, x) = begin
cx[1] = x[1]
return cx
end
nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, show_time = true)
ADNLPModel - Model with automatic differentiation backend ADModelBackend{
ForwardDiffADGradient,
ForwardDiffADHvprod,
ForwardDiffADJprod,
ForwardDiffADJtprod,
SparseADJacobian,
SparseADHessian,
ForwardDiffADGHjvprod,
}
Problem name: Generic
All variables: ████████████████████ 2 All constraints: ████████████████████ 1
free: ████████████████████ 2 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 fixed: ████████████████████ 1
infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nnzh: ( 0.00% sparsity) 3 linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nonlinear: ████████████████████ 1
nnzj: ( 50.00% sparsity) 1
Counters:
obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
However, depending on the size of the problem this might time consuming as initializing each backend takes time. Besides, some solvers may not require all the API to solve the problem. For instance, Percival.jl
is matrix-free solver in the sense that it only uses jprod
, jtprod
and hprod
.
using Percival
stats = percival(nlp)
"Execution stats: first-order stationary"
nlp.counters
Counters:
obj: ████████████████████ 1 grad: ████████████████████ 1 cons: ████████████████████ 1
cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons_nln: ████████████████████ 1 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod: ████████████████████ 1 jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
Therefore, it is more efficient to avoid preparing Jacobian and Hessian backends in this case.
nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, jacobian_backend = ADNLPModels.EmptyADbackend, hessian_backend = ADNLPModels.EmptyADbackend, show_time = true)
ADNLPModel - Model with automatic differentiation backend ADModelBackend{
ForwardDiffADGradient,
ForwardDiffADHvprod,
ForwardDiffADJprod,
ForwardDiffADJtprod,
EmptyADbackend,
EmptyADbackend,
ForwardDiffADGHjvprod,
}
Problem name: Generic
All variables: ████████████████████ 2 All constraints: ████████████████████ 1
free: ████████████████████ 2 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 fixed: ████████████████████ 1
infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nnzh: ( 0.00% sparsity) 3 linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nonlinear: ████████████████████ 1
nnzj: ( 0.00% sparsity) 2
Counters:
obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
or, equivalently, using the matrix_free
keyword argument
nlp = ADNLPModel!(f, x0, c_in, lcon, ucon, show_time = true, matrix_free = true)
ADNLPModel - Model with automatic differentiation backend ADModelBackend{
ForwardDiffADGradient,
ForwardDiffADHvprod,
ForwardDiffADJprod,
ForwardDiffADJtprod,
EmptyADbackend,
EmptyADbackend,
ForwardDiffADGHjvprod,
}
Problem name: Generic
All variables: ████████████████████ 2 All constraints: ████████████████████ 1
free: ████████████████████ 2 free: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 lower: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 upper: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 low/upp: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
fixed: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 fixed: ████████████████████ 1
infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 infeas: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nnzh: ( 0.00% sparsity) 3 linear: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
nonlinear: ████████████████████ 1
nnzj: ( 0.00% sparsity) 2
Counters:
obj: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 grad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
cons_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 cons_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jcon: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jgrad: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jac_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jac_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jtprod_lin: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jtprod_nln: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 hprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
jhess: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0 jhprod: ⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅ 0
Benchmarks
This package implements several backends for each method and it is possible to design your own backend as well. Then, one way to choose the most efficient one is to run benchmarks.
using ADNLPModels, NLPModels, OptimizationProblems
The package OptimizationProblems.jl
provides a collection of optimization problems in JuMP and ADNLPModels syntax.
meta = OptimizationProblems.meta;
Row | nvar | variable_nvar | ncon | variable_ncon | minimize | name | has_equalities_only | has_inequalities_only | has_bounds | has_fixed_variables | objtype | contype | best_known_lower_bound | best_known_upper_bound | is_feasible | defined_everywhere | origin |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Int64 | Bool | Int64 | Bool | Bool | String | Bool | Bool | Bool | Bool | Symbol | Symbol | Real | Real | Bool? | Bool? | Symbol | |
1 | 1 | false | 0 | false | true | AMPGO02 | false | false | false | false | other | unconstrained | -Inf | 0.839498 | true | missing | unknown |
2 | 1 | false | 0 | false | true | AMPGO03 | false | false | false | false | other | unconstrained | -Inf | 2.88961 | true | missing | unknown |
3 | 1 | false | 0 | false | true | AMPGO04 | false | false | false | false | other | unconstrained | -Inf | -2.5666 | true | missing | unknown |
4 | 1 | false | 0 | false | true | AMPGO05 | false | false | false | false | other | unconstrained | -Inf | -0.0 | true | missing | unknown |
5 | 1 | false | 0 | false | true | AMPGO06 | false | false | false | false | other | unconstrained | -Inf | 3.5177e-43 | true | missing | unknown |
6 | 1 | false | 0 | false | true | AMPGO07 | false | false | false | false | other | unconstrained | -Inf | 2.56475 | true | missing | unknown |
7 | 1 | false | 0 | false | true | AMPGO08 | false | false | false | false | other | unconstrained | -Inf | -2.0928 | true | missing | unknown |
8 | 1 | false | 0 | false | true | AMPGO09 | false | false | false | false | other | unconstrained | -Inf | 0.921136 | true | missing | unknown |
9 | 1 | false | 0 | false | true | AMPGO10 | false | false | false | false | other | unconstrained | -Inf | -0.0 | true | missing | unknown |
10 | 1 | false | 0 | false | true | AMPGO11 | false | false | false | false | other | unconstrained | -Inf | -1.0 | true | missing | unknown |
11 | 1 | false | 0 | false | true | AMPGO12 | false | false | false | false | other | unconstrained | -Inf | 1.0 | true | missing | unknown |
12 | 1 | false | 0 | false | true | AMPGO13 | false | false | false | false | other | unconstrained | -1.5874 | -1.5874 | true | missing | unknown |
13 | 1 | false | 0 | false | true | AMPGO14 | false | false | false | false | other | unconstrained | -Inf | -0.0 | true | missing | unknown |
14 | 1 | false | 0 | false | true | AMPGO15 | false | false | false | false | other | unconstrained | -Inf | 2.15385 | true | missing | unknown |
15 | 1 | false | 0 | false | true | AMPGO18 | false | false | false | false | other | unconstrained | -Inf | 4.0 | true | missing | unknown |
16 | 1 | false | 0 | false | true | AMPGO20 | false | false | false | false | other | unconstrained | -Inf | 3.92246e-43 | true | missing | unknown |
17 | 1 | false | 0 | false | true | AMPGO21 | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown |
18 | 1 | false | 0 | false | true | AMPGO22 | false | false | false | false | other | unconstrained | -Inf | 1.0 | true | missing | unknown |
19 | 3 | false | 1 | false | true | BOX2 | true | false | false | false | other | linear | -Inf | 0.942284 | true | missing | unknown |
20 | 3 | false | 0 | false | true | BOX3 | false | false | false | false | other | unconstrained | -Inf | 662.868 | true | missing | unknown |
21 | 1 | false | 0 | false | true | Dus2_1 | false | false | false | false | other | unconstrained | -Inf | 7.38906 | true | missing | unknown |
22 | 1 | false | 0 | false | true | Dus2_3 | false | false | false | false | other | unconstrained | -Inf | 0.972973 | true | missing | unknown |
23 | 1 | false | 0 | false | true | Dus2_9 | false | false | false | false | other | unconstrained | -Inf | 1.0 | true | missing | unknown |
24 | 1 | false | 0 | false | true | Duscube | false | false | false | false | other | unconstrained | -Inf | -108.0 | true | missing | unknown |
25 | 91 | true | 0 | false | true | NZF1 | false | false | false | false | least_squares | unconstrained | -Inf | 34698.4 | true | missing | unknown |
26 | 1 | false | 0 | false | true | Shpak1 | false | false | false | false | other | unconstrained | -Inf | 0.839498 | true | missing | unknown |
27 | 1 | false | 0 | false | true | Shpak2 | false | false | false | false | other | unconstrained | -Inf | -0.747036 | true | missing | unknown |
28 | 1 | false | 0 | false | true | Shpak3 | false | false | false | false | other | unconstrained | -Inf | 2.63055 | true | missing | unknown |
29 | 1 | false | 0 | false | true | Shpak4 | false | false | false | false | other | unconstrained | -Inf | -0.677439 | true | missing | unknown |
30 | 1 | false | 0 | false | true | Shpak5 | false | false | false | false | other | unconstrained | -Inf | -1.00842 | true | missing | unknown |
31 | 1 | false | 0 | false | true | Shpak6 | false | false | false | false | other | unconstrained | -Inf | -1.25667 | true | missing | unknown |
32 | 8 | false | 5 | false | true | aircrfta | true | false | true | true | other | general | -Inf | 0 | true | missing | unknown |
33 | 4 | false | 3 | false | true | allinit | false | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
34 | 4 | false | 4 | false | true | allinitc | false | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
35 | 4 | false | 0 | false | true | allinitu | false | false | false | false | other | unconstrained | -Inf | 13.0 | true | missing | unknown |
36 | 2 | false | 3 | false | true | alsotame | false | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
37 | 3 | false | 15 | false | true | argauss | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
38 | 100 | true | 0 | false | true | arglina | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
39 | 100 | true | 0 | false | true | arglinb | false | false | false | false | least_squares | unconstrained | -Inf | 6.85174e13 | true | missing | unknown |
40 | 100 | true | 0 | false | true | arglinc | false | false | false | false | other | unconstrained | -Inf | 6.38544e13 | true | missing | unknown |
41 | 100 | true | 0 | false | true | argtrig | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown |
42 | 100 | true | 0 | false | true | arwhead | false | false | false | false | other | unconstrained | -Inf | 297.0 | true | missing | unknown |
43 | 49 | false | 15 | false | true | avion2 | true | false | true | false | least_squares | general | -Inf | Inf | missing | missing | unknown |
44 | 3 | false | 0 | false | true | bard | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
45 | 100 | true | 0 | false | true | bdqrtic | false | false | false | false | least_squares | unconstrained | -Inf | 21696.0 | true | missing | unknown |
46 | 2 | false | 0 | false | true | beale | false | false | false | false | least_squares | unconstrained | -Inf | 14.2031 | true | missing | unknown |
47 | 100 | true | 0 | false | true | bearing | false | false | true | true | other | unconstrained | -Inf | 15.0662 | true | missing | unknown |
48 | 3 | false | 0 | false | true | bennett5 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
49 | 6 | false | 0 | false | true | biggs5 | false | false | true | true | other | unconstrained | -Inf | -3.15621 | true | missing | unknown |
50 | 6 | false | 0 | false | true | biggs6 | false | false | false | false | other | unconstrained | -Inf | -3.15621 | true | missing | unknown |
51 | 2 | false | 2 | false | true | booth | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
52 | 2 | false | 0 | false | true | boxbod | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
53 | 1 | false | 1 | false | true | bqp1var | false | true | false | false | other | general | -Inf | 0.3125 | true | missing | unknown |
54 | 450 | false | 360 | false | true | britgas | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
55 | 100 | true | 0 | false | true | brownal | false | false | false | false | least_squares | unconstrained | -Inf | 0.0 | true | missing | unknown |
56 | 2 | false | 0 | false | true | brownbs | false | false | false | false | least_squares | unconstrained | -Inf | 9.99998e11 | true | missing | unknown |
57 | 4 | false | 0 | false | true | brownden | false | false | false | false | least_squares | unconstrained | -Inf | 7.92669e6 | true | missing | unknown |
58 | 100 | true | 0 | false | true | broyden3d | false | false | false | false | least_squares | unconstrained | -Inf | 0.0 | true | missing | unknown |
59 | 100 | true | 0 | false | true | broydn7d | false | false | false | false | other | unconstrained | -Inf | 274.204 | true | missing | unknown |
60 | 100 | true | 0 | false | true | brybnd | false | false | false | false | least_squares | unconstrained | -Inf | 3600.0 | true | missing | unknown |
61 | 2 | false | 1 | false | true | bt1 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
62 | 100 | true | 203 | true | true | camshape | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
63 | 99 | true | 32 | true | true | catenary | true | false | true | true | linear | quadratic | -Inf | Inf | missing | missing | academic |
64 | 100 | true | 77 | true | true | chain | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
65 | 100 | true | 0 | false | true | chainwoo | false | false | false | false | other | unconstrained | -Inf | 3.71954e5 | true | missing | unknown |
66 | 96 | true | 96 | true | true | channel | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
67 | 100 | true | 0 | false | true | chnrosnb_mod | false | false | false | false | other | unconstrained | -Inf | 17637.9 | true | missing | unknown |
68 | 3 | false | 0 | false | true | chwirut1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
69 | 3 | false | 0 | false | true | chwirut2 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
70 | 2 | false | 0 | false | true | cliff | false | false | false | false | other | unconstrained | -Inf | 4.85165e8 | true | missing | unknown |
71 | 99 | true | 64 | true | true | clnlbeam | true | false | true | false | other | general | -Inf | 350.0 | true | missing | unknown |
72 | 100 | true | 0 | false | true | clplatea | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown |
73 | 100 | true | 0 | false | true | clplateb | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown |
74 | 100 | true | 0 | false | true | clplatec | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown |
75 | 100 | true | 50 | true | true | controlinvestment | true | false | true | false | other | general | -Inf | -0.98 | true | missing | unknown |
76 | 100 | true | 0 | false | true | cosine | false | false | false | false | other | unconstrained | -Inf | 86.8807 | true | missing | unknown |
77 | 100 | true | 0 | false | true | cragglvy | false | false | false | false | other | unconstrained | -Inf | 52823.1 | true | missing | unknown |
78 | 100 | true | 0 | false | true | cragglvy2 | false | false | false | false | other | unconstrained | -Inf | 52823.1 | true | missing | unknown |
79 | 100 | true | 0 | false | true | curly | false | false | false | false | other | unconstrained | -Inf | -0.00623722 | true | missing | unknown |
80 | 100 | true | 0 | false | true | curly10 | false | false | false | false | other | unconstrained | -Inf | -0.00623722 | true | missing | unknown |
81 | 100 | true | 0 | false | true | curly20 | false | false | false | false | other | unconstrained | -Inf | -0.0129654 | true | missing | unknown |
82 | 100 | true | 0 | false | true | curly30 | false | false | false | false | other | unconstrained | -Inf | -0.020383 | true | missing | unknown |
83 | 2 | false | 0 | false | true | danwood | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
84 | 99 | true | 0 | false | true | dixmaane | false | false | false | false | other | unconstrained | -Inf | 731.833 | true | missing | unknown |
85 | 99 | true | 0 | false | true | dixmaanf | false | false | false | false | other | unconstrained | -Inf | 1348.42 | true | missing | unknown |
86 | 99 | true | 0 | false | true | dixmaang | false | false | false | false | other | unconstrained | -Inf | 2495.83 | true | missing | unknown |
87 | 99 | true | 0 | false | true | dixmaanh | false | false | false | false | other | unconstrained | -Inf | 4974.25 | true | missing | unknown |
88 | 99 | true | 0 | false | true | dixmaani | false | false | false | false | other | unconstrained | -Inf | 663.646 | true | missing | unknown |
89 | 99 | true | 0 | false | true | dixmaanj | false | false | false | false | other | unconstrained | -Inf | 1281.33 | true | missing | unknown |
90 | 99 | true | 0 | false | true | dixmaank | false | false | false | false | other | unconstrained | -Inf | 2427.65 | true | missing | unknown |
91 | 99 | true | 0 | false | true | dixmaanl | false | false | false | false | other | unconstrained | -Inf | 4903.7 | true | missing | unknown |
92 | 99 | true | 0 | false | true | dixmaanm | false | false | false | false | other | unconstrained | -Inf | 314.313 | true | missing | unknown |
93 | 99 | true | 0 | false | true | dixmaann | false | false | false | false | other | unconstrained | -Inf | 665.66 | true | missing | unknown |
94 | 99 | true | 0 | false | true | dixmaano | false | false | false | false | other | unconstrained | -Inf | 1196.31 | true | missing | unknown |
95 | 99 | true | 0 | false | true | dixmaanp | false | false | false | false | other | unconstrained | -Inf | 2342.52 | true | missing | unknown |
96 | 100 | true | 0 | false | true | dixon3dq | false | false | false | false | least_squares | unconstrained | -Inf | 8.0 | true | missing | unknown |
97 | 100 | true | 0 | false | true | dqdrtic | false | false | false | false | other | unconstrained | -Inf | 177282.0 | true | missing | unknown |
98 | 100 | true | 0 | false | true | dqrtic | false | false | false | false | other | unconstrained | -Inf | 1.85427e9 | true | missing | unknown |
99 | 3 | false | 0 | false | true | eckerle4 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
100 | 100 | true | 0 | false | true | edensch | false | false | false | false | other | unconstrained | -Inf | 1699.0 | true | missing | unknown |
101 | 100 | true | 0 | false | true | eg2 | false | false | false | false | other | unconstrained | -Inf | -83.3056 | true | missing | unknown |
102 | 99 | true | 33 | true | true | elec | true | false | false | false | other | quadratic | -Inf | Inf | missing | missing | unknown |
103 | 100 | true | 0 | false | true | engval1 | false | false | false | false | other | unconstrained | -Inf | 5841.0 | true | missing | unknown |
104 | 9 | false | 0 | false | true | enso | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
105 | 100 | true | 0 | false | true | errinros_mod | false | false | false | false | least_squares | unconstrained | -Inf | 3.13991e5 | true | missing | unknown |
106 | 100 | true | 0 | false | true | extrosnb | false | false | false | false | other | unconstrained | -Inf | 39604.0 | true | missing | unknown |
107 | 100 | true | 0 | false | true | fletcbv2 | false | false | false | false | other | unconstrained | -Inf | -0.513108 | true | missing | unknown |
108 | 100 | true | 0 | false | true | fletcbv3_mod | false | false | false | false | other | unconstrained | -Inf | -0.0187925 | true | missing | unknown |
109 | 100 | true | 0 | false | true | fletchcr | false | false | false | false | other | unconstrained | -Inf | 9900.0 | true | missing | unknown |
110 | 100 | false | 0 | false | true | fminsrf2 | false | false | false | false | other | unconstrained | -Inf | 2504.27 | true | missing | unknown |
111 | 100 | true | 0 | false | true | freuroth | false | false | false | false | least_squares | unconstrained | -Inf | 99556.5 | true | missing | unknown |
112 | 8 | false | 0 | false | true | gauss1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
113 | 8 | false | 0 | false | true | gauss2 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
114 | 8 | false | 0 | false | true | gauss3 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
115 | 3 | false | 0 | false | true | gaussian | false | false | false | false | least_squares | unconstrained | -Inf | 3.88811e-6 | true | missing | unknown |
116 | 100 | true | 0 | false | true | genhumps | false | false | false | false | other | unconstrained | -Inf | 2.53684e6 | true | missing | unknown |
117 | 100 | true | 0 | false | true | genrose | false | false | false | false | other | unconstrained | -Inf | 405.106 | true | missing | unknown |
118 | 100 | true | 0 | false | true | genrose_nash | false | false | false | false | other | unconstrained | -Inf | 404.126 | true | missing | unknown |
119 | 3 | false | 0 | false | true | gulf | false | false | false | false | least_squares | unconstrained | -Inf | 0.0 | true | missing | unknown |
120 | 7 | false | 0 | false | true | hahn1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
121 | 3 | false | 0 | false | true | helical | false | false | false | false | other | unconstrained | -Inf | 0.0 | true | missing | unknown |
122 | 98 | true | 68 | true | true | hovercraft1d | true | false | false | false | least_squares | linear | -Inf | Inf | missing | missing | unknown |
123 | 2 | false | 0 | false | true | hs1 | false | false | true | false | other | unconstrained | -Inf | 909.0 | true | missing | unknown |
124 | 2 | false | 1 | false | true | hs10 | false | true | false | false | other | general | -Inf | Inf | missing | missing | unknown |
125 | 7 | false | 4 | false | true | hs100 | false | true | false | false | other | general | -Inf | 714.0 | true | missing | unknown |
126 | 7 | false | 5 | false | true | hs101 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
127 | 7 | false | 5 | false | true | hs102 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
128 | 7 | false | 5 | false | true | hs103 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
129 | 8 | false | 5 | false | true | hs104 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
130 | 8 | false | 1 | false | true | hs105 | false | true | true | false | other | linear | -Inf | Inf | missing | missing | unknown |
131 | 8 | false | 6 | false | true | hs106 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
132 | 9 | false | 6 | false | true | hs107 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
133 | 9 | false | 12 | false | true | hs108 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
134 | 9 | false | 9 | false | true | hs109 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
135 | 2 | false | 1 | false | true | hs11 | false | true | false | false | other | general | -Inf | Inf | missing | missing | unknown |
136 | 10 | false | 0 | false | true | hs110 | false | false | true | false | other | unconstrained | -Inf | -43.1343 | true | missing | unknown |
137 | 10 | false | 3 | false | true | hs111 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
138 | 10 | false | 3 | false | true | hs112 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown |
139 | 10 | false | 8 | false | true | hs113 | false | true | false | false | other | general | -Inf | 753.0 | true | missing | unknown |
140 | 10 | false | 11 | false | true | hs114 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
141 | 13 | false | 15 | false | true | hs116 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
142 | 15 | false | 5 | false | true | hs117 | false | true | true | false | other | general | -Inf | 2400.11 | true | missing | unknown |
143 | 15 | false | 17 | false | true | hs118 | false | true | true | false | other | linear | -Inf | 942.716 | true | missing | unknown |
144 | 16 | false | 8 | false | true | hs119 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown |
145 | 2 | false | 1 | false | true | hs12 | false | true | false | false | other | general | -Inf | 0.0 | true | missing | unknown |
146 | 2 | false | 1 | false | true | hs13 | false | true | true | false | least_squares | general | -Inf | Inf | missing | missing | unknown |
147 | 2 | false | 2 | false | true | hs14 | false | false | false | false | least_squares | general | -Inf | Inf | missing | missing | unknown |
148 | 2 | false | 2 | false | true | hs15 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
149 | 2 | false | 2 | false | true | hs16 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
150 | 2 | false | 2 | false | true | hs17 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
151 | 2 | false | 2 | false | true | hs18 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
152 | 2 | false | 2 | false | true | hs19 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
153 | 2 | false | 0 | false | true | hs2 | false | false | true | false | other | unconstrained | -Inf | 909.0 | true | missing | unknown |
154 | 2 | false | 3 | false | true | hs20 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
155 | 2 | false | 1 | false | true | hs21 | false | true | true | false | other | linear | -Inf | Inf | missing | missing | unknown |
156 | 4 | false | 2 | false | true | hs219 | true | false | false | false | linear | general | -1.0 | -1.0 | true | true | unknown |
157 | 2 | false | 2 | false | true | hs22 | false | true | false | false | least_squares | general | -Inf | Inf | missing | missing | unknown |
158 | 2 | false | 1 | false | true | hs220 | true | false | true | false | other | general | 1 | 25000 | true | missing | unknown |
159 | 2 | false | 1 | false | true | hs221 | false | true | true | false | other | general | -1 | -0.25 | true | missing | unknown |
160 | 2 | false | 1 | false | true | hs222 | false | true | true | false | other | general | -1.5 | -1.3 | true | missing | unknown |
161 | 2 | false | 2 | false | true | hs223 | false | true | true | false | other | general | -0.834032 | -0.1 | true | missing | unknown |
162 | 2 | false | 4 | false | true | hs224 | false | true | true | false | other | linear | -304 | -304 | true | missing | unknown |
163 | 2 | false | 5 | false | true | hs225 | false | true | false | false | other | general | 2 | 2 | true | missing | unknown |
164 | 2 | false | 2 | false | true | hs226 | false | true | true | false | other | general | -0.5 | -0.5 | true | missing | unknown |
165 | 2 | false | 2 | false | true | hs227 | false | true | false | false | other | general | 1 | 1 | true | missing | unknown |
166 | 2 | false | 2 | false | true | hs228 | false | true | false | false | other | general | -3 | -3 | true | missing | unknown |
167 | 2 | false | 0 | false | true | hs229 | false | false | true | false | other | unconstrained | 0 | 0 | true | missing | unknown |
168 | 2 | false | 5 | false | true | hs23 | false | true | true | false | least_squares | general | -Inf | Inf | missing | missing | unknown |
169 | 2 | false | 2 | false | true | hs230 | false | true | false | false | other | general | 0.375 | 0.375 | true | missing | unknown |
170 | 2 | false | 2 | false | true | hs231 | false | true | false | false | other | linear | 0 | 0 | true | missing | unknown |
171 | 2 | false | 3 | false | true | hs232 | false | true | true | false | other | linear | -1 | -1 | true | missing | unknown |
172 | 2 | false | 1 | false | true | hs233 | false | true | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
173 | 2 | false | 1 | false | true | hs234 | false | true | true | false | other | general | -0.8 | -0.8 | true | missing | unknown |
174 | 3 | false | 1 | false | true | hs235 | true | false | false | false | other | general | 0.04 | 0.04 | true | missing | unknown |
175 | 2 | false | 2 | false | true | hs236 | false | true | true | false | other | general | -58.9034 | -58.9034 | true | missing | unknown |
176 | 2 | false | 3 | false | true | hs237 | false | true | true | false | other | general | -58.9034 | -58.9034 | true | missing | unknown |
177 | 2 | false | 3 | false | true | hs238 | false | true | true | false | other | general | -58.9034 | -58.9034 | true | missing | unknown |
178 | 2 | false | 1 | false | true | hs239 | false | true | true | false | other | general | -58.9034 | -58.9034 | true | missing | unknown |
179 | 2 | false | 2 | false | true | hs24 | false | true | true | false | other | linear | -Inf | -0.0133646 | true | missing | unknown |
180 | 3 | false | 0 | false | true | hs240 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
181 | 3 | false | 0 | false | true | hs241 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
182 | 3 | false | 0 | false | true | hs242 | false | false | true | false | other | unconstrained | 0 | 0 | true | missing | unknown |
183 | 3 | false | 0 | false | true | hs243 | false | false | false | false | other | unconstrained | 0.7966 | 0.7966 | true | missing | unknown |
184 | 3 | false | 0 | false | true | hs244 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
185 | 3 | false | 0 | false | true | hs245 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
186 | 3 | false | 0 | false | true | hs246 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
187 | 3 | false | 2 | false | true | hs248 | false | false | false | false | other | general | -0.8 | -0.8 | true | missing | unknown |
188 | 3 | false | 1 | false | true | hs249 | false | true | true | false | other | general | 1 | 1 | true | missing | unknown |
189 | 3 | false | 0 | false | true | hs25 | false | false | true | false | other | unconstrained | -Inf | 32.835 | true | missing | unknown |
190 | 3 | false | 2 | false | true | hs250 | false | true | true | false | other | linear | -3300 | -3300 | true | missing | unknown |
191 | 3 | false | 1 | false | true | hs251 | false | true | true | false | other | linear | -3456 | -3456 | true | missing | unknown |
192 | 3 | false | 1 | false | true | hs252 | true | false | false | false | other | unconstrained | 0.04 | 0.04 | true | missing | unknown |
193 | 3 | false | 1 | false | true | hs253 | false | true | true | false | other | linear | 87.3794 | 87.3794 | true | missing | unknown |
194 | 3 | false | 2 | false | true | hs254 | true | false | true | false | other | general | -1.73205 | -1.73205 | true | missing | unknown |
195 | 4 | false | 0 | false | true | hs255 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
196 | 4 | false | 0 | false | true | hs256 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
197 | 4 | false | 0 | false | true | hs257 | false | false | true | false | other | unconstrained | 0 | 0 | true | missing | unknown |
198 | 4 | false | 0 | false | true | hs258 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
199 | 4 | false | 0 | false | true | hs259 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
200 | 3 | false | 1 | false | true | hs26 | true | false | false | false | other | general | -Inf | 21.16 | true | missing | unknown |
201 | 4 | false | 0 | false | true | hs260 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
202 | 4 | false | 0 | false | true | hs261 | false | false | false | false | other | unconstrained | 0 | 0 | true | missing | unknown |
203 | 4 | false | 4 | false | true | hs262 | false | false | true | false | other | linear | -10 | -10 | true | missing | unknown |
204 | 4 | false | 4 | false | true | hs263 | false | false | false | false | other | general | -1 | -1 | true | missing | unknown |
205 | 4 | false | 3 | false | true | hs264 | false | true | false | false | other | general | -44 | -44 | true | missing | unknown |
206 | 4 | false | 2 | false | true | hs265 | true | false | true | false | other | linear | 0.974747 | 0.974747 | true | missing | unknown |
207 | 3 | false | 1 | false | true | hs27 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
208 | 3 | false | 1 | false | true | hs28 | true | false | false | false | least_squares | linear | -Inf | 13.0 | true | missing | unknown |
209 | 3 | false | 1 | false | true | hs29 | false | true | false | false | other | general | -Inf | -1.0 | true | missing | unknown |
210 | 2 | false | 0 | false | true | hs3 | false | false | true | false | other | unconstrained | -Inf | 1.00081 | true | missing | unknown |
211 | 3 | false | 1 | false | true | hs30 | false | true | true | false | least_squares | general | -Inf | 3.0 | true | missing | unknown |
212 | 3 | false | 1 | false | true | hs31 | false | true | true | false | other | general | -Inf | 19.0 | true | missing | unknown |
213 | 2 | false | 1 | false | true | hs316 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic |
214 | 2 | false | 1 | false | true | hs317 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic |
215 | 2 | false | 1 | false | true | hs318 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic |
216 | 2 | false | 1 | false | true | hs319 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic |
217 | 3 | false | 2 | false | true | hs32 | false | false | true | false | other | general | -Inf | 7.2 | true | missing | unknown |
218 | 2 | false | 1 | false | true | hs320 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic |
219 | 2 | false | 1 | false | true | hs321 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic |
220 | 2 | false | 1 | false | true | hs322 | true | false | false | false | quadratic | quadratic | -Inf | Inf | true | missing | academic |
221 | 3 | false | 2 | false | true | hs33 | false | true | true | false | other | general | -Inf | -3.0 | true | missing | unknown |
222 | 3 | false | 2 | false | true | hs34 | false | true | true | false | other | general | -Inf | 0.0 | true | missing | unknown |
223 | 3 | false | 1 | false | true | hs35 | false | true | true | false | other | linear | -Inf | 2.25 | true | missing | unknown |
224 | 3 | false | 1 | false | true | hs36 | false | true | true | false | other | linear | -Inf | -1000.0 | true | missing | unknown |
225 | 3 | false | 1 | false | true | hs37 | false | true | true | false | other | linear | -Inf | -1000.0 | true | missing | unknown |
226 | 10 | false | 3 | false | true | hs378 | true | false | false | false | other | general | -Inf | Inf | true | missing | academic |
227 | 4 | false | 0 | false | true | hs38 | false | false | true | false | other | unconstrained | -Inf | 19192.0 | true | missing | unknown |
228 | 4 | false | 2 | false | true | hs39 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
229 | 2 | false | 0 | false | true | hs4 | false | false | true | false | other | unconstrained | -Inf | 3.32357 | true | missing | unknown |
230 | 4 | false | 3 | false | true | hs40 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
231 | 4 | false | 1 | false | true | hs41 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown |
232 | 4 | false | 2 | false | true | hs42 | true | false | false | false | least_squares | general | -Inf | Inf | missing | missing | unknown |
233 | 4 | false | 3 | false | true | hs43 | false | true | false | false | other | general | -Inf | 0.0 | true | missing | unknown |
234 | 4 | false | 6 | false | true | hs44 | false | true | true | false | other | linear | -Inf | 0.0 | true | missing | unknown |
235 | 5 | false | 0 | false | true | hs45 | false | false | true | false | other | unconstrained | -Inf | 1.73333 | true | missing | unknown |
236 | 5 | false | 2 | false | true | hs46 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
237 | 5 | false | 3 | false | true | hs47 | true | false | false | false | other | general | -Inf | 20.7381 | true | missing | unknown |
238 | 5 | false | 2 | false | true | hs48 | true | false | false | false | least_squares | linear | -Inf | 84.0 | true | missing | unknown |
239 | 5 | false | 2 | false | true | hs49 | true | false | false | false | other | linear | -Inf | 266.0 | true | missing | unknown |
240 | 2 | false | 0 | false | true | hs5 | false | false | true | false | other | unconstrained | -Inf | 1.0 | true | missing | unknown |
241 | 5 | false | 3 | false | true | hs50 | true | false | false | false | other | linear | -Inf | 7516.0 | true | missing | unknown |
242 | 5 | false | 3 | false | true | hs51 | true | false | false | false | least_squares | linear | -Inf | 8.5 | true | missing | unknown |
243 | 5 | false | 3 | false | true | hs52 | true | false | false | false | least_squares | linear | -Inf | Inf | missing | missing | unknown |
244 | 5 | false | 3 | false | true | hs53 | true | false | true | false | least_squares | linear | -Inf | Inf | missing | missing | unknown |
245 | 6 | false | 1 | false | true | hs54 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown |
246 | 6 | false | 6 | false | true | hs55 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown |
247 | 7 | false | 4 | false | true | hs56 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
248 | 2 | false | 1 | false | true | hs57 | false | true | true | false | least_squares | general | -Inf | 0.0307986 | true | missing | unknown |
249 | 2 | false | 3 | false | true | hs59 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
250 | 2 | false | 1 | false | true | hs6 | true | false | false | false | least_squares | general | -Inf | Inf | missing | missing | unknown |
251 | 3 | false | 1 | false | true | hs60 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
252 | 3 | false | 2 | false | true | hs61 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
253 | 3 | false | 1 | false | true | hs62 | true | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown |
254 | 3 | false | 2 | false | true | hs63 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
255 | 3 | false | 1 | false | true | hs64 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
256 | 3 | false | 1 | false | true | hs65 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
257 | 3 | false | 2 | false | true | hs66 | false | true | true | false | other | general | -Inf | 0.58 | true | missing | unknown |
258 | 4 | false | 2 | false | true | hs68 | true | false | true | false | other | general | -Inf | Inf | true | missing | unknown |
259 | 4 | false | 2 | false | true | hs69 | true | false | true | false | other | general | -Inf | Inf | true | missing | unknown |
260 | 2 | false | 1 | false | true | hs7 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
261 | 4 | false | 1 | false | true | hs70 | false | true | true | false | other | general | -Inf | 0.987859 | true | missing | unknown |
262 | 4 | false | 2 | false | true | hs71 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
263 | 4 | false | 2 | false | true | hs72 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
264 | 4 | false | 3 | false | true | hs73 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
265 | 4 | false | 4 | false | true | hs74 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
266 | 4 | false | 4 | false | true | hs75 | false | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
267 | 4 | false | 3 | false | true | hs76 | false | true | true | false | other | linear | -Inf | -1.25 | true | missing | unknown |
268 | 5 | false | 2 | false | true | hs77 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
269 | 5 | false | 3 | false | true | hs78 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
270 | 5 | false | 3 | false | true | hs79 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
271 | 2 | false | 2 | false | true | hs8 | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
272 | 5 | false | 3 | false | true | hs80 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
273 | 5 | false | 3 | false | true | hs81 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
274 | 5 | false | 3 | false | true | hs83 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
275 | 5 | false | 3 | false | true | hs84 | false | true | true | false | other | general | -Inf | -2.35124e6 | true | missing | unknown |
276 | 5 | false | 10 | false | true | hs86 | false | true | true | false | other | linear | -Inf | 20.0 | true | missing | unknown |
277 | 6 | false | 4 | false | true | hs87 | true | false | true | false | other | general | -Inf | Inf | true | missing | unknown |
278 | 2 | false | 1 | false | true | hs9 | true | false | false | false | other | linear | -Inf | 0.0 | true | missing | unknown |
279 | 6 | false | 2 | false | true | hs93 | false | true | true | false | other | general | -Inf | 137.066 | true | missing | unknown |
280 | 6 | false | 4 | false | true | hs95 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
281 | 6 | false | 4 | false | true | hs96 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
282 | 6 | false | 4 | false | true | hs97 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
283 | 6 | false | 4 | false | true | hs98 | false | true | true | false | other | general | -Inf | Inf | missing | missing | unknown |
284 | 7 | false | 2 | false | true | hs99 | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
285 | 100 | true | 0 | false | true | indef_mod | false | false | false | false | other | unconstrained | -Inf | 91.6655 | true | missing | unknown |
286 | 100 | true | 0 | false | true | integreq | false | false | false | false | least_squares | unconstrained | -Inf | 0.0 | true | missing | unknown |
287 | 2 | false | 0 | false | true | jennrichsampson | false | false | false | false | least_squares | unconstrained | -Inf | 4171.31 | true | missing | unknown |
288 | 5 | false | 0 | false | true | kirby2 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
289 | 4 | false | 0 | false | true | kowosb | false | false | false | false | least_squares | unconstrained | -Inf | 0.0264978 | true | missing | unknown |
290 | 6 | false | 0 | false | true | lanczos1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
291 | 6 | false | 0 | false | true | lanczos2 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
292 | 6 | false | 0 | false | true | lanczos3 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
293 | 100 | true | 0 | false | true | liarwhd | false | false | false | false | other | unconstrained | -Inf | 58500.0 | true | missing | unknown |
294 | 15 | false | 11 | false | true | lincon | false | false | false | false | other | linear | -Inf | Inf | missing | missing | unknown |
295 | 2 | false | 2 | false | true | linsv | false | true | false | false | other | linear | -Inf | Inf | missing | missing | unknown |
296 | 111 | true | 40 | true | true | marine | true | false | true | false | other | general | -Inf | Inf | missing | missing | unknown |
297 | 3 | false | 0 | false | true | meyer3 | false | false | false | false | least_squares | unconstrained | -Inf | 1.69361e9 | true | missing | unknown |
298 | 2 | false | 2 | false | true | mgh01feas | true | false | false | false | other | general | -Inf | Inf | missing | missing | unknown |
299 | 4 | false | 0 | false | true | mgh09 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
300 | 3 | false | 0 | false | true | mgh10 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
301 | 5 | false | 0 | false | true | mgh17 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
302 | 2 | false | 0 | false | true | misra1a | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
303 | 2 | false | 0 | false | true | misra1b | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
304 | 2 | false | 0 | false | true | misra1c | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
305 | 2 | false | 0 | false | true | misra1d | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
306 | 100 | true | 0 | false | true | morebv | false | false | false | false | least_squares | unconstrained | -Inf | 0.500942 | true | missing | unknown |
307 | 2 | false | 0 | false | true | nasty | false | false | false | false | other | unconstrained | -Inf | 0.5 | true | missing | unknown |
308 | 100 | true | 0 | false | true | ncb20 | false | false | false | false | other | unconstrained | -Inf | 182.002 | true | missing | unknown |
309 | 100 | true | 0 | false | true | ncb20b | false | false | false | false | other | unconstrained | -Inf | 200.0 | true | missing | unknown |
310 | 3 | false | 0 | false | true | nelson | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
311 | 100 | true | 0 | false | true | noncvxu2 | false | false | false | false | other | unconstrained | -Inf | 2.63975e6 | true | missing | unknown |
312 | 100 | true | 0 | false | true | noncvxun | false | false | false | false | other | unconstrained | -Inf | 2.72701e6 | true | missing | unknown |
313 | 100 | true | 0 | false | true | nondia | false | false | false | false | other | unconstrained | -Inf | 39604.0 | true | missing | unknown |
314 | 100 | true | 0 | false | true | nondquar | false | false | false | false | other | unconstrained | -Inf | 106.0 | true | missing | unknown |
315 | 5 | false | 0 | false | true | osborne1 | false | false | false | false | least_squares | unconstrained | -Inf | 7.06876 | true | missing | unknown |
316 | 11 | false | 0 | false | true | osborne2 | false | false | false | false | least_squares | unconstrained | -Inf | 2.09342 | true | missing | unknown |
317 | 8 | false | 0 | false | true | palmer1c | false | false | false | false | least_squares | unconstrained | -Inf | 3.45295e8 | true | missing | unknown |
318 | 7 | false | 0 | false | true | palmer1d | false | false | false | false | least_squares | unconstrained | -Inf | 2.87266e7 | true | missing | unknown |
319 | 8 | false | 0 | false | true | palmer2c | false | false | false | false | least_squares | unconstrained | -Inf | 2.6894e7 | true | missing | unknown |
320 | 8 | false | 0 | false | true | palmer3c | false | false | false | false | least_squares | unconstrained | -Inf | 8.12197e6 | true | missing | unknown |
321 | 8 | false | 0 | false | true | palmer4c | false | false | false | false | least_squares | unconstrained | -Inf | 8.09445e6 | true | missing | unknown |
322 | 6 | false | 0 | false | true | palmer5c | false | false | false | false | least_squares | unconstrained | -Inf | 25495.0 | true | missing | unknown |
323 | 4 | false | 0 | false | true | palmer5d | false | false | false | false | least_squares | unconstrained | -Inf | 22262.6 | true | missing | unknown |
324 | 8 | false | 0 | false | true | palmer6c | false | false | false | false | least_squares | unconstrained | -Inf | 7.72166e5 | true | missing | unknown |
325 | 8 | false | 0 | false | true | palmer7c | false | false | false | false | least_squares | unconstrained | -Inf | 3.20513e6 | true | missing | unknown |
326 | 8 | false | 0 | false | true | palmer8c | false | false | false | false | least_squares | unconstrained | -Inf | 850271.0 | true | missing | unknown |
327 | 100 | true | 0 | false | true | penalty1 | false | false | false | false | least_squares | unconstrained | -Inf | 1.0 | true | missing | unknown |
328 | 100 | true | 0 | false | true | penalty2 | false | false | false | false | other | unconstrained | -Inf | 1.68848e6 | true | missing | unknown |
329 | 100 | true | 0 | false | true | penalty3 | false | false | false | false | other | unconstrained | -Inf | 1.00639e8 | true | missing | unknown |
330 | 100 | true | 50 | true | true | polygon | false | false | true | false | other | linear | -Inf | Inf | false | missing | unknown |
331 | 100 | true | 50 | true | true | polygon1 | false | false | true | false | other | linear | -Inf | Inf | false | missing | unknown |
332 | 100 | true | 1 | false | true | polygon2 | true | false | true | false | other | linear | -Inf | Inf | false | missing | unknown |
333 | 100 | true | 100 | true | true | polygon3 | false | true | false | false | other | general | -Inf | -0.0 | true | missing | unknown |
334 | 2 | false | 0 | false | true | powellbs | false | false | false | false | other | unconstrained | -Inf | 0.567631 | true | missing | unknown |
335 | 100 | true | 0 | false | true | powellsg | false | false | false | false | other | unconstrained | -Inf | 5375.0 | true | missing | unknown |
336 | 100 | true | 0 | false | true | power | false | false | false | false | least_squares | unconstrained | -Inf | 2.55025e7 | true | missing | unknown |
337 | 100 | true | 0 | false | true | quartc | false | false | false | false | other | unconstrained | -Inf | 1.85427e9 | true | missing | unknown |
338 | 3 | false | 0 | false | true | rat42 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
339 | 4 | false | 0 | false | true | rat43 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
340 | 109 | true | 102 | true | true | robotarm | false | false | true | true | other | general | -Inf | Inf | missing | missing | unknown |
341 | 2 | false | 0 | false | true | rosenbrock | false | false | false | false | other | unconstrained | -Inf | 32.3086 | true | missing | unknown |
342 | 4 | false | 0 | false | true | rozman1 | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
343 | 100 | true | 0 | false | true | sbrybnd | false | false | false | false | least_squares | unconstrained | -Inf | 1568.0 | true | missing | unknown |
344 | 100 | true | 0 | false | true | schmvett | false | false | false | false | other | unconstrained | -Inf | -189.068 | true | missing | unknown |
345 | 100 | true | 0 | false | true | scosine | false | false | false | false | other | unconstrained | -Inf | 86.8807 | true | missing | unknown |
346 | 100 | true | 0 | false | true | sinquad | false | false | false | false | other | unconstrained | -Inf | 0.6561 | true | missing | unknown |
347 | 100 | true | 0 | false | true | sparsine | false | false | false | false | other | unconstrained | -Inf | 20893.3 | true | missing | unknown |
348 | 100 | true | 0 | false | true | sparsqur | false | false | false | false | other | unconstrained | -Inf | 1420.31 | true | missing | unknown |
349 | 100 | true | 0 | false | true | spmsrtls | false | false | false | false | least_squares | unconstrained | -Inf | 49.3239 | true | missing | unknown |
350 | 100 | true | 0 | false | true | srosenbr | false | false | false | false | other | unconstrained | -Inf | 1210.0 | true | missing | unknown |
351 | 600 | true | 44 | true | true | structural | false | false | true | false | other | linear | -Inf | Inf | missing | missing | unknown |
352 | 15 | false | 4 | false | true | tetra | false | true | true | true | other | general | -Inf | Inf | missing | missing | unknown |
353 | 12597 | false | 19222 | false | true | tetra_duct12 | false | true | true | true | other | general | -Inf | 23246.1 | true | missing | unknown |
354 | 6417 | false | 9000 | false | true | tetra_duct15 | false | true | true | true | other | general | -Inf | 10890.9 | true | missing | unknown |
355 | 3201 | false | 4104 | false | true | tetra_duct20 | false | true | true | true | other | general | -Inf | 4959.8 | true | missing | unknown |
356 | 4011 | false | 4847 | false | true | tetra_foam5 | false | true | true | true | other | general | -Inf | 6497.1 | true | missing | unknown |
357 | 2598 | false | 3116 | false | true | tetra_gear | false | true | true | true | other | general | -Inf | 4256.38 | true | missing | unknown |
358 | 3570 | false | 4675 | false | true | tetra_hook | false | true | true | true | other | general | -Inf | 6157.14 | true | missing | unknown |
359 | 30 | false | 0 | false | true | threepk | false | false | true | false | other | unconstrained | -Inf | 20236.5 | true | missing | unknown |
360 | 7 | false | 0 | false | true | thurber | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
361 | 100 | true | 0 | false | true | tointgss | false | false | false | false | other | unconstrained | -Inf | 891.608 | true | missing | unknown |
362 | 100 | true | 0 | false | true | tquartic | false | false | false | false | least_squares | unconstrained | -Inf | 0.81 | true | missing | unknown |
363 | 8 | false | 3 | false | true | triangle | false | true | true | true | other | general | -Inf | 11.328 | true | missing | unknown |
364 | 2244 | false | 1896 | false | true | triangle_deer | false | true | true | true | other | general | -Inf | 2014.34 | true | missing | unknown |
365 | 1366 | false | 1182 | false | true | triangle_pacman | false | true | true | true | other | general | -Inf | 1316.28 | true | missing | unknown |
366 | 4444 | false | 4025 | false | true | triangle_turtle | false | true | true | true | other | general | -Inf | 4467.58 | true | missing | unknown |
367 | 100 | true | 0 | false | true | tridia | false | false | false | false | other | unconstrained | -Inf | 5049.0 | true | missing | unknown |
368 | 100 | true | 0 | false | true | vardim | false | false | false | false | other | unconstrained | -Inf | 1.31058e14 | true | missing | unknown |
369 | 8 | false | 0 | false | true | vibrbeam | false | false | false | false | least_squares | unconstrained | -Inf | 8231.28 | true | missing | unknown |
370 | 31 | false | 0 | false | true | watson | false | false | false | false | least_squares | unconstrained | -Inf | 500.0 | true | missing | unknown |
371 | 100 | true | 0 | false | true | woods | false | false | false | false | other | unconstrained | -Inf | 180451.0 | true | missing | unknown |
372 | 3 | false | 3 | false | true | zangwil3 | true | false | false | false | other | linear | -Inf | Inf | missing | missing | unknown |
We select the problems that are scalable, so that there size can be modified. By default, the size is close to 100
.
scalable_problems = meta[(meta.variable_nvar .== true) .& (meta.ncon .> 0), :name]
15-element Vector{String}:
"camshape"
"catenary"
"chain"
"channel"
"clnlbeam"
"controlinvestment"
"elec"
"hovercraft1d"
"marine"
"polygon"
"polygon1"
"polygon2"
"polygon3"
"robotarm"
"structural"
using NLPModelsJuMP
list_backends = Dict(
:forward => ADNLPModels.ForwardDiffADGradient,
:reverse => ADNLPModels.ReverseDiffADGradient,
)
Dict{Symbol, DataType} with 2 entries:
:reverse => ReverseDiffADGradient
:forward => ForwardDiffADGradient
using DataFrames
nprob = length(scalable_problems)
stats = Dict{Symbol, DataFrame}()
for back in union(keys(list_backends), [:jump])
stats[back] = DataFrame("name" => scalable_problems,
"time" => zeros(nprob),
"allocs" => zeros(Int, nprob))
end
using BenchmarkTools
nscal = 1000
for name in scalable_problems
n = eval(Meta.parse("OptimizationProblems.get_" * name * "_nvar(n = $(nscal))"))
m = eval(Meta.parse("OptimizationProblems.get_" * name * "_ncon(n = $(nscal))"))
@info " $(name) with $n vars and $m cons"
global x = ones(n)
global g = zeros(n)
global pb = Meta.parse(name)
global nlp = MathOptNLPModel(OptimizationProblems.PureJuMP.eval(pb)(n = nscal))
b = @benchmark grad!(nlp, x, g)
stats[:jump][stats[:jump].name .== name, :time] = [median(b.times)]
stats[:jump][stats[:jump].name .== name, :allocs] = [median(b.allocs)]
for back in keys(list_backends)
nlp = OptimizationProblems.ADNLPProblems.eval(pb)(n = nscal, gradient_backend = list_backends[back], matrix_free = true)
b = @benchmark grad!(nlp, x, g)
stats[back][stats[back].name .== name, :time] = [median(b.times)]
stats[back][stats[back].name .== name, :allocs] = [median(b.allocs)]
end
end
[ Info: camshape with 1000 vars and 2003 cons
[ Info: catenary with 999 vars and 332 cons
┌ Warning: catenary: number of variables adjusted to be a multiple of 3
└ @ OptimizationProblems.PureJuMP ~/.julia/packages/OptimizationProblems/9qr9C/src/PureJuMP/catenary.jl:20
┌ Warning: catenary: number of variables adjusted to be greater or equal to 6
└ @ OptimizationProblems.PureJuMP ~/.julia/packages/OptimizationProblems/9qr9C/src/PureJuMP/catenary.jl:22
┌ Warning: catenary: number of variables adjusted to be a multiple of 3
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/9qr9C/src/ADNLPProblems/catenary.jl:4
┌ Warning: catenary: number of variables adjusted to be greater or equal to 6
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/9qr9C/src/ADNLPProblems/catenary.jl:6
┌ Warning: catenary: number of variables adjusted to be a multiple of 3
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/9qr9C/src/ADNLPProblems/catenary.jl:4
┌ Warning: catenary: number of variables adjusted to be greater or equal to 6
└ @ OptimizationProblems.ADNLPProblems ~/.julia/packages/OptimizationProblems/9qr9C/src/ADNLPProblems/catenary.jl:6
[ Info: chain with 1000 vars and 752 cons
[ Info: channel with 1000 vars and 1000 cons
[ Info: clnlbeam with 999 vars and 664 cons
[ Info: controlinvestment with 1000 vars and 500 cons
[ Info: elec with 999 vars and 333 cons
[ Info: hovercraft1d with 998 vars and 668 cons
[ Info: marine with 1007 vars and 488 cons
[ Info: polygon with 1000 vars and 125251 cons
[ Info: polygon1 with 1000 vars and 500 cons
[ Info: polygon2 with 1000 vars and 1 cons
[ Info: polygon3 with 1000 vars and 1000 cons
[ Info: robotarm with 1009 vars and 1002 cons
[ Info: structural with 3540 vars and 3652 cons
using Plots, SolverBenchmark
costnames = ["median time (in ns)", "median allocs"]
costs = [
df -> df.time,
df -> df.allocs,
]
gr()
profile_solvers(stats, costs, costnames)