Open blegat opened 8 months ago
Some MOI unit tests in https://github.com/JuliaNLSolvers/Optim.jl/blob/master/test/MOI_wrapper.jl are failing because the initial point is not an interior point. For instance:
import Optim import MathOptInterface as MOI model = MOI.instantiate(Optim.Optimizer, with_cache_type = Float64) config = MOI.Test.Config(optimal_status = MOI.LOCALLY_SOLVED) MOI.Test.test_nonlinear_expression_hs071(model, config)
gives
┌ Warning: Initial guess is not an interior point └ @ Optim ~/.julia/dev/Optim/src/multivariate/solvers/constrained/ipnewton/ipnewton.jl:116 Stacktrace: [1] initial_state(method::Optim.IPNewton{typeof(Optim.backtrack_constrained_grad), Symbol}, options::Optim.Options{Float64, Nothing}, d::NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}, constraints::NLSolversBase.TwiceDifferentiableConstraints{Optim.var"#c!#160"{MathOptInterface.Nonlinear.Evaluator{MathOptInterface.Nonlinear.ReverseAD.NLPEvaluator}}, Optim.var"#jacobian!#161"{Float64, Vector{Float64}, Vector{Tuple{Int64, Int64}}, MathOptInterface.Nonlinear.Evaluator{MathOptInterface.Nonlinear.ReverseAD.NLPEvaluator}}, Optim.var"#con_hessian!#162"{Float64, MathOptInterface.Nonlinear.Evaluator{MathOptInterface.Nonlinear.ReverseAD.NLPEvaluator}}, Float64}, initial_x::Vector{Float64}) @ Optim ~/.julia/dev/Optim/src/multivariate/solvers/constrained/ipnewton/ipnewton.jl:117 [2] optimize(d::NLSolversBase.TwiceDifferentiable{Float64, Vector{Float64}, Matrix{Float64}, Vector{Float64}}, constraints::NLSolversBase.TwiceDifferentiableConstraints{Optim.var"#c!#160"{MathOptInterface.Nonlinear.Evaluator{MathOptInterface.Nonlinear.ReverseAD.NLPEvaluator}}, Optim.var"#jacobian!#161"{Float64, Vector{Float64}, Vector{Tuple{Int64, Int64}}, MathOptInterface.Nonlinear.Evaluator{MathOptInterface.Nonlinear.ReverseAD.NLPEvaluator}}, Optim.var"#con_hessian!#162"{Float64, MathOptInterface.Nonlinear.Evaluator{MathOptInterface.Nonlinear.ReverseAD.NLPEvaluator}}, Float64}, initial_x::Vector{Float64}, method::Optim.IPNewton{typeof(Optim.backtrack_constrained_grad), Symbol}, options::Optim.Options{Float64, Nothing}) @ Optim ~/.julia/dev/Optim/src/multivariate/solvers/constrained/ipnewton/interior.jl:229 [3] optimize!(model::Optim.Optimizer{Float64}) @ Optim ~/.julia/dev/Optim/src/MOI_wrapper.jl:326 [4] optimize!(dest::Nothing, src::MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}) @ MathOptInterface ~/.julia/packages/MathOptInterface/DDWnF/src/MathOptInterface.jl:85 [inlined] [5] optimize!(m::MathOptInterface.Utilities.CachingOptimizer{Optim.Optimizer{Float64}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}) @ MathOptInterface.Utilities ~/.julia/packages/MathOptInterface/DDWnF/src/Utilities/cachingoptimizer.jl:316 [6] test_nonlinear_expression_hs071(model::MathOptInterface.Utilities.CachingOptimizer{Optim.Optimizer{Float64}, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}, config::MathOptInterface.Test.Config{Float64}) @ MathOptInterface.Test ~/.julia/packages/MathOptInterface/DDWnF/src/Test/test_nonlinear.jl:1143
Indeed, the initial points are on the boundary: https://github.com/jump-dev/MathOptInterface.jl/blob/10d8edc9c99ebdb3e6521454b9202617f8e2e166/src/Test/test_nonlinear.jl#L309-L311 Could that be worked around easily ?
Does it stop there? I'll have to try it out to come up with a solution.
Some MOI unit tests in https://github.com/JuliaNLSolvers/Optim.jl/blob/master/test/MOI_wrapper.jl are failing because the initial point is not an interior point. For instance:
gives
Indeed, the initial points are on the boundary: https://github.com/jump-dev/MathOptInterface.jl/blob/10d8edc9c99ebdb3e6521454b9202617f8e2e166/src/Test/test_nonlinear.jl#L309-L311 Could that be worked around easily ?