Skip to content

Commit

Permalink
Merge pull request #544 from SebastianM-C/bfgs
Browse files Browse the repository at this point in the history
map `maxiters` to `outer_iterations`
  • Loading branch information
Vaibhavdixit02 authored Sep 27, 2023
2 parents 09cc1e7 + 073f507 commit ff678ed
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
18 changes: 17 additions & 1 deletion lib/OptimizationOptimJL/src/OptimizationOptimJL.jl
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ function __map_optimizer_args(cache::OptimizationCache,
Optim.SAMIN, Optim.ConstrainedOptimizer};
callback = nothing,
maxiters::Union{Number, Nothing} = nothing,
local_maxiters::Union{Number, Nothing} = nothing,
maxtime::Union{Number, Nothing} = nothing,
abstol::Union{Number, Nothing} = nothing,
reltol::Union{Number, Nothing} = nothing,
Expand All @@ -36,7 +37,22 @@ function __map_optimizer_args(cache::OptimizationCache,
end

if !isnothing(maxiters)
mapped_args = (; mapped_args..., iterations = maxiters)
if opt isa Optim.Fminbox
if !isnothing(local_maxiters)
mapped_args = (;
mapped_args...,
outer_iterations = maxiters,
iterations = local_maxiters)
else
mapped_args = (; mapped_args..., outer_iterations = maxiters)
end
else
mapped_args = (; mapped_args..., iterations = maxiters)
end
end

if !isnothing(local_maxiters) && opt isa Optim.Fminbox
mapped_args = (; mapped_args..., iterations = local_maxiters)
end

if !isnothing(maxtime)
Expand Down
9 changes: 9 additions & 0 deletions lib/OptimizationOptimJL/test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,15 @@ using Test
sol = solve(prob, Optim.KrylovTrustRegion())
@test 10 * sol.objective < l1

sol = solve(prob, Optim.BFGS(), maxiters = 1)
@test sol.original.iterations == 1

sol = solve(prob, Optim.BFGS(), maxiters = 1, local_maxiters = 2)
@test sol.original.iterations == 1

sol = solve(prob, Optim.BFGS(), local_maxiters = 2)
@test sol.original.iterations > 2

cons = (res, x, p) -> res .= [x[1]^2 + x[2]^2]
optprob = OptimizationFunction(rosenbrock, Optimization.AutoModelingToolkit();
cons = cons)
Expand Down

0 comments on commit ff678ed

Please sign in to comment.