Closed
Description
I am trying to update OptimizationProblems.jl with the new JuMP interface, and run into the following issue for some problems:
using ADNLPModels, JuMP, NLPModels, NLPModelsJuMP
default_nvar = 100
T = Float64
function ju_hs100(args...; kwargs...)
nlp = Model()
x0 = [1, 2, 0, 4, 0, 1, 1]
@variable(nlp, x[i = 1:7], start = x0[i])
@constraint(nlp, 282 - 7 * x[1] - 3 * x[2] - 10 * x[3]^2 - x[4] + x[5] ≥ 0)
@constraint(nlp, 196 - 23 * x[1] - x[2]^2 - 6 * x[6]^2 + 8 * x[7] ≥ 0)
@constraint(nlp, 127 - 2 * x[1]^2 - 3 * x[2]^4 - x[3] - 4 * x[4]^2 - 5 * x[5] ≥ 0)
@constraint(nlp, -4 * x[1]^2 - x[2]^2 + 3 * x[1] * x[2] - 2 * x[3]^2 - 5 * x[6] + 11 * x[7] ≥ 0)
@objective(
nlp,
Min,
(x[1] - 10)^2 +
5 * (x[2] - 12)^2 +
x[3]^4 +
3 * (x[4] - 11)^2 +
10 * x[5]^6 +
7 * x[6]^2 +
x[7]^4 - 4 * x[6] * x[7] - 10 * x[6] - 8 * x[7]
)
return nlp
end
function ad_hs100(; n::Int = default_nvar, type::Type{T} = Float64, kwargs...) where {T}
function f(x)
n = length(x)
return (x[1] - 10)^2 +
5 * (x[2] - 12)^2 +
x[3]^4 +
3 * (x[4] - 11)^2 +
10 * x[5]^6 +
7 * x[6]^2 +
x[7]^4 - 4 * x[6] * x[7] - 10 * x[6] - 8 * x[7]
end
x0 = T[1, 2, 0, 4, 0, 1, 1]
function c!(cx, x)
cx[1] = 282 - 7 * x[1] - 3 * x[2] - 10 * x[3]^2 - x[4] + x[5]
cx[2] = 196 - 23 * x[1] - x[2]^2 - 6 * x[6]^2 + 8 * x[7]
cx[3] = 127 - 2 * x[1]^2 - 3 * x[2]^4 - x[3] - 4 * x[4]^2 - 5 * x[5]
cx[4] = -4 * x[1]^2 - x[2]^2 + 3 * x[1] * x[2] - 2 * x[3]^2 - 5 * x[6] + 11 * x[7]
return cx
end
lcon = T[-282.0, -196.0, 0.0, 0.0]
ucon = T(Inf) * ones(T, 4)
return ADNLPModels.ADNLPModel!(f, x0, c!, lcon, ucon, name = "hs100"; kwargs...)
end
nlp_jump = MathOptNLPModel(ju_hs100())
nlp_ad = ad_hs100()
using Test, LinearAlgebra
@test nlp_jump.meta.lcon == nlp_ad.meta.lcon
@test nlp_jump.meta.ucon == nlp_ad.meta.ucon
x1 = rand(7)
@test norm(cons(nlp_jump, x1) - cons(nlp_ad, x1), Inf) # doesn't work
#=
julia> cons(nlp_jump, x1)
4-element Vector{Float64}:
-11.9220041710068
-0.969071724901412
3.424652495769024
119.9921154237291
julia> cons(nlp_ad, x1)
4-element Vector{Float64}:
270.0779958289932
195.03092827509857
119.9921154237291
3.4246524957690236
=#
Any idea @amontoison ?
Metadata
Metadata
Assignees
Labels
No labels