With a JSO-compliant solver, such as CaNNOLeS, 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 NLSProblems, NLPModels
To test the implementation of CaNNOLeS, we use the package NLSProblems.jl, which implements NLSProblemsModel
an instance of AbstractNLPModel
.
using SolverBenchmark
Let us select equality-constrained problems from NLSProblems with a maximum of 10000 variables or constraints. After removing problems with fixed variables, examples with a constant objective, and infeasibility residuals, we are left with 82 problems.
problems = (NLSProblems.eval(problem)() for problem in filter(x -> x != :NLSProblems, names(NLSProblems)) )
Base.Generator{Vector{Symbol}, Main.var"#1#3"}(Main.var"#1#3"(), [:BNST2, :BNST3, :LVcon501, :LVcon502, :LVcon503, :LVcon504, :LVcon511, :LVcon512, :LVcon513, :LVcon514 … :tp354, :tp355, :tp358, :tp370, :tp371, :tp372, :tp373, :tp379, :tp394, :tp395])
We compare here CaNNOLeS with tron
(Chih-Jen Lin and Jorge J. Moré, Newton's Method for Large Bound-Constrained Optimization Problems, SIAM J. Optim., 9(4), 1100–1127, 1999.), and trunk
(A. R. Conn, N. I. M. Gould, and Ph. L. Toint (2000). Trust-Region Methods, volume 1 of MPS/SIAM Series on Optimization.) implemented in JSOSolvers.jl on a subset of NLSProblems problems.
using CaNNOLeS, JSOSolvers
To make stopping conditions comparable, we set tron
's and trunk
's parameters atol=0.0
, and rtol=1e-5
.
#Same time limit for all the solvers
max_time = 1200. #20 minutes
solvers = Dict(
:tron => nlp -> tron(
nlp,
atol = 0.0,
rtol = 1e-5,
),
:trunk => nlp -> trunk(
nlp,
atol = 0.0,
rtol = 1e-5,
),
:cannoles => nlp -> cannoles(
nlp,
atol = 0.0,
rtol = 1e-5,
),
)
stats = bmark_solvers(solvers, problems, skipif = nls -> !NLPModels.unconstrained(nls))
Dict{Symbol, DataFrames.DataFrame} with 3 entries:
:tron => 88×40 DataFrame…
:trunk => 88×40 DataFrame…
:cannoles => 88×44 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 "trunk_cannoles_$(string(length(problems))).jld2" stats
The result of the benchmark can be explored via tables,
pretty_stats(stats[:cannoles])
┌─────────────┬────────┬───────┬────────┬────────┬────────┬─────────────┬───────────┬──────────────┬────────┬───────────┬─────────────┬───────────┬────────────┬────────────┬────────────────┬────────────────┬────────────┬─────────────┬───────────┬───────────────┬───────────────┬─────────────┬─────────────────┬─────────────────┬──────────────┬──────────────────┬──────────────────┬────────────┬─────────────┬─────────────┬──────────────┬────────────────┬────────────────────┬──────────────────────┬───────────────────────┬─────────────────────┬──────────────────────┬──────────────────────┬───────────┬───────────┬────────┬────────┬──────────────┐
│ 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 │ nlinsolve │ nfact │ nbk │ internal_msg │
├─────────────┼────────┼───────┼────────┼────────┼────────┼─────────────┼───────────┼──────────────┼────────┼───────────┼─────────────┼───────────┼────────────┼────────────┼────────────────┼────────────────┼────────────┼─────────────┼───────────┼───────────────┼───────────────┼─────────────┼─────────────────┼─────────────────┼──────────────┼──────────────────┼──────────────────┼────────────┼─────────────┼─────────────┼──────────────┼────────────────┼────────────────────┼──────────────────────┼───────────────────────┼─────────────────────┼──────────────────────┼──────────────────────┼───────────┼───────────┼────────┼────────┼──────────────┤
│ cannoles │ 15 │ NZF1 │ 13 │ 0 │ 5 │ first_order │ 1.78e-07 │ 4.67e+00 │ 11 │ 6.45e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 12 │ 12 │ 0 │ 0 │ 11 │ 0 │ 0 │ │ 11 │ 27 │ 0 │ │
│ cannoles │ 51 │ mgh01 │ 2 │ 0 │ 2 │ first_order │ 2.03e-11 │ 3.79e-05 │ 3 │ 3.18e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 6 │ 0 │ │
│ cannoles │ 52 │ mgh02 │ 2 │ 0 │ 2 │ first_order │ 2.45e+01 │ 2.22e-05 │ 5 │ 1.69e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 6 │ 6 │ 0 │ 0 │ 5 │ 0 │ 0 │ │ 5 │ 5 │ 0 │ │
│ cannoles │ 53 │ mgh03 │ 2 │ 0 │ 2 │ first_order │ 1.89e-04 │ 3.60e-05 │ 8 │ 9.53e-02 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 9 │ 9 │ 0 │ 0 │ 8 │ 0 │ 0 │ │ 8 │ 13 │ 0 │ │
│ cannoles │ 54 │ mgh04 │ 2 │ 0 │ 3 │ first_order │ 3.60e-10 │ 2.88e-05 │ 2 │ 3.00e-01 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 13 │ 10 │ 0 │ 0 │ 8 │ 0 │ 0 │ │ 8 │ 12 │ 3 │ │
│ cannoles │ 55 │ mgh05 │ 2 │ 0 │ 3 │ first_order │ 3.51e-12 │ 3.50e-05 │ 7 │ 1.61e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 8 │ 8 │ 0 │ 0 │ 7 │ 0 │ 0 │ │ 7 │ 12 │ 0 │ │
│ cannoles │ 56 │ mgh06 │ 2 │ 0 │ 10 │ first_order │ 6.22e+01 │ 6.20e-05 │ 6 │ 1.72e-01 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 7 │ 7 │ 0 │ 0 │ 6 │ 0 │ 0 │ │ 6 │ 6 │ 0 │ │
│ cannoles │ 57 │ mgh07 │ 3 │ 0 │ 3 │ first_order │ 3.37e-07 │ 2.24e-04 │ 18 │ 4.27e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 19 │ 19 │ 0 │ 0 │ 18 │ 0 │ 0 │ │ 18 │ 33 │ 0 │ │
│ cannoles │ 58 │ mgh08 │ 3 │ 0 │ 15 │ first_order │ 4.66e-01 │ 1.51e-04 │ 11 │ 1.24e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 12 │ 12 │ 0 │ 0 │ 11 │ 0 │ 0 │ │ 11 │ 18 │ 0 │ │
│ cannoles │ 59 │ mgh09 │ 3 │ 0 │ 15 │ first_order │ 5.64e-09 │ 5.39e-05 │ 2 │ 3.35e-11 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3 │ 3 │ 0 │ 0 │ 2 │ 0 │ 0 │ │ 2 │ 2 │ 0 │ │
│ cannoles │ 60 │ mgh10 │ 3 │ 0 │ 16 │ first_order │ 4.66e+05 │ 1.69e-04 │ 5 │ 1.65e+05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 10 │ 9 │ 0 │ 0 │ 6 │ 0 │ 0 │ │ 6 │ 18 │ 1 │ │
│ cannoles │ 61 │ mgh11 │ 3 │ 0 │ 100 │ first_order │ 1.64e+01 │ 1.41e-03 │ 8 │ 3.61e-13 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 9 │ 9 │ 0 │ 0 │ 8 │ 0 │ 0 │ │ 8 │ 19 │ 0 │ │
│ cannoles │ 62 │ mgh12 │ 3 │ 0 │ 10 │ first_order │ 1.81e-07 │ 1.84e-04 │ 15 │ 5.46e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 16 │ 16 │ 0 │ 0 │ 15 │ 0 │ 0 │ │ 15 │ 23 │ 0 │ │
│ cannoles │ 63 │ mgh13 │ 4 │ 0 │ 4 │ first_order │ 8.26e-07 │ 3.60e-05 │ 9 │ 6.62e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 10 │ 10 │ 0 │ 0 │ 9 │ 0 │ 0 │ │ 9 │ 9 │ 0 │ │
│ cannoles │ 64 │ mgh14 │ 4 │ 0 │ 6 │ first_order │ 3.94e+00 │ 2.69e-05 │ 6 │ 2.80e-02 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 7 │ 7 │ 0 │ 0 │ 6 │ 0 │ 0 │ │ 6 │ 6 │ 0 │ │
│ cannoles │ 65 │ mgh15 │ 4 │ 0 │ 11 │ first_order │ 5.20e-02 │ 1.14e-03 │ 57 │ 1.92e-08 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 83 │ 69 │ 0 │ 0 │ 63 │ 0 │ 0 │ │ 63 │ 140 │ 14 │ │
│ cannoles │ 66 │ mgh16 │ 4 │ 0 │ 20 │ first_order │ 4.29e+04 │ 2.12e-04 │ 7 │ 2.00e+00 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 10 │ 9 │ 0 │ 0 │ 7 │ 0 │ 0 │ │ 7 │ 7 │ 1 │ │
│ cannoles │ 67 │ mgh17 │ 5 │ 0 │ 33 │ first_order │ 3.86e-05 │ 7.04e-04 │ 15 │ 1.24e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 16 │ 16 │ 0 │ 0 │ 15 │ 0 │ 0 │ │ 15 │ 31 │ 0 │ │
│ cannoles │ 68 │ mgh18 │ 6 │ 0 │ 13 │ first_order │ 2.83e-03 │ 1.86e-03 │ 69 │ 1.16e-07 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 70 │ 70 │ 0 │ 0 │ 69 │ 0 │ 0 │ │ 69 │ 167 │ 0 │ │
│ cannoles │ 69 │ mgh19 │ 11 │ 0 │ 65 │ first_order │ 1.37e-01 │ 8.16e-03 │ 35 │ 2.13e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 47 │ 39 │ 0 │ 0 │ 35 │ 0 │ 0 │ │ 35 │ 70 │ 8 │ │
│ cannoles │ 70 │ mgh20 │ 6 │ 0 │ 31 │ first_order │ 1.14e-03 │ 1.15e-03 │ 6 │ 2.13e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 7 │ 7 │ 0 │ 0 │ 6 │ 0 │ 0 │ │ 6 │ 6 │ 0 │ │
│ cannoles │ 71 │ mgh21 │ 20 │ 0 │ 20 │ first_order │ 2.03e-10 │ 4.01e-05 │ 3 │ 3.18e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 6 │ 0 │ │
│ cannoles │ 72 │ mgh22 │ 20 │ 0 │ 20 │ first_order │ 1.78e-05 │ 9.58e-05 │ 9 │ 3.24e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 10 │ 10 │ 0 │ 0 │ 9 │ 0 │ 0 │ │ 9 │ 9 │ 0 │ │
│ cannoles │ 73 │ mgh23 │ 4 │ 0 │ 5 │ first_order │ 1.92e-05 │ 3.70e-05 │ 7 │ 1.52e-03 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 8 │ 8 │ 0 │ 0 │ 7 │ 0 │ 0 │ │ 7 │ 7 │ 0 │ │
│ cannoles │ 74 │ mgh24 │ 4 │ 0 │ 8 │ first_order │ 1.82e-06 │ 5.39e-05 │ 5 │ 2.46e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 6 │ 6 │ 0 │ 0 │ 5 │ 0 │ 0 │ │ 5 │ 9 │ 0 │ │
│ cannoles │ 75 │ mgh25 │ 10 │ 0 │ 12 │ first_order │ 4.84e-01 │ 9.20e-05 │ 8 │ 1.09e+01 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 9 │ 9 │ 0 │ 0 │ 8 │ 0 │ 0 │ │ 8 │ 8 │ 0 │ │
│ cannoles │ 76 │ mgh26 │ 10 │ 0 │ 10 │ first_order │ 1.40e-05 │ 3.37e-04 │ 11 │ 2.35e-10 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 12 │ 12 │ 0 │ 0 │ 11 │ 0 │ 0 │ │ 11 │ 23 │ 0 │ │
│ cannoles │ 77 │ mgh27 │ 10 │ 0 │ 10 │ first_order │ 3.85e-07 │ 6.58e-05 │ 5 │ 4.80e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 6 │ 6 │ 0 │ 0 │ 5 │ 0 │ 0 │ │ 5 │ 5 │ 0 │ │
│ cannoles │ 78 │ mgh28 │ 10 │ 0 │ 10 │ first_order │ 1.67e-25 │ 4.70e-05 │ 3 │ 1.62e-14 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 3 │ 0 │ │
│ cannoles │ 79 │ mgh29 │ 10 │ 0 │ 10 │ first_order │ 3.30e-23 │ 1.30e-04 │ 3 │ 3.12e-12 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 3 │ 0 │ │
│ cannoles │ 80 │ mgh30 │ 10 │ 0 │ 10 │ first_order │ 4.01e-10 │ 4.60e-05 │ 4 │ 4.41e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 5 │ 5 │ 0 │ 0 │ 4 │ 0 │ 0 │ │ 4 │ 4 │ 0 │ │
│ cannoles │ 81 │ mgh31 │ 10 │ 0 │ 10 │ first_order │ 8.27e-10 │ 1.04e-04 │ 6 │ 1.02e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 7 │ 7 │ 0 │ 0 │ 6 │ 0 │ 0 │ │ 6 │ 6 │ 0 │ │
│ cannoles │ 82 │ mgh32 │ 10 │ 0 │ 20 │ first_order │ 5.00e+00 │ 2.79e-05 │ 1 │ 1.21e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 2 │ 0 │ 0 │ 1 │ 0 │ 0 │ │ 1 │ 2 │ 0 │ │
│ cannoles │ 83 │ mgh33 │ 10 │ 0 │ 20 │ first_order │ 2.32e+00 │ 2.41e-05 │ 1 │ 8.64e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 2 │ 0 │ 0 │ 1 │ 0 │ 0 │ │ 1 │ 2 │ 0 │ │
│ cannoles │ 84 │ mgh34 │ 10 │ 0 │ 20 │ first_order │ 3.07e+00 │ 1.91e-05 │ 1 │ 8.43e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 2 │ 0 │ 0 │ 1 │ 0 │ 0 │ │ 1 │ 2 │ 0 │ │
│ cannoles │ 85 │ mgh01 │ 2 │ 0 │ 2 │ first_order │ 2.03e-11 │ 1.60e-05 │ 3 │ 3.18e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 6 │ 0 │ │
│ cannoles │ 86 │ tp201 │ 2 │ 0 │ 2 │ first_order │ 2.06e-10 │ 5.96e-06 │ 1 │ 1.82e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 2 │ 0 │ 0 │ 1 │ 0 │ 0 │ │ 1 │ 2 │ 0 │ │
│ cannoles │ 87 │ tp202 │ 2 │ 0 │ 2 │ first_order │ 2.45e+01 │ 2.19e-05 │ 5 │ 2.83e-03 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 6 │ 6 │ 0 │ 0 │ 5 │ 0 │ 0 │ │ 5 │ 5 │ 0 │ │
│ cannoles │ 88 │ tp203 │ 2 │ 0 │ 3 │ first_order │ 3.06e-15 │ 2.60e-05 │ 5 │ 1.31e-08 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 6 │ 6 │ 0 │ 0 │ 5 │ 0 │ 0 │ │ 5 │ 5 │ 0 │ │
│ cannoles │ 89 │ tp204 │ 2 │ 0 │ 3 │ first_order │ 9.18e-02 │ 2.69e-05 │ 4 │ 9.36e-07 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 5 │ 5 │ 0 │ 0 │ 4 │ 0 │ 0 │ │ 4 │ 4 │ 0 │ │
│ cannoles │ 90 │ tp205 │ 2 │ 0 │ 3 │ first_order │ 2.31e-11 │ 3.39e-05 │ 7 │ 4.53e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 8 │ 8 │ 0 │ 0 │ 7 │ 0 │ 0 │ │ 7 │ 12 │ 0 │ │
│ cannoles │ 91 │ tp206 │ 2 │ 0 │ 2 │ first_order │ 7.14e-08 │ 1.31e-05 │ 2 │ 9.68e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 3 │ 3 │ 0 │ 0 │ 2 │ 0 │ 0 │ │ 2 │ 4 │ 0 │ │
│ cannoles │ 92 │ tp207 │ 2 │ 0 │ 2 │ first_order │ 1.27e-12 │ 1.41e-05 │ 3 │ 7.14e-07 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 6 │ 0 │ │
│ cannoles │ 93 │ tp208 │ 2 │ 0 │ 2 │ first_order │ 2.03e-11 │ 1.38e-05 │ 3 │ 3.18e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 6 │ 0 │ │
│ cannoles │ 94 │ tp209 │ 2 │ 0 │ 2 │ first_order │ 2.12e-11 │ 1.41e-05 │ 3 │ 3.26e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 6 │ 0 │ │
│ cannoles │ 95 │ tp210 │ 2 │ 0 │ 2 │ first_order │ 2.42e+00 │ 1.00e-05 │ 1 │ 2.20e+00 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 2 │ 0 │ 0 │ 1 │ 0 │ 0 │ │ 1 │ 2 │ 0 │ │
│ cannoles │ 96 │ tp211 │ 2 │ 0 │ 2 │ first_order │ 9.83e-11 │ 1.50e-05 │ 3 │ 4.55e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 6 │ 0 │ │
│ cannoles │ 97 │ tp212 │ 2 │ 0 │ 2 │ first_order │ 1.63e-14 │ 3.31e-05 │ 10 │ 3.49e-07 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 11 │ 11 │ 0 │ 0 │ 10 │ 0 │ 0 │ │ 10 │ 14 │ 0 │ │
│ cannoles │ 98 │ tp213 │ 2 │ 0 │ 1 │ first_order │ 1.60e+00 │ 2.69e-05 │ 10 │ 2.60e+01 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 11 │ 11 │ 0 │ 0 │ 10 │ 0 │ 0 │ │ 10 │ 10 │ 0 │ │
│ cannoles │ 107 │ tp240 │ 3 │ 0 │ 3 │ first_order │ 9.31e-08 │ 8.82e-06 │ 1 │ 6.06e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 2 │ 0 │ 0 │ 1 │ 0 │ 0 │ │ 1 │ 2 │ 0 │ │
│ cannoles │ 108 │ tp241 │ 3 │ 0 │ 5 │ first_order │ 1.47e-06 │ 9.70e-05 │ 16 │ 5.33e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 19 │ 18 │ 0 │ 0 │ 16 │ 0 │ 0 │ │ 16 │ 32 │ 1 │ │
│ cannoles │ 111 │ tp245 │ 3 │ 0 │ 10 │ first_order │ 1.81e-07 │ 1.86e-04 │ 15 │ 5.46e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 16 │ 16 │ 0 │ 0 │ 15 │ 0 │ 0 │ │ 15 │ 23 │ 0 │ │
│ cannoles │ 112 │ tp246 │ 3 │ 0 │ 3 │ first_order │ 4.63e-14 │ 1.81e-05 │ 3 │ 2.15e-07 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 6 │ 0 │ │
│ cannoles │ 116 │ tp256 │ 4 │ 0 │ 4 │ first_order │ 4.03e-06 │ 3.60e-05 │ 9 │ 3.31e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 10 │ 10 │ 0 │ 0 │ 9 │ 0 │ 0 │ │ 9 │ 9 │ 0 │ │
│ cannoles │ 117 │ tp260 │ 4 │ 0 │ 7 │ first_order │ 3.94e+00 │ 2.60e-05 │ 6 │ 2.80e-02 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 7 │ 7 │ 0 │ 0 │ 6 │ 0 │ 0 │ │ 6 │ 6 │ 0 │ │
│ cannoles │ 118 │ tp261 │ 4 │ 0 │ 5 │ first_order │ 1.29e-11 │ 6.70e-05 │ 14 │ 2.11e-08 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 15 │ 15 │ 0 │ 0 │ 14 │ 0 │ 0 │ │ 14 │ 20 │ 0 │ │
│ cannoles │ 120 │ tp266 │ 5 │ 0 │ 10 │ first_order │ 5.00e-01 │ 2.87e-04 │ 6 │ 6.10e-09 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 7 │ 7 │ 0 │ 0 │ 6 │ 0 │ 0 │ │ 6 │ 10 │ 0 │ │
│ cannoles │ 121 │ tp267 │ 5 │ 0 │ 11 │ first_order │ 2.71e-02 │ 7.54e-04 │ 38 │ 4.65e-08 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 43 │ 41 │ 0 │ 0 │ 38 │ 0 │ 0 │ │ 38 │ 80 │ 2 │ │
│ cannoles │ 124 │ tp271 │ 6 │ 0 │ 6 │ first_order │ 8.98e-13 │ 7.87e-06 │ 1 │ 6.06e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 2 │ 0 │ 0 │ 1 │ 0 │ 0 │ │ 1 │ 2 │ 0 │ │
│ cannoles │ 125 │ tp272 │ 6 │ 0 │ 13 │ first_order │ 7.49e-14 │ 1.62e-03 │ 63 │ 1.93e-11 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 64 │ 64 │ 0 │ 0 │ 63 │ 0 │ 0 │ │ 63 │ 149 │ 0 │ │
│ cannoles │ 126 │ tp273 │ 6 │ 0 │ 7 │ first_order │ 2.63e-05 │ 6.01e-05 │ 8 │ 3.97e-02 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 9 │ 9 │ 0 │ 0 │ 8 │ 0 │ 0 │ │ 8 │ 8 │ 0 │ │
│ cannoles │ 127 │ tp282 │ 10 │ 0 │ 11 │ first_order │ 9.55e-11 │ 2.92e-04 │ 30 │ 5.33e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 45 │ 36 │ 0 │ 0 │ 33 │ 0 │ 0 │ │ 33 │ 69 │ 9 │ │
│ cannoles │ 128 │ tp286 │ 20 │ 0 │ 20 │ first_order │ 2.03e-10 │ 3.98e-05 │ 3 │ 3.18e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 6 │ 0 │ │
│ cannoles │ 129 │ tp288 │ 20 │ 0 │ 20 │ first_order │ 2.02e-05 │ 9.42e-05 │ 9 │ 3.31e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 10 │ 10 │ 0 │ 0 │ 9 │ 0 │ 0 │ │ 9 │ 9 │ 0 │ │
│ cannoles │ 130 │ tp290 │ 2 │ 0 │ 1 │ first_order │ 3.29e-08 │ 2.60e-05 │ 10 │ 5.86e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 11 │ 11 │ 0 │ 0 │ 10 │ 0 │ 0 │ │ 10 │ 10 │ 0 │ │
│ cannoles │ 131 │ tp291 │ 10 │ 0 │ 1 │ first_order │ 7.57e-05 │ 4.20e-05 │ 9 │ 2.28e-03 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 10 │ 10 │ 0 │ 0 │ 9 │ 0 │ 0 │ │ 9 │ 9 │ 0 │ │
│ cannoles │ 132 │ tp292 │ 30 │ 0 │ 1 │ first_order │ 3.71e-02 │ 7.61e-05 │ 8 │ 2.45e-01 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 9 │ 9 │ 0 │ 0 │ 8 │ 0 │ 0 │ │ 8 │ 8 │ 0 │ │
│ cannoles │ 133 │ tp293 │ 50 │ 0 │ 1 │ first_order │ 2.79e-01 │ 1.10e-04 │ 8 │ 1.12e+00 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 9 │ 9 │ 0 │ 0 │ 8 │ 0 │ 0 │ │ 8 │ 8 │ 0 │ │
│ cannoles │ 134 │ tp294 │ 6 │ 0 │ 10 │ first_order │ 1.99e+00 │ 7.39e-05 │ 10 │ 3.14e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 14 │ 12 │ 0 │ 0 │ 10 │ 0 │ 0 │ │ 10 │ 28 │ 2 │ │
│ cannoles │ 135 │ tp295 │ 10 │ 0 │ 18 │ first_order │ 1.99e+00 │ 1.94e-04 │ 21 │ 4.17e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 22 │ 22 │ 0 │ 0 │ 21 │ 0 │ 0 │ │ 21 │ 56 │ 0 │ │
│ cannoles │ 136 │ tp296 │ 16 │ 0 │ 30 │ first_order │ 1.99e+00 │ 3.78e-04 │ 27 │ 2.97e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 28 │ 28 │ 0 │ 0 │ 27 │ 0 │ 0 │ │ 27 │ 71 │ 0 │ │
│ cannoles │ 137 │ tp297 │ 30 │ 0 │ 58 │ first_order │ 1.90e-08 │ 9.72e-04 │ 36 │ 1.42e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 52 │ 42 │ 0 │ 0 │ 37 │ 0 │ 0 │ │ 37 │ 94 │ 10 │ │
│ cannoles │ 138 │ tp298 │ 50 │ 0 │ 98 │ first_order │ 4.10e-05 │ 2.64e-03 │ 55 │ 1.27e-03 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 80 │ 64 │ 0 │ 0 │ 58 │ 0 │ 0 │ │ 58 │ 150 │ 16 │ │
│ cannoles │ 139 │ tp299 │ 100 │ 0 │ 198 │ first_order │ 1.09e-09 │ 1.58e-02 │ 108 │ 4.86e-07 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 310 │ 211 │ 0 │ 0 │ 167 │ 0 │ 0 │ │ 167 │ 386 │ 99 │ │
│ cannoles │ 140 │ tp303 │ 20 │ 0 │ 22 │ first_order │ 1.65e-07 │ 3.09e-04 │ 9 │ 5.75e-03 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 10 │ 10 │ 0 │ 0 │ 9 │ 0 │ 0 │ │ 9 │ 9 │ 0 │ │
│ cannoles │ 141 │ tp304 │ 50 │ 0 │ 52 │ first_order │ 3.26e+00 │ 1.49e-03 │ 8 │ 1.18e+02 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 9 │ 9 │ 0 │ 0 │ 8 │ 0 │ 0 │ │ 8 │ 8 │ 0 │ │
│ cannoles │ 142 │ tp305 │ 100 │ 0 │ 102 │ first_order │ 7.05e+02 │ 7.12e-03 │ 8 │ 1.41e+04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 9 │ 9 │ 0 │ 0 │ 8 │ 0 │ 0 │ │ 8 │ 8 │ 0 │ │
│ cannoles │ 144 │ tp308 │ 2 │ 0 │ 3 │ first_order │ 3.87e-01 │ 3.60e-05 │ 7 │ 1.82e-07 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 8 │ 8 │ 0 │ 0 │ 7 │ 0 │ 0 │ │ 7 │ 7 │ 0 │ │
│ cannoles │ 145 │ tp311 │ 2 │ 0 │ 2 │ first_order │ 1.37e-12 │ 2.69e-05 │ 7 │ 3.56e-06 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 8 │ 8 │ 0 │ 0 │ 7 │ 0 │ 0 │ │ 7 │ 15 │ 0 │ │
│ cannoles │ 146 │ tp312 │ 2 │ 0 │ 2 │ first_order │ 5.99e+00 │ 1.79e-05 │ 3 │ 1.67e+00 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 4 │ 4 │ 0 │ 0 │ 3 │ 0 │ 0 │ │ 3 │ 3 │ 0 │ │
│ cannoles │ 158 │ tp333 │ 3 │ 0 │ 8 │ first_order │ 2.16e-02 │ 6.01e-05 │ 5 │ 6.65e-03 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 6 │ 6 │ 0 │ 0 │ 5 │ 0 │ 0 │ │ 5 │ 8 │ 0 │ │
│ cannoles │ 159 │ tp334 │ 3 │ 0 │ 15 │ first_order │ 4.66e-01 │ 1.51e-04 │ 11 │ 1.24e-04 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 12 │ 12 │ 0 │ 0 │ 11 │ 0 │ 0 │ │ 11 │ 18 │ 0 │ │
│ cannoles │ 163 │ tp350 │ 4 │ 0 │ 11 │ first_order │ 5.20e-02 │ 1.16e-03 │ 57 │ 1.92e-08 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 83 │ 69 │ 0 │ 0 │ 63 │ 0 │ 0 │ │ 63 │ 140 │ 14 │ │
│ cannoles │ 164 │ tp351 │ 4 │ 0 │ 7 │ first_order │ 1.59e+02 │ 8.39e-05 │ 5 │ 1.43e-02 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 6 │ 6 │ 0 │ 0 │ 5 │ 0 │ 0 │ │ 5 │ 10 │ 0 │ │
│ cannoles │ 165 │ tp352 │ 4 │ 0 │ 40 │ first_order │ 4.52e+02 │ 1.29e-05 │ 1 │ 4.55e-13 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 2 │ 2 │ 0 │ 0 │ 1 │ 0 │ 0 │ │ 1 │ 1 │ 0 │ │
│ cannoles │ 169 │ tp370 │ 6 │ 0 │ 31 │ first_order │ 1.14e-03 │ 1.23e-03 │ 6 │ 2.13e-05 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 7 │ 7 │ 0 │ 0 │ 6 │ 0 │ 0 │ │ 6 │ 6 │ 0 │ │
│ cannoles │ 170 │ tp371 │ 9 │ 0 │ 31 │ first_order │ 7.09e-07 │ 2.13e-03 │ 6 │ 1.99e-07 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 7 │ 7 │ 0 │ 0 │ 6 │ 0 │ 0 │ │ 6 │ 6 │ 0 │ │
│ cannoles │ 173 │ tp379 │ 11 │ 0 │ 65 │ first_order │ 2.01e-02 │ 3.45e-03 │ 16 │ 1.95e-08 │ 0.00e+00 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 24 │ 19 │ 0 │ 0 │ 16 │ 0 │ 0 │ │ 16 │ 26 │ 5 │ │
└─────────────┴────────┴───────┴────────┴────────┴────────┴─────────────┴───────────┴──────────────┴────────┴───────────┴─────────────┴───────────┴────────────┴────────────┴────────────────┴────────────────┴────────────┴─────────────┴───────────┴───────────────┴───────────────┴─────────────┴─────────────────┴─────────────────┴──────────────┴──────────────────┴──────────────────┴────────────┴─────────────┴─────────────┴──────────────┴────────────────┴────────────────────┴──────────────────────┴───────────────────────┴─────────────────────┴──────────────────────┴──────────────────────┴───────────┴───────────┴────────┴────────┴──────────────┘
or it can also be used to make performance profiles.
using Plots
gr()
legend = Dict(
:neval_obj => "number of f evals",
:neval_residual => "number of F evals",
:neval_cons => "number of c evals",
:neval_grad => "number of ∇f evals",
:neval_jac => "number of ∇c evals",
:neval_jprod => "number of ∇c*v evals",
:neval_jtprod => "number of ∇cᵀ*v evals",
:neval_hess => "number of ∇²f evals",
:elapsed_time => "elapsed time"
)
perf_title(col) = "Performance profile on NLSProblems w.r.t. $(string(legend[col]))"
styles = [:solid, :dash, :dot, :dashdot]
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_residual, stats) # with respect to number of residual function evaluations