Skip to content

Commit

Permalink
merge commit 16 for PR R2 DH #100
Browse files Browse the repository at this point in the history
  • Loading branch information
MohamedLaghdafHABIBOULLAH committed Mar 8, 2024
1 parent 8a70702 commit 88e1e80
Show file tree
Hide file tree
Showing 12 changed files with 632 additions and 22 deletions.
84 changes: 82 additions & 2 deletions benchmarks/tables/bpdn-constr-table.jl
Original file line number Diff line number Diff line change
Expand Up @@ -89,17 +89,80 @@ options6_nrTR = ROSolverOptions(
reduce_TR = false,
)

solvers = [:R2, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TR, :TR, :TR, :TR, :TR, :TR, :TR]
options7 = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false
)

options7_nrTR = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false,
reduce_TR = false,
)

options8 = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false,
wolk = true
)

options8_nrTR = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false,
wolk = true,
reduce_TR = false,
)

solvers = [:R2, :R2DH, :R2DH, :R2DH, :R2DH, :R2DH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR]
subsolvers =
[:None, :None, :None, :None, :None, :None, :None, :R2, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH]
[:None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :R2, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :R2DH, :R2DH, :R2DH]
solver_options = [
options,
options,
options5,
options6,
options7,
options8,
options,
options_nrTR,
options5,
options5_nrTR,
options6,
options6_nrTR,
options7,
options7_nrTR,
options8,
options8_nrTR,
options,
options,
options,
options,
options,
options,
options,
options,
options,
Expand All @@ -110,6 +173,15 @@ solver_options = [
options,
]
subsolver_options = [
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
Expand All @@ -124,7 +196,15 @@ subsolver_options = [
options3_nrTR,
options4,
options4_nrTR,
options7,
options7_nrTR,
options8,
options8_nrTR,
options8,
options7,
options,
] # n'importe lequel si subsolver = :None

stats = benchmark_table(
f,
1:(f.meta.nvar),
Expand Down
83 changes: 81 additions & 2 deletions benchmarks/tables/bpdn-table.jl
Original file line number Diff line number Diff line change
Expand Up @@ -90,17 +90,80 @@ options6_nrTR = ROSolverOptions(
reduce_TR = false,
)

solvers = [:R2, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TR, :TR, :TR, :TR, :TR, :TR, :TR]
options7 = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false
)

options7_nrTR = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false,
reduce_TR = false,
)

options8 = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false,
wolk = true
)

options8_nrTR = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false,
wolk = true,
reduce_TR = false,
)

solvers = [:R2, :R2DH, :R2DH, :R2DH, :R2DH, :R2DH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR]
subsolvers =
[:None, :None, :None, :None, :None, :None, :None, :R2, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH]
[:None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :R2, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :R2DH, :R2DH, :R2DH]
solver_options = [
options,
options,
options5,
options6,
options7,
options8,
options,
options_nrTR,
options5,
options5_nrTR,
options6,
options6_nrTR,
options7,
options7_nrTR,
options8,
options8_nrTR,
options,
options,
options,
options,
options,
options,
options,
options,
options,
Expand All @@ -111,6 +174,15 @@ solver_options = [
options,
]
subsolver_options = [
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
Expand All @@ -125,6 +197,13 @@ subsolver_options = [
options3_nrTR,
options4,
options4_nrTR,
options7,
options7_nrTR,
options8,
options8_nrTR,
options8,
options7,
options,
] # n'importe lequel si subsolver = :None

stats = benchmark_table(
Expand Down
82 changes: 78 additions & 4 deletions benchmarks/tables/nnmf-table.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ random_seed = 1234
Random.seed!(random_seed)
m, n, k = 100, 50, 5
model, nls_model, A, selected = nnmf_model(m, n, k)
f = LSR1Model(model)
f = LBFGSModel(model)
λ = 1.0e-1 # norm(grad(model, rand(model.meta.nvar)), Inf) / 100
h = NormL0(λ)
ν = 1.0
ν = 1.0e-3
ϵ = 1.0e-5
ϵi = 1.0e-3
ϵri = 1.0e-6
Expand Down Expand Up @@ -85,18 +85,78 @@ options6_nrTR = ROSolverOptions(
psb = false,
reduce_TR = false,
)
options7 = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false
)

options7_nrTR = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false,
reduce_TR = false,
)

options8 = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false,
wolk = true
)

solvers = [:R2, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TR, :TR, :TR, :TR, :TR, :TR, :TR]
options8_nrTR = ROSolverOptions(
ν = ν,
ϵa = ϵ,
ϵr = ϵ,
verbose = verbose,
maxIter = maxIter,
spectral = false,
psb = false,
andrei = false,
wolk = true,
reduce_TR = false,
)

solvers = [:R2, :R2DH, :R2DH, :R2DH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR, :TR]
subsolvers =
[:None, :None, :None, :None, :None, :None, :None, :R2, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH]
[:None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :None, :R2, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :TRDH, :R2DH, :R2DH, :R2DH]
solver_options = [
options,
options,
options7,
options8,
options,
options_nrTR,
options5,
options5_nrTR,
options6,
options6_nrTR,
options7,
options7_nrTR,
options8,
options8_nrTR,
options,
options,
options,
options,
options,
options,
options,
options,
options,
Expand All @@ -116,11 +176,25 @@ subsolver_options = [
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2,
options2_nrTR,
options3,
options3_nrTR,
options4,
options4_nrTR,
options7,
options7_nrTR,
options8,
options8_nrTR,
options8,
options7,
options,
] # n'importe lequel si subsolver = :None
subset = 1:length(solvers)

Expand Down
15 changes: 9 additions & 6 deletions benchmarks/tables/regulopt-tables.jl
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,14 @@ function options_str(
subsolver_options::ROSolverOptions,
subsolver::Symbol,
)
if solver == :TRDH
out_str = !options.spectral ? (options.psb ? "-PSB" : "-Andrei") : "-Spec"
if solver [:R2DH, :TRDH]
out_str = !options.spectral ? (options.psb ? "-PSB" : (options.andrei ? "-Andrei" : (options.wolk ? "-Wolk" : "-DBFGS"))) : "-Spec"
out_str = (options.reduce_TR) ? out_str : string(out_str, "-noredTR")
elseif solver == :TR && subsolver == :TRDH
out_str = !subsolver_options.spectral ? (subsolver_options.psb ? "-PSB" : "-Andrei") : "-Spec"
elseif solver == :TR && subsolver [:R2DH, :TRDH]
out_str = !subsolver_options.spectral ? (subsolver_options.psb ? "-PSB" : (subsolver_options.andrei ? "-Andrei" : (subsolver_options.wolk ? "-Wolk" : "-DBFGS"))) : "-Spec"
out_str = (subsolver_options.reduce_TR) ? out_str : string(out_str, "-noredTR")
elseif solver == :R2N && subsolver [:R2DH, :TRDH]
out_str = !subsolver_options.spectral ? (subsolver_options.psb ? "-PSB" : (subsolver_options.andrei ? "-Andrei" : (subsolver_options.wolk ? "-Wolk" : "-DBFGS"))) : "-Spec"
out_str = (subsolver_options.reduce_TR) ? out_str : string(out_str, "-noredTR")
else
out_str = ""
Expand All @@ -38,7 +41,7 @@ grad_evals(nls::AbstractNLSModel) = neval_jtprod_residual(nls) + neval_jprod_res
obj_evals(nlp::AbstractNLPModel) = neval_obj(nlp)
obj_evals(nls::AbstractNLSModel) = neval_residual(nls)
function nb_prox_evals(stats, solver::Symbol)
if solver [:TR, :R2, :TRDH]
if solver [:TR, :R2, :TRDH, :R2DH, :R2N]
prox_evals = sum(stats.solver_specific[:SubsolverCounter])
else
error("not implemented")
Expand Down Expand Up @@ -202,7 +205,7 @@ function benchmark_table(
),
)
else
pretty_table(data; header = header, title = title, formatters = (print_formats,))
pretty_table(data; header = header, title = title, formatters = (print_formats,), display_size = (-1,-1))
end
return solver_names, solver_stats
end
Expand Down
Loading

0 comments on commit 88e1e80

Please sign in to comment.