Benchmarks
CUTEst benchmark
With JSO-compliant solvers, we can run the solver on a set of problems, explore the results, and compare to other JSO-compliant solvers using specialized benchmark tools. We are following here the tutorial in SolverBenchmark.jl to run benchmarks on JSO-compliant solvers.
using CUTEst
Downloading artifact: sifcollection
To test the implementation on bound-constrained problems, we use the package CUTEst.jl, which implements CUTEstModel
an instance of AbstractNLPModel
.
using SolverBenchmark
Let us select bound-constrained problems from CUTEst with a maximum of 300 variables.
nmax = 300
pnames_unconstrained = CUTEst.select_sif_problems(
max_con = 0,
only_free_var = true, # unconstrained
max_var = nmax,
objtype = 3:6,
)
pnames = CUTEst.select_sif_problems(
max_con = 0,
max_var = nmax,
objtype = 3:6,
)
pnames = setdiff(pnames, pnames_unconstrained)
cutest_problems = (CUTEstModel(p) for p in pnames)
length(cutest_problems) # number of problems
102
We compare here TRON from JSOSolvers.jl with Ipopt (Wächter, A., & Biegler, L. T. (2006). On the implementation of an interior-point filter line-search algorithm for large-scale nonlinear programming. Mathematical programming, 106(1), 25-57.), via the NLPModelsIpopt.jl thin wrapper, on a subset of CUTEst problems.
using JSOSolvers, NLPModelsIpopt
To make stopping conditions comparable, we set Ipopt
's parameters dual_inf_tol=Inf
, constr_viol_tol=Inf
and compl_inf_tol=Inf
to disable additional stopping conditions related to those tolerances, acceptable_iter=0
to disable the search for an acceptable point.
#Same time limit for all the solvers
max_time = 1200. #20 minutes
tol = 1e-5
solvers = Dict(
:ipopt => nlp -> ipopt(
nlp,
print_level = 0,
dual_inf_tol = Inf,
constr_viol_tol = Inf,
compl_inf_tol = Inf,
acceptable_iter = 0,
max_cpu_time = max_time,
x0 = nlp.meta.x0,
tol = tol,
),
:tron => nlp -> tron(
nlp,
max_time = max_time,
max_iter = typemax(Int64),
max_eval = typemax(Int64),
atol = tol,
rtol = tol,
),
)
stats = bmark_solvers(solvers, cutest_problems)
Dict{Symbol, DataFrames.DataFrame} with 2 entries:
:tron => 102×40 DataFrame…
:ipopt => 102×41 DataFrame…
The function bmark_solvers
return a Dict
of DataFrames
with detailed information on the execution. This output can be saved in a data file.
using JLD2
@save "ipopt_dcildl_$(string(length(pnames))).jld2" stats
The result of the benchmark can be explored via tables,
pretty_stats(stats[:tron])
┌─────────────┬────────┬────────────┬────────┬────────┬────────┬─────────────┬───────────┬──────────────┬────────┬───────────┬─────────────┬───────────┬────────────┬────────────┬────────────────┬────────────────┬────────────┬─────────────┬───────────┬───────────────┬───────────────┬─────────────┬─────────────────┬─────────────────┬──────────────┬──────────────────┬──────────────────┬────────────┬─────────────┬─────────────┬──────────────┬────────────────┬────────────────────┬──────────────────────┬───────────────────────┬─────────────────────┬──────────────────────┬──────────────────────┬───────────┐
│ solver_name │ id │ name │ nvar │ ncon │ nequ │ status │ objective │ elapsed_time │ iter │ dual_feas │ primal_feas │ neval_obj │ neval_grad │ neval_cons │ neval_cons_lin │ neval_cons_nln │ neval_jcon │ neval_jgrad │ neval_jac │ neval_jac_lin │ neval_jac_nln │ neval_jprod │ neval_jprod_lin │ neval_jprod_nln │ neval_jtprod │ neval_jtprod_lin │ neval_jtprod_nln │ neval_hess │ neval_hprod │ neval_jhess │ neval_jhprod │ neval_residual │ neval_jac_residual │ neval_jprod_residual │ neval_jtprod_residual │ neval_hess_residual │ neval_jhess_residual │ neval_hprod_residual │ extrainfo │
├─────────────┼────────┼────────────┼────────┼────────┼────────┼─────────────┼───────────┼──────────────┼────────┼───────────┼─────────────┼───────────┼────────────┼────────────┼────────────────┼────────────────┼────────────┼─────────────┼───────────┼───────────────┼───────────────┼─────────────┼─────────────────┼─────────────────┼──────────────┼──────────────────┼──────────────────┼────────────┼─────────────┼─────────────┼──────────────┼────────────────┼────────────────────┼──────────────────────┼───────────────────────┼─────────────────────┼──────────────────────┼──────────────────────┼───────────┤
│ tron │ 1 │ TRIGON2B │ 10 │ 0 │ 0 │ first_order │ 1.63e+01 │ 3.73e-03 │ 24 │ 1.86e-04 │ Inf │ 25 │ 12 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1770 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 2 │ DECONVB │ 63 │ 0 │ 0 │ first_order │ 1.54e-07 │ 3.04e-02 │ 25 │ 4.98e-04 │ Inf │ 26 │ 10 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2369 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 3 │ MAXLIKA │ 8 │ 0 │ 0 │ first_order │ 1.14e+03 │ 1.95e-01 │ 39 │ 4.75e-05 │ Inf │ 40 │ 24 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2795 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 4 │ CHEBYQAD │ 100 │ 0 │ 0 │ first_order │ 9.47e-03 │ 1.18e+02 │ 139 │ 2.67e-05 │ Inf │ 140 │ 64 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 122612 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 5 │ PALMER8A │ 6 │ 0 │ 0 │ first_order │ 9.28e-02 │ 6.67e-03 │ 61 │ 1.80e-02 │ Inf │ 62 │ 45 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4990 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 6 │ LEVYMONT6 │ 3 │ 0 │ 0 │ first_order │ 1.25e+01 │ 4.32e-04 │ 10 │ 1.38e-04 │ Inf │ 11 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 466 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 7 │ QINGB │ 5 │ 0 │ 0 │ first_order │ 2.88e-10 │ 5.43e-04 │ 11 │ 1.13e-04 │ Inf │ 12 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 747 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 8 │ AIRCRFTB │ 8 │ 0 │ 0 │ first_order │ 2.72e-11 │ 1.69e-03 │ 27 │ 4.62e-04 │ Inf │ 28 │ 16 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1682 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 9 │ ELATVIDUB │ 2 │ 0 │ 0 │ first_order │ 5.48e+01 │ 5.91e-05 │ 10 │ 3.91e-05 │ Inf │ 11 │ 11 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 64 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 10 │ PALMER2 │ 4 │ 0 │ 0 │ first_order │ 3.65e+03 │ 7.32e-03 │ 37 │ 2.71e-04 │ Inf │ 38 │ 14 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3519 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 11 │ STRTCHDVB │ 10 │ 0 │ 0 │ first_order │ 3.39e-07 │ 2.24e-04 │ 10 │ 1.95e-04 │ Inf │ 11 │ 11 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 72 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 12 │ PFIT2LS │ 3 │ 0 │ 0 │ first_order │ 8.19e-05 │ 3.78e-03 │ 44 │ 2.36e-03 │ Inf │ 45 │ 20 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4205 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 13 │ PSPDOC │ 4 │ 0 │ 0 │ first_order │ 2.41e+00 │ 4.10e-05 │ 4 │ 2.49e-06 │ Inf │ 5 │ 5 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 25 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 14 │ KOEBHELB │ 3 │ 0 │ 0 │ first_order │ 1.12e+02 │ 4.12e-02 │ 44 │ 1.61e-04 │ Inf │ 45 │ 20 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3310 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 15 │ BQP1VAR │ 1 │ 0 │ 0 │ first_order │ 0.00e+00 │ 1.22e-05 │ 1 │ 0.00e+00 │ Inf │ 2 │ 2 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 16 │ EG1 │ 3 │ 0 │ 0 │ first_order │ -1.13e+00 │ 4.70e-05 │ 5 │ 6.19e-09 │ Inf │ 6 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 32 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 17 │ HS110 │ 10 │ 0 │ 0 │ first_order │ -4.58e+01 │ 5.60e-05 │ 4 │ 1.51e-05 │ Inf │ 5 │ 5 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 20 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 18 │ CAMEL6 │ 2 │ 0 │ 0 │ first_order │ -2.15e-01 │ 2.18e-04 │ 9 │ 2.54e-05 │ Inf │ 10 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 285 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 19 │ LOGROS │ 2 │ 0 │ 0 │ first_order │ 0.00e+00 │ 6.35e-03 │ 120 │ 6.58e-09 │ Inf │ 121 │ 61 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 12681 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 20 │ DEVGLA1B │ 4 │ 0 │ 0 │ first_order │ 2.54e-17 │ 1.55e-02 │ 43 │ 3.18e-06 │ Inf │ 44 │ 26 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3655 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 21 │ PALMER5A │ 8 │ 0 │ 0 │ first_order │ 3.17e-01 │ 8.91e-03 │ 67 │ 8.16e-03 │ Inf │ 68 │ 34 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 6033 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 22 │ TRIGON1B │ 10 │ 0 │ 0 │ first_order │ 3.21e-13 │ 3.14e-04 │ 8 │ 2.41e-06 │ Inf │ 9 │ 8 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 89 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 23 │ PALMER4 │ 4 │ 0 │ 0 │ first_order │ 2.29e+03 │ 7.54e-03 │ 42 │ 2.15e-03 │ Inf │ 43 │ 14 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3623 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 24 │ HATFLDB │ 4 │ 0 │ 0 │ first_order │ 5.57e-03 │ 1.68e-04 │ 25 │ 2.57e-08 │ Inf │ 26 │ 26 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 221 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 25 │ LEVYMONT7 │ 4 │ 0 │ 0 │ first_order │ 1.25e+01 │ 4.26e-04 │ 10 │ 2.74e-05 │ Inf │ 11 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 425 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 26 │ JNLBRNG1 │ 16 │ 0 │ 0 │ first_order │ -2.25e-01 │ 4.98e-05 │ 1 │ 3.51e-16 │ Inf │ 2 │ 2 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 8 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 27 │ S368 │ 8 │ 0 │ 0 │ first_order │ -7.50e-01 │ 2.27e-03 │ 11 │ 5.79e-06 │ Inf │ 12 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 392 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 28 │ LEVYMONT9 │ 8 │ 0 │ 0 │ first_order │ 1.66e+02 │ 6.60e-05 │ 3 │ 1.79e-05 │ Inf │ 4 │ 4 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 30 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 29 │ BIGGS3 │ 6 │ 0 │ 0 │ first_order │ 3.04e-16 │ 2.14e-04 │ 10 │ 7.99e-09 │ Inf │ 11 │ 10 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 71 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 30 │ HATFLDC │ 25 │ 0 │ 0 │ first_order │ 1.14e-11 │ 1.21e-04 │ 5 │ 1.02e-05 │ Inf │ 6 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 53 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 31 │ HS38 │ 4 │ 0 │ 0 │ first_order │ 8.32e-11 │ 7.77e-03 │ 97 │ 1.11e-05 │ Inf │ 98 │ 46 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 11003 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 32 │ HS4 │ 2 │ 0 │ 0 │ first_order │ 2.67e+00 │ 1.41e-05 │ 1 │ 0.00e+00 │ Inf │ 2 │ 2 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 33 │ PALMER3E │ 8 │ 0 │ 0 │ first_order │ 7.73e-02 │ 8.58e-03 │ 22 │ 4.79e-01 │ Inf │ 23 │ 10 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3203 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 34 │ FBRAINLS │ 2 │ 0 │ 0 │ first_order │ 4.17e-01 │ 1.65e-02 │ 6 │ 2.23e-06 │ Inf │ 7 │ 7 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 46 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 35 │ BLEACHNG │ 17 │ 0 │ 0 │ max_time │ 1.82e+04 │ 1.20e+03 │ 327 │ 1.04e+01 │ Inf │ 328 │ 604 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1341 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 36 │ HS3MOD │ 2 │ 0 │ 0 │ first_order │ 0.00e+00 │ 6.41e-05 │ 5 │ 0.00e+00 │ Inf │ 6 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 32 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 37 │ LEVYMONT │ 100 │ 0 │ 0 │ first_order │ 1.55e+02 │ 3.90e-04 │ 3 │ 1.32e-06 │ Inf │ 4 │ 4 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 29 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 38 │ PALMER2E │ 8 │ 0 │ 0 │ first_order │ 3.48e+00 │ 2.18e-04 │ 6 │ 3.86e+00 │ Inf │ 7 │ 5 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 70 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 39 │ PALMER3A │ 6 │ 0 │ 0 │ first_order │ 3.76e-02 │ 6.04e-03 │ 42 │ 4.63e-02 │ Inf │ 43 │ 25 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2845 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 40 │ PFIT1LS │ 3 │ 0 │ 0 │ first_order │ 1.41e-04 │ 4.18e-03 │ 50 │ 2.14e-04 │ Inf │ 51 │ 22 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4622 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 41 │ BQPGABIM │ 50 │ 0 │ 0 │ first_order │ -3.79e-05 │ 2.40e-04 │ 3 │ 1.84e-06 │ Inf │ 4 │ 4 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 45 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 42 │ SANTALS │ 21 │ 0 │ 0 │ first_order │ 1.22e-05 │ 2.67e-03 │ 35 │ 1.69e-05 │ Inf │ 36 │ 35 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 613 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 43 │ FBRAIN2LS │ 4 │ 0 │ 0 │ first_order │ 3.68e-01 │ 6.80e-01 │ 16 │ 3.43e-07 │ Inf │ 17 │ 11 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1199 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 44 │ HS25 │ 3 │ 0 │ 0 │ first_order │ 3.28e+01 │ 0.00e+00 │ 0 │ 2.00e-08 │ Inf │ 1 │ 1 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 45 │ HIMMELP1 │ 2 │ 0 │ 0 │ first_order │ -6.21e+01 │ 2.58e-04 │ 8 │ 5.04e-08 │ Inf │ 9 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 369 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 46 │ WEEDS │ 3 │ 0 │ 0 │ first_order │ 2.59e+00 │ 2.00e-03 │ 38 │ 4.92e-04 │ Inf │ 39 │ 30 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1407 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 47 │ HS5 │ 2 │ 0 │ 0 │ first_order │ -1.91e+00 │ 3.29e-05 │ 4 │ 1.43e-09 │ Inf │ 5 │ 5 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 24 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 48 │ BRANIN │ 2 │ 0 │ 0 │ first_order │ 3.98e-01 │ 2.23e-04 │ 8 │ 2.46e-09 │ Inf │ 9 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 350 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 49 │ PALMER1E │ 8 │ 0 │ 0 │ first_order │ 2.83e+01 │ 3.52e-03 │ 21 │ 3.19e+01 │ Inf │ 22 │ 15 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 946 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 50 │ PALMER3 │ 4 │ 0 │ 0 │ small_step │ 2.32e+03 │ 1.12e-02 │ 59 │ 1.21e-01 │ Inf │ 60 │ 76 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 5632 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 51 │ BOX2 │ 3 │ 0 │ 0 │ first_order │ 2.86e-07 │ 6.01e-05 │ 5 │ 4.96e-05 │ Inf │ 6 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 25 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 52 │ PALMER8E │ 8 │ 0 │ 0 │ first_order │ 1.63e-01 │ 7.55e-03 │ 31 │ 2.03e-02 │ Inf │ 32 │ 14 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4717 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 53 │ POWERSUMB │ 4 │ 0 │ 0 │ first_order │ 3.74e+01 │ 8.20e-05 │ 6 │ 2.41e-10 │ Inf │ 7 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 37 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 54 │ PALMER2A │ 6 │ 0 │ 0 │ first_order │ 1.86e-02 │ 2.78e-03 │ 36 │ 2.03e-02 │ Inf │ 37 │ 24 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1292 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 55 │ PALMER6A │ 6 │ 0 │ 0 │ first_order │ 8.08e-02 │ 4.30e-03 │ 48 │ 5.17e-03 │ Inf │ 49 │ 30 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3033 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 56 │ HS1 │ 2 │ 0 │ 0 │ first_order │ 2.80e-05 │ 9.89e-05 │ 24 │ 5.64e-03 │ Inf │ 25 │ 23 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 157 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 57 │ MDHOLE │ 2 │ 0 │ 0 │ first_order │ 8.97e-10 │ 2.10e-03 │ 51 │ 5.99e-04 │ Inf │ 52 │ 21 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3820 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 58 │ PRICE4B │ 2 │ 0 │ 0 │ first_order │ 7.62e-19 │ 5.02e-04 │ 15 │ 1.11e-07 │ Inf │ 16 │ 8 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 789 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 59 │ PALMER1B │ 4 │ 0 │ 0 │ first_order │ 3.45e+00 │ 7.92e-03 │ 50 │ 4.99e-03 │ Inf │ 51 │ 27 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3081 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 60 │ PFIT4LS │ 3 │ 0 │ 0 │ first_order │ 5.93e-03 │ 4.73e-03 │ 54 │ 9.31e-03 │ Inf │ 55 │ 23 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 5307 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 61 │ DECONVU │ 63 │ 0 │ 0 │ first_order │ 5.15e-06 │ 7.71e-02 │ 32 │ 6.07e-04 │ Inf │ 33 │ 13 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 5810 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 62 │ DEVGLA2B │ 5 │ 0 │ 0 │ first_order │ 1.06e+04 │ 3.61e-04 │ 7 │ 6.55e-04 │ Inf │ 8 │ 8 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 68 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 63 │ HS2 │ 2 │ 0 │ 0 │ first_order │ 4.94e+00 │ 4.10e-05 │ 5 │ 1.14e-02 │ Inf │ 6 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 47 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 64 │ HS3 │ 2 │ 0 │ 0 │ first_order │ 0.00e+00 │ 2.69e-05 │ 3 │ 0.00e+00 │ Inf │ 4 │ 4 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 18 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 65 │ PALMER7A │ 6 │ 0 │ 0 │ first_order │ 1.28e+01 │ 1.52e-03 │ 98 │ 3.55e-02 │ Inf │ 99 │ 84 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1036 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 66 │ EGGCRATEB │ 2 │ 0 │ 0 │ first_order │ 9.49e+00 │ 3.18e-04 │ 9 │ 9.80e-06 │ Inf │ 10 │ 5 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 443 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 67 │ PALMER7E │ 8 │ 0 │ 0 │ first_order │ 1.54e+01 │ 3.49e-03 │ 14 │ 3.88e-01 │ Inf │ 15 │ 7 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2137 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 68 │ PALMER1 │ 4 │ 0 │ 0 │ first_order │ 1.18e+04 │ 8.97e-03 │ 43 │ 1.14e-05 │ Inf │ 44 │ 21 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3358 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 69 │ BQPGASIM │ 50 │ 0 │ 0 │ first_order │ -5.52e-05 │ 2.25e-04 │ 3 │ 8.44e-06 │ Inf │ 4 │ 4 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 47 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 70 │ EXP2B │ 2 │ 0 │ 0 │ first_order │ 4.31e-12 │ 7.58e-05 │ 6 │ 1.23e-06 │ Inf │ 7 │ 7 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 37 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 71 │ SIMBQP │ 2 │ 0 │ 0 │ first_order │ 0.00e+00 │ 2.31e-05 │ 2 │ 0.00e+00 │ Inf │ 3 │ 3 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 10 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 72 │ ALLINIT │ 4 │ 0 │ 0 │ first_order │ 1.67e+01 │ 8.70e-04 │ 14 │ 1.97e-08 │ Inf │ 15 │ 8 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 676 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 73 │ JUDGEB │ 2 │ 0 │ 0 │ first_order │ 1.61e+01 │ 1.01e-04 │ 8 │ 8.86e-08 │ Inf │ 9 │ 9 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 54 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 74 │ PALMER5E │ 8 │ 0 │ 0 │ first_order │ 1.13e-01 │ 3.24e-02 │ 76 │ 3.60e-03 │ Inf │ 77 │ 39 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 20622 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 75 │ PALMER5B │ 9 │ 0 │ 0 │ first_order │ 1.30e-01 │ 4.34e-03 │ 40 │ 2.98e-01 │ Inf │ 41 │ 25 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2807 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 76 │ PALMER6E │ 8 │ 0 │ 0 │ first_order │ 6.53e-02 │ 3.55e-03 │ 18 │ 1.16e-01 │ Inf │ 19 │ 9 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2034 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 77 │ SPECAN │ 9 │ 0 │ 0 │ first_order │ 6.25e-12 │ 1.20e-01 │ 8 │ 5.94e-05 │ Inf │ 9 │ 9 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 93 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 78 │ YFIT │ 3 │ 0 │ 0 │ first_order │ 1.20e-01 │ 9.25e-03 │ 58 │ 4.95e-02 │ Inf │ 59 │ 31 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4541 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 79 │ LEVYMONT10 │ 10 │ 0 │ 0 │ first_order │ 1.64e+02 │ 7.20e-05 │ 3 │ 1.08e-05 │ Inf │ 4 │ 4 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 30 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 80 │ PALMER4B │ 4 │ 0 │ 0 │ first_order │ 6.84e+00 │ 4.41e-03 │ 34 │ 2.75e-02 │ Inf │ 35 │ 19 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2327 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 81 │ PALMER1A │ 6 │ 0 │ 0 │ first_order │ 7.99e-01 │ 9.41e-03 │ 53 │ 2.67e-02 │ Inf │ 54 │ 30 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3221 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 82 │ HOLMES │ 180 │ 0 │ 0 │ first_order │ 1.25e+03 │ 1.45e-01 │ 4 │ 5.28e-04 │ Inf │ 5 │ 5 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 104 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 83 │ PALMER2B │ 4 │ 0 │ 0 │ first_order │ 6.23e-01 │ 5.06e-03 │ 37 │ 2.21e-04 │ Inf │ 38 │ 17 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2655 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 84 │ DGOSPEC │ 3 │ 0 │ 0 │ first_order │ -9.97e+02 │ 4.01e-05 │ 4 │ 4.95e-08 │ Inf │ 5 │ 5 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 28 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 85 │ HATFLDA │ 4 │ 0 │ 0 │ first_order │ 2.98e-14 │ 2.01e-04 │ 28 │ 1.82e-07 │ Inf │ 29 │ 29 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 248 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 86 │ PALMER3B │ 4 │ 0 │ 0 │ first_order │ 4.23e+00 │ 4.75e-03 │ 34 │ 1.92e-03 │ Inf │ 35 │ 17 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2479 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 87 │ OSLBQP │ 8 │ 0 │ 0 │ first_order │ 6.25e+00 │ 2.50e-05 │ 2 │ 0.00e+00 │ Inf │ 3 │ 3 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 9 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 88 │ MINSURF │ 64 │ 0 │ 0 │ first_order │ 1.00e+00 │ 6.87e-04 │ 8 │ 3.09e-06 │ Inf │ 9 │ 8 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 53 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 89 │ DIAGIQB │ 10 │ 0 │ 0 │ first_order │ -1.01e+13 │ 9.79e-02 │ 1092 │ 4.00e-16 │ Inf │ 1093 │ 1093 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 114433 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 90 │ PFIT3LS │ 3 │ 0 │ 0 │ first_order │ 5.33e-04 │ 2.08e-03 │ 41 │ 5.55e-03 │ Inf │ 42 │ 19 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2306 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 91 │ HART6 │ 6 │ 0 │ 0 │ first_order │ -3.32e+00 │ 9.13e-04 │ 17 │ 2.80e-07 │ Inf │ 18 │ 10 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 826 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 92 │ WAYSEA1B │ 2 │ 0 │ 0 │ first_order │ 3.78e-12 │ 6.41e-05 │ 14 │ 1.26e-04 │ Inf │ 15 │ 15 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 84 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 93 │ LEVYMONT5 │ 2 │ 0 │ 0 │ first_order │ 1.25e+01 │ 3.98e-05 │ 5 │ 9.39e-05 │ Inf │ 6 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 26 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 94 │ LEVYMONT8 │ 5 │ 0 │ 0 │ first_order │ 1.73e+02 │ 5.32e-05 │ 3 │ 1.23e-05 │ Inf │ 4 │ 4 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 31 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 95 │ BIGGS5 │ 6 │ 0 │ 0 │ first_order │ 2.74e-08 │ 7.08e-03 │ 32 │ 1.24e-05 │ Inf │ 33 │ 19 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2860 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 96 │ PRICE3B │ 2 │ 0 │ 0 │ first_order │ 1.89e-17 │ 2.00e-04 │ 14 │ 4.62e-08 │ Inf │ 15 │ 11 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 296 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 97 │ HS45 │ 5 │ 0 │ 0 │ first_order │ 1.00e+00 │ 2.60e-05 │ 1 │ 0.00e+00 │ Inf │ 2 │ 2 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 15 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 98 │ WAYSEA2B │ 2 │ 0 │ 0 │ first_order │ 1.21e-06 │ 9.68e-05 │ 19 │ 6.00e-03 │ Inf │ 20 │ 20 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 155 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 99 │ SIM2BQP │ 2 │ 0 │ 0 │ first_order │ 0.00e+00 │ 1.29e-05 │ 1 │ 0.00e+00 │ Inf │ 2 │ 2 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 100 │ 3PK │ 30 │ 0 │ 0 │ first_order │ 1.72e+00 │ 9.21e-04 │ 16 │ 1.42e-04 │ Inf │ 17 │ 17 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 437 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 101 │ PALMER4E │ 8 │ 0 │ 0 │ first_order │ 3.68e-01 │ 3.96e-03 │ 16 │ 4.98e-01 │ Inf │ 17 │ 6 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 1449 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
│ tron │ 102 │ PALMER4A │ 6 │ 0 │ 0 │ first_order │ 4.26e-02 │ 6.05e-03 │ 44 │ 2.51e-03 │ Inf │ 45 │ 29 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2889 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ │
└─────────────┴────────┴────────────┴────────┴────────┴────────┴─────────────┴───────────┴──────────────┴────────┴───────────┴─────────────┴───────────┴────────────┴────────────┴────────────────┴────────────────┴────────────┴─────────────┴───────────┴───────────────┴───────────────┴─────────────┴─────────────────┴─────────────────┴──────────────┴──────────────────┴──────────────────┴────────────┴─────────────┴─────────────┴──────────────┴────────────────┴────────────────────┴──────────────────────┴───────────────────────┴─────────────────────┴──────────────────────┴──────────────────────┴───────────┘
or it can also be used to make performance profiles.
using Plots
gr()
legend = Dict(
:neval_obj => "number of f evals",
:neval_grad => "number of ∇f evals",
:neval_hprod => "number of ∇²f*v evals",
:neval_hess => "number of ∇²f evals",
:elapsed_time => "elapsed time"
)
perf_title(col) = "Performance profile on CUTEst w.r.t. $(string(legend[col]))"
styles = [:solid,:dash,:dot,:dashdot] #[:auto, :solid, :dash, :dot, :dashdot, :dashdotdot]
function print_pp_column(col::Symbol, stats)
ϵ = minimum(minimum(filter(x -> x > 0, df[!, col])) for df in values(stats))
first_order(df) = df.status .== :first_order
unbounded(df) = df.status .== :unbounded
solved(df) = first_order(df) .| unbounded(df)
cost(df) = (max.(df[!, col], ϵ) + .!solved(df) .* Inf)
p = performance_profile(
stats,
cost,
title=perf_title(col),
legend=:bottomright,
linestyles=styles
)
end
print_pp_column(:elapsed_time, stats) # with respect to time
print_pp_column(:neval_obj, stats) # with respect to number of objective evaluations
print_pp_column(:neval_grad, stats) # with respect to number of gradient evaluations