Skip to content

Remove OptimizationOptimJL dep? #2712

@penelopeysm

Description

@penelopeysm

Even after the Optim.jl interface is removed (#2635, #2708), we still have a dep on Optim.jl via OptimizationOptimJL.jl. That's because we currently use Optim's solvers as the default solvers:

function default_solver(constraints::ModeEstimationConstraints)
return if has_generic_constraints(constraints)
OptimizationOptimJL.IPNewton()
else
OptimizationOptimJL.LBFGS()
end
end

However, I wonder if this is necessary. Also the hard dep on OptimizationOptimJL causes incompatibilities with other packages, as seen in #2711.

Now, Optimization.jl itself contains some solvers including LBFGS: https://docs.sciml.ai/Optimization/stable/optimization_packages/optimization/ I don't know what loss of functionality switching to this might incur (and I'm very, very rusty on optimization theory), but if we could do it, I think we should because that stays in line with the general philosophy that Optimization.jl provides the interface and you load whichever solver you want.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions