Created
March 28, 2020 23:56
-
-
Save dpo/4c1c74974a59d58ce91c8a513ebdbc54 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
enable_autocomplete_brackets(false) # do this if using OhMyRepl and Tmux | |
using Pkg | |
Pkg.activate("dev-jso-solvers") | |
Pkg.develop(PackageSpec(url="../LinearOperators.jl")) | |
Pkg.develop(PackageSpec(url="../NLPModels.jl")) | |
Pkg.develop(PackageSpec(url="../NLPModelsJuMP.jl")) | |
Pkg.develop(PackageSpec(url="../SolverTools.jl")) | |
# Pkg.develop(PackageSpec(url="../OptimizationProblems.jl")) | |
Pkg.develop(PackageSpec(url=".")) | |
Pkg.add("OptimizationProblems") | |
Pkg.add("SolverBenchmark") | |
Pkg.add("DataFrames") | |
using NLPModels, JSOSolvers, NLPModelsJuMP, OptimizationProblems | |
using SolverTools, SolverBenchmark, DataFrames | |
probs = (MathOptNLPModel(eval(prob)(), name=string(prob)) for prob ∈ names(OptimizationProblems) if prob != :OptimizationProblems) | |
solvers = Dict{Symbol,Function}( | |
:trunk => p -> trunk(p, max_eval=1000), | |
:trunklsr1 => p -> trunk(LSR1Model(p, scaling=true), max_eval=3000), | |
:trunklbfgs => p -> trunk(LBFGSModel(p, scaling=true), max_eval=3000), | |
) | |
stats = bmark_solvers(solvers, probs, skipif=p -> (p.meta.nvar < 100 || p.meta.ncon > 0)) | |
Pkg.add("Plots") | |
using Plots | |
solved(df) = df.status .== :first_order | |
costnames = ["elapsed time", | |
"objective evals", | |
"gradient evals", | |
"hessian-vector products", | |
"obj + grad + hprod"] | |
costs = [df -> .!solved(df) .* Inf .+ df.elapsed_time, | |
df -> .!solved(df) .* Inf .+ df.neval_obj, | |
df -> .!solved(df) .* Inf .+ df.neval_grad, | |
df -> .!solved(df) .* Inf .+ df.neval_hprod, | |
df -> .!solved(df) .* Inf .+ df.neval_obj .+ df.neval_grad .+ df.neval_hprod] | |
profile_solvers(stats, costs, costnames) | |
savefig("trunkqn.png") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment