Modify-after-free bug
Hi all,
I'm trying to solve some MISOCP with Pajarito using Hypatia as conic solver and HiGHS as MIP solver, see the attached files.
Weird_HiGHS_error.txt spectral_functions_JuMP.txt
It works for some instances but for others I get a weird error, see error_message.txt .
It seems to me that some HiGHS library files are not found. This also completely crashes my terminal, as in both Ctrl + C as well the ESC don't work.
Additionally, this happens on both my linux as well as my windows computer.
I'm on Julia 1.9.0 and have the most up-to-date HiGHS version.
Thank you for your help!
Spectral functions
# Copied from Hypatia package
# https://github.com/chriscoey/Hypatia.jl/blob/master/examples/spectral_functions_JuMP.jl
#=
Copyright (c) 2018-2022 Chris Coey, Lea Kapelevich, and contributors
This Julia package Hypatia.jl is released under the MIT license; see LICENSE
file in the root directory or at https://github.com/chriscoey/Hypatia.jl
=#
#=
JuMP helpers for constructing extended formulations for vector and matrix
spectral/eigenvalue cones
=#
abstract type SpectralExtender end
# vector spectral formulations
abstract type VecSpecExt <: SpectralExtender end
# vector negative geomean formulations
struct VecNegRtdet <: VecSpecExt end
struct VecNegRtdetEFExp <: VecSpecExt end
struct VecNegRtdetEFPow <: VecSpecExt end
const VecNegRtdetAll = Union{VecNegRtdet, VecNegRtdetEFExp, VecNegRtdetEFPow}
# vector separable spectral primal formulations
struct VecLogCone <: VecSpecExt end
struct VecNegLog <: VecSpecExt end
struct VecNegLogEF <: VecSpecExt end
struct VecNegEntropy <: VecSpecExt end
struct VecNegEntropyEF <: VecSpecExt end
struct VecNegSqrt <: VecSpecExt end
struct VecNegSqrtEF <: VecSpecExt end
struct VecNegPower01 <: VecSpecExt
p::Real
end
struct VecNegPower01EF <: VecSpecExt
p::Real
end
struct VecPower12 <: VecSpecExt
p::Real
end
struct VecPower12EF <: VecSpecExt
p::Real
end
const VecSepSpecPrim =
Union{VecLogCone, VecNegLog, VecNegEntropy, VecNegSqrt, VecNegPower01, VecPower12}
const VecSepSpecPrimEF =
Union{VecNegLogEF, VecNegEntropyEF, VecNegSqrtEF, VecNegPower01EF, VecPower12EF}
const VecSepSpecPrimAll = Union{VecSepSpecPrim, VecSepSpecPrimEF}
# vector separable spectral dual formulations
struct VecNegEntropyConj <: VecSpecExt end
struct VecNegEntropyConjEF <: VecSpecExt end
struct VecNegSqrtConj <: VecSpecExt end
struct VecNegSqrtConjEF <: VecSpecExt end
struct VecNegPower01Conj <: VecSpecExt
p::Real
end
struct VecNegPower01ConjEF <: VecSpecExt
p::Real
end
struct VecPower12Conj <: VecSpecExt
p::Real
end
struct VecPower12ConjEF <: VecSpecExt
p::Real
end
const VecSepSpecDual =
Union{VecNegEntropyConj, VecNegSqrtConj, VecNegPower01Conj, VecPower12Conj}
const VecSepSpecDualEF =
Union{VecNegEntropyConjEF, VecNegSqrtConjEF, VecNegPower01ConjEF, VecPower12ConjEF}
const VecSepSpecDualAll = Union{VecSepSpecDual, VecSepSpecDualEF}
const VecSepSpec = Union{VecSepSpecPrim, VecSepSpecDual}
const VecSepSpecEF = Union{VecSepSpecPrimEF, VecSepSpecDualEF}
# matrix spectral formulations
abstract type MatSpecExt <: SpectralExtender end
# matrix negative geomean formulations
struct MatNegRtdet <: MatSpecExt end
struct MatNegRtdetEFExp <: MatSpecExt end
struct MatNegRtdetEFPow <: MatSpecExt end
const MatNegRtdetAll = Union{MatNegRtdet, MatNegRtdetEFExp, MatNegRtdetEFPow}
# matrix separable spectral primal formulations
struct MatLogdetCone <: MatSpecExt end
struct MatNegLog <: MatSpecExt end
struct MatNegLogEigOrd <: MatSpecExt end
struct MatNegLogDirect <: MatSpecExt end
struct MatNegEntropy <: MatSpecExt end
struct MatNegEntropyEigOrd <: MatSpecExt end
struct MatNegSqrt <: MatSpecExt end
struct MatNegSqrtEigOrd <: MatSpecExt end
struct MatNegPower01 <: MatSpecExt
p::Real
end
struct MatNegPower01EigOrd <: MatSpecExt
p::Real
end
struct MatPower12 <: MatSpecExt
p::Real
end
struct MatPower12EigOrd <: MatSpecExt
p::Real
end
const MatSepSpecPrim =
Union{MatLogdetCone, MatNegLog, MatNegEntropy, MatNegSqrt, MatNegPower01, MatPower12}
const MatSepSpecPrimEF = Union{
MatNegLogEigOrd,
MatNegLogDirect,
MatNegEntropyEigOrd,
MatNegSqrtEigOrd,
MatNegPower01EigOrd,
MatPower12EigOrd,
}
const MatSepSpecPrimAll = Union{MatSepSpecPrim, MatSepSpecPrimEF}
# matrix separable spectral dual formulations
struct MatNegEntropyConj <: MatSpecExt end
struct MatNegEntropyConjEigOrd <: MatSpecExt end
struct MatNegSqrtConj <: MatSpecExt end
struct MatNegSqrtConjEigOrd <: MatSpecExt end
struct MatNegSqrtConjDirect <: MatSpecExt end
struct MatNegPower01Conj <: MatSpecExt
p::Real
end
struct MatNegPower01ConjEigOrd <: MatSpecExt
p::Real
end
struct MatPower12Conj <: MatSpecExt
p::Real
end
struct MatPower12ConjEigOrd <: MatSpecExt
p::Real
end
const MatSepSpecDual =
Union{MatNegEntropyConj, MatNegSqrtConj, MatNegPower01Conj, MatPower12Conj}
const MatSepSpecDualEF = Union{
MatNegEntropyConjEigOrd,
MatNegSqrtConjEigOrd,
MatNegSqrtConjDirect,
MatNegPower01ConjEigOrd,
MatPower12ConjEigOrd,
}
const MatSepSpecDualAll = Union{MatSepSpecDual, MatSepSpecDualEF}
const MatSepSpec = Union{MatSepSpecPrim, MatSepSpecDual}
const MatSepSpecEigOrd = Union{
MatNegLogEigOrd,
MatNegEntropyEigOrd,
MatNegSqrtEigOrd,
MatNegPower01EigOrd,
MatPower12EigOrd,
MatNegEntropyConjEigOrd,
MatNegSqrtConjEigOrd,
MatNegPower01ConjEigOrd,
MatPower12ConjEigOrd,
}
const NegRtdetAll = Union{VecNegRtdetAll, MatNegRtdetAll}
const SepSpecPrimAll = Union{VecSepSpecPrimAll, MatSepSpecPrimAll}
const SepSpecDualAll = Union{VecSepSpecDualAll, MatSepSpecDualAll}
const SepSpecAll = Union{SepSpecPrimAll, SepSpecDualAll}
# helpers
get_vec_ef(::MatNegRtdetEFExp) = VecNegRtdetEFExp()
get_vec_ef(::MatNegRtdetEFPow) = VecNegRtdetEFPow()
get_vec_ef(::MatNegLogEigOrd) = VecNegLogEF()
get_vec_ef(::MatNegEntropyEigOrd) = VecNegEntropyEF()
get_vec_ef(::MatNegSqrtEigOrd) = VecNegSqrtEF()
get_vec_ef(ext::MatNegPower01EigOrd) = VecNegPower01EF(ext.p)
get_vec_ef(ext::MatPower12EigOrd) = VecPower12EF(ext.p)
get_vec_ef(::MatNegEntropyConjEigOrd) = VecNegEntropyConjEF()
get_vec_ef(::MatNegSqrtConjEigOrd) = VecNegSqrtConjEF()
get_vec_ef(ext::MatNegPower01ConjEigOrd) = VecNegPower01ConjEF(ext.p)
get_vec_ef(ext::MatPower12ConjEigOrd) = VecPower12ConjEF(ext.p)
function get_ssf(
::Union{
VecLogCone,
VecNegLog,
VecNegLogEF,
MatLogdetCone,
MatNegLog,
MatNegLogEigOrd,
MatNegLogDirect,
},
)
return Cones.NegLogSSF()
end
function get_ssf(
::Union{
VecNegEntropy,
VecNegEntropyEF,
VecNegEntropyConj,
VecNegEntropyConjEF,
MatNegEntropy,
MatNegEntropyEigOrd,
MatNegEntropyConj,
MatNegEntropyConjEigOrd,
},
)
return Cones.NegEntropySSF()
end
function get_ssf(
::Union{
VecNegSqrt,
VecNegSqrtEF,
VecNegSqrtConj,
VecNegSqrtConjEF,
MatNegSqrt,
MatNegSqrtEigOrd,
MatNegSqrtConj,
MatNegSqrtConjEigOrd,
MatNegSqrtConjDirect,
},
)
return Cones.NegSqrtSSF()
end
function get_ssf(
ext::Union{
VecNegPower01,
VecNegPower01EF,
VecNegPower01Conj,
VecNegPower01ConjEF,
MatNegPower01,
MatNegPower01EigOrd,
MatNegPower01Conj,
MatNegPower01ConjEigOrd,
},
)
return Cones.NegPower01SSF(ext.p)
end
function get_ssf(
ext::Union{
VecPower12,
VecPower12EF,
VecPower12Conj,
VecPower12ConjEF,
MatPower12,
MatPower12EigOrd,
MatPower12Conj,
MatPower12ConjEigOrd,
},
)
return Cones.Power12SSF(ext.p)
end
nat_name(::NegRtdetAll) = "NegRtdet"
get_name_ssf(ext::SepSpecAll) = string(nameof(typeof(get_ssf(ext))))
nat_name(ext::SepSpecPrimAll) = get_name_ssf(ext)
nat_name(ext::SepSpecDualAll) = get_name_ssf(ext) * "Conj"
is_domain_pos(::SpectralExtender) = true
is_domain_pos(ext::SepSpecDualAll) = Cones.h_conj_dom_pos(get_ssf(ext))
get_val(x::Vector, ::NegRtdetAll) = -exp(sum(log, x) / length(x))
get_val(x::Vector, ext::SepSpecPrimAll) = Cones.h_val(x, get_ssf(ext))
get_val(x::Vector, ext::SepSpecDualAll) = Cones.h_conj(x, get_ssf(ext))
function pos_only(x::Vector{T}, minval::T = eps(T)) where {T <: Real}
return [(x_i < minval ? minval : x_i) for x_i in x]
end
#=
homogenizes separable spectral vector/matrix constraints
=#
function add_homog_spectral(
ext::SepSpecAll,
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
# epigraph and perspective variables are swapped if dual cone is used
aff_new = vcat(swap_if_dual(aff[1], 1.0, ext)..., aff[2:end])
add_spectral(ext, d, aff_new, model)
return
end
#=
VecNegRtdet
(u, w > 0) : u > -(Πᵢ wᵢ)^(1/d)
=#
function add_homog_spectral(
::VecNegRtdet,
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
@assert 1 + d == length(aff)
aff_new = vcat(-aff[1], aff[2:end])
JuMP.@constraint(model, aff_new in Hypatia.HypoGeoMeanCone{Float64}(1 + d))
return
end
#=
VecNegRtdetEFExp
negative geometric mean -> exponential cone EF
(u, w > 0) : u > -(Πᵢ wᵢ)^(1/d)
↔ ∃ y > 0, x ∈ ℝᵈ : e'x < 0, (-xᵢ, y - u, wᵢ) ∈ MOI.ExponentialCone, ∀i
=#
function add_homog_spectral(
::VecNegRtdetEFExp,
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
@assert 1 + d == length(aff)
y = JuMP.@variable(model)
JuMP.@constraint(model, y >= 0)
x = JuMP.@variable(model, [1:d])
JuMP.@constraint(model, sum(x) <= 0)
for i in 1:d
aff_new = vcat(-x[i], y - aff[1], aff[1 + i])
JuMP.@constraint(model, aff_new in MOI.ExponentialCone())
end
return
end
#=
VecNegRtdetEFPow
negative geometric mean -> power cone EF
(u, w > 0) : u > -(Πᵢ wᵢ)^(1/d)
↔ ∃ y > 0, x ∈ ℝᵈ⁻² : (w₁, w₂, x₁) ∈ MOI.PowerCone(1/2),
(w[i], x[i-2], x[i-1]) ∈ MOI.PowerCone(1/i), ∀i = 3..d-1
(w[d], x[d-2], y - u) ∈ MOI.PowerCone(1/d)
=#
function add_homog_spectral(
::VecNegRtdetEFPow,
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
@assert d > 2 # EF does not work for d = 2
@assert 1 + d == length(aff)
w = aff[2:end]
y = JuMP.@variable(model)
JuMP.@constraint(model, y >= 0)
x = JuMP.@variable(model, [1:(d - 2)])
JuMP.@constraint(model, vcat(w[1], w[2], x[1]) in MOI.PowerCone(1.0 / 2))
for i in 3:(d - 1)
aff_new_i = vcat(w[i], x[i - 2], x[i - 1])
JuMP.@constraint(model, aff_new_i in MOI.PowerCone(1.0 / i))
end
aff_new = vcat(w[end], x[end], y - aff[1])
JuMP.@constraint(model, aff_new in MOI.PowerCone(1.0 / d))
return
end
#=
VecLogCone
=#
function add_spectral(::VecLogCone, d::Int, aff::Vector{JuMP.AffExpr}, model::JuMP.Model)
@assert 2 + d == length(aff)
aff_new = vcat(-aff[1], aff[2], aff[3:end])
JuMP.@constraint(model, aff_new in Hypatia.HypoPerLogCone{Float64}(length(aff)))
return
end
#=
VecSepSpec
=#
function add_spectral(ext::VecSepSpec, d::Int, aff::Vector{JuMP.AffExpr}, model::JuMP.Model)
@assert 2 + d == length(aff)
is_dual = (ext isa VecSepSpecDualAll)
cone = Hypatia.EpiPerSepSpectralCone{Float64}(
get_ssf(ext),
Cones.VectorCSqr{Float64},
d,
is_dual,
)
JuMP.@constraint(model, aff in cone)
return
end
#=
VecSepSpecEF
=#
function add_spectral(
ext::VecSepSpecEF,
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
@assert 2 + d == length(aff)
# epigraph and perspective variables are swapped if dual cone is used
(epi, per) = swap_if_dual(aff[1], aff[2], ext)
# linear constraint
x = JuMP.@variable(model, [1:d])
JuMP.@constraint(model, epi >= sum(x))
# 3-dim constraints
for i in 1:d
extend_atom(ext, (1.0 * x[i], per, aff[2 + i]), model)
end
# perspective nonnegative NOTE could be redundant with atom constraints
JuMP.@constraint(model, per >= 0)
return
end
#=
MatNegRtdet
=#
function add_homog_spectral(
::MatNegRtdet,
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
aff_new = vcat(-aff[1], aff[2:end])
R = get_R(d, length(aff) - 1)
JuMP.@constraint(model, aff_new in Hypatia.HypoRootdetTriCone{Float64, R}(length(aff)))
return
end
#=
MatNegRtdetEF
(u, W ≻ 0) : u > -rootdet(W)
↔ ∃ upper triangular U : [W U'; U Diag(δ)] ≻ 0, δ = diag(U),
(u, δ) ∈ NegRtdetean
=#
function add_homog_spectral(
ext::Union{MatNegRtdetEFExp, MatNegRtdetEFPow},
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
R = get_R(d, length(aff) - 1)
δ = extend_det(R, d, aff[2:end], model)
add_homog_spectral(get_vec_ef(ext), d, vcat(aff[1], δ), model)
return
end
#=
MatLogdetCone
=#
function add_spectral(::MatLogdetCone, d::Int, aff::Vector{JuMP.AffExpr}, model::JuMP.Model)
aff_new = vcat(-aff[1], aff[2], aff[3:end])
R = get_R(d, length(aff) - 2)
JuMP.@constraint(
model,
aff_new in Hypatia.HypoPerLogdetTriCone{Float64, R}(length(aff))
)
return
end
#=
MatSepSpec
=#
function add_spectral(ext::MatSepSpec, d::Int, aff::Vector{JuMP.AffExpr}, model::JuMP.Model)
R = get_R(d, length(aff) - 2)
is_dual = (ext isa MatSepSpecDualAll)
cone = Hypatia.EpiPerSepSpectralCone{Float64}(
get_ssf(ext),
Cones.MatrixCSqr{Float64, R},
d,
is_dual,
)
JuMP.@constraint(model, aff in cone)
return
end
#=
MatSepSpecEigOrd
uses eigenvalue ordering constraints from Ben-Tal & Nemirovski
=#
function add_spectral(
ext::MatSepSpecEigOrd,
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
λ = JuMP.@variable(model, [1:d])
JuMP.@constraint(model, [i in 1:(d - 1)], λ[i] >= λ[i + 1])
vec_aff = vcat(aff[1], aff[2], λ)
add_spectral(get_vec_ef(ext), d, vec_aff, model)
w = aff[3:end]
R = get_R(d, length(w))
if R <: Real
W = get_smat(d, w)
trW = tr(W)
for i in 1:(d - 1)
Z = JuMP.@variable(model, [1:d, 1:d], PSD)
s = JuMP.@variable(model)
JuMP.@constraint(model, sum(λ[1:i]) - i * s - tr(Z) >= 0)
mat = Symmetric(Z - W + s * Matrix(I, d, d), :U)
JuMP.@constraint(model, mat in JuMP.PSDCone())
end
else
(Wr, Wi) = get_smat_complex(d, w)
trW = tr(Wr)
for i in 1:(d - 1)
Zr = JuMP.@variable(model, [1:d, 1:d], Symmetric)
Zia = JuMP.@variable(model, [1:(d - 1), 1:(d - 1)], Symmetric)
Zi = make_skewsymm(d, 1.0 * Zia)
Z2 = Symmetric(hvcat((2, 2), Zr, Zi', Zi, Zr), :U)
JuMP.@constraint(model, Z2 in JuMP.PSDCone())
s = JuMP.@variable(model)
JuMP.@constraint(model, sum(λ[1:i]) - i * s - tr(Zr) >= 0)
Mr = Symmetric(Zr - Wr + s * Matrix(I, d, d), :U)
Mi = Zi - Wi
mat = Symmetric(hvcat((2, 2), Mr, Mi', Mi, Mr), :U)
JuMP.@constraint(model, mat in JuMP.PSDCone())
end
end
JuMP.@constraint(model, trW == sum(λ))
return
end
#=
MatNegLogDirect
(u, v > 0, W ≻ 0) : u > -v logdet(W / v)
↔ ∃ upper triangular U : [W U'; U Diag(δ)] ≻ 0, δ = diag(U),
(u, v, δ) ∈ NegLogVector
=#
function add_spectral(
::MatNegLogDirect,
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
R = get_R(d, length(aff) - 2)
δ = extend_det(R, d, aff[3:end], model)
vec_aff = vcat(aff[1], aff[2], δ)
add_spectral(VecNegLogEF(), d, vec_aff, model)
return
end
#=
MatNegSqrtConjDirect
note this is a dual cone EF, so u and v are swapped
(u > 0, v > 0, W ≻ 0) : v > 1/4 * u tr(inv(W / u))
↔ ∃ Z : [Z uI; uI W] ≻ 0, 4 * v > tr(Z), u > 0 (use Schur complement)
=#
function add_spectral(
::MatNegSqrtConjDirect,
d::Int,
aff::Vector{JuMP.AffExpr},
model::JuMP.Model,
)
w = aff[3:end]
R = get_R(d, length(w))
JuMP.@constraint(model, aff[1] >= 0)
Z = JuMP.@variable(model, [1:d, 1:d], Symmetric)
JuMP.@constraint(model, 4 * aff[2] >= tr(Z))
uI = aff[1] * Matrix(I, d, d)
if R <: Real
W = get_smat(d, w)
mat = Symmetric(hvcat((2, 2), Z, uI, uI, W), :U)
else
(Wr, Wi) = get_smat_complex(d, w)
Zia = JuMP.@variable(model, [1:(d - 1), 1:(d - 1)], Symmetric)
Zi = make_skewsymm(d, 1.0 * Zia)
Mr = Symmetric(hvcat((2, 2), Z, uI, uI, Wr), :U)
Mi = hvcat((2, 2), Zi, zeros(d, d), zeros(d, d), Wi)
mat = Symmetric(hvcat((2, 2), Mr, Mi', Mi, Mr), :U)
end
JuMP.@constraint(model, mat in JuMP.PSDCone())
return
end
#=
helpers
=#
# get epigraph and perspective variables, swapping if using dual cone
swap_if_dual(x, y, ext::SepSpecDualAll) = (y, x)
swap_if_dual(x, y, ext::SepSpecAll) = (x, y)
# get real or complex type from length of affine expression
function get_R(d::Int, w_len::Int)
if w_len == d^2
return ComplexF64
else
@assert w_len == Cones.svec_length(d)
return Float64
end
end
# get upper triangle of symmetric matrix W from vectorized w
function get_smat(d::Int, w::Vector{JuMP.AffExpr})
@assert Cones.svec_length(d) == length(w)
W = zeros(JuMP.AffExpr, d, d)
Cones.svec_to_smat!(W, w, sqrt(2))
return W
end
# get real and imaginary matrix parts from vectorized w
function get_smat_complex(d::Int, w::Vector)
@assert d^2 == length(w)
rt2 = sqrt(2)
Wr = zeros(eltype(w), d, d)
Wi = zero(Wr)
idx = 1
for j in 1:d
for i in 1:(j - 1)
Wr[i, j] = Wr[j, i] = w[idx] / rt2
Wi[i, j] = w[idx + 1] / rt2
Wi[j, i] = -Wi[i, j]
idx += 2
end
Wr[j, j] = w[idx]
idx += 1
end
return (Wr, Wi)
end
# make a skew-symmetric matrix
function make_skewsymm(d::Int, U::Symmetric)
Z = zeros(eltype(U), d, d)
Z[1:(d - 1), 2:d] = UpperTriangular(U)
@assert istriu(Z)
Z .-= Z'
@assert all(iszero, diag(Z))
return Z
end
# construct the real matrix part of the det EF, return δ like eigenvalues
function extend_det(R::Type{Float64}, d::Int, w::Vector{JuMP.AffExpr}, model::JuMP.Model)
u = JuMP.@variable(model, [1:length(w)])
U = get_smat(d, 1.0 * u)
δ = diag(U)
W = get_smat(d, w)
mat = Symmetric(hvcat((2, 2), W, U', U, Diagonal(δ)), :U)
JuMP.@constraint(model, mat in JuMP.PSDCone())
return δ
end
# construct the complex matrix part of the det EF, return δ like eigenvalues
function extend_det(R::Type{ComplexF64}, d::Int, w::Vector{JuMP.AffExpr}, model::JuMP.Model)
(Wr, Wi) = get_smat_complex(d, w)
Ur = UpperTriangular(JuMP.@variable(model, [1:d, 1:d], Symmetric))
δ = diag(Ur)
Uia = JuMP.@variable(model, [1:(d - 1), 1:(d - 1)], Symmetric)
Ui = zero(Wi)
Ui[1:(d - 1), 2:d] = UpperTriangular(Uia)
Mr = Symmetric(hvcat((2, 2), Wr, Ur', Ur, Diagonal(δ)), :U)
Mi = hvcat((2, 2), Wi, -Ui', Ui, zeros(d, d))
mat = Symmetric(hvcat((2, 2), Mr, Mi', Mi, Mr), :U)
JuMP.@constraint(model, mat in JuMP.PSDCone())
return δ
end
#=
NegLogSSF:
(x, y > 0, z > 0) : x > y * -log(z / y)
↔ y * exp(-x / y) < z
↔ (-x, y, z) ∈ MOI.ExponentialCone
conjugate does not provide additional modeling power
=#
function extend_atom(::VecNegLogEF, aff::NTuple{3, JuMP.AffExpr}, model::JuMP.Model)
aff_new = vcat(-aff[1], aff[2], aff[3])
JuMP.@constraint(model, aff_new in MOI.ExponentialCone())
return
end
#=
NegEntropySSF:
(x, y > 0, z > 0) : x > z * log(z / y) = -z * log(y / z)
↔ z * exp(-x / z) < y
↔ (-x, z, y) ∈ MOI.ExponentialCone
or for the conjugate: (z can be negative)
(x > 0, y > 0, z) : x > y * exp(-z / y - 1) = y * exp((-z - y) / y)
↔ (-z - y, y, x) ∈ MOI.ExponentialCone
=#
function extend_atom(::VecNegEntropyEF, aff::NTuple{3, JuMP.AffExpr}, model::JuMP.Model)
aff_new = vcat(-aff[1], aff[3], aff[2])
JuMP.@constraint(model, aff_new in MOI.ExponentialCone())
return
end
function extend_atom(::VecNegEntropyConjEF, aff::NTuple{3, JuMP.AffExpr}, model::JuMP.Model)
aff_new = vcat(-aff[3] - aff[2], aff[2], aff[1])
JuMP.@constraint(model, aff_new in MOI.ExponentialCone())
return
end
#=
NegSqrtSSF:
(x, y > 0, z > 0) : x > -y * sqrt(z / y) = -sqrt(y * z)
↔ ∃ θ > 0 : (x - θ)^2 < y * z
↔ (y, z, sqrt(2) * (x - θ)) ∈ JuMP.RotatedSecondOrderCone, θ ∈ ℝ₊
or for the conjugate:
(x > 0, y > 0, z > 0) : x > 1/4 * y * inv(z / y) = 1/4 * y^2 / z
↔ 2 * x * z > y^2 / 2
↔ (x, z, y / sqrt(2)) ∈ JuMP.RotatedSecondOrderCone
=#
function extend_atom(::VecNegSqrtEF, aff::NTuple{3, JuMP.AffExpr}, model::JuMP.Model)
θ = JuMP.@variable(model)
JuMP.@constraint(model, θ >= 0)
aff_new = vcat(aff[2], aff[3], sqrt(2) * (aff[1] - θ))
JuMP.@constraint(model, aff_new in JuMP.RotatedSecondOrderCone())
return
end
function extend_atom(::VecNegSqrtConjEF, aff::NTuple{3, JuMP.AffExpr}, model::JuMP.Model)
aff_new = vcat(aff[1], aff[3], aff[2] / sqrt(2))
JuMP.@constraint(model, aff_new in JuMP.RotatedSecondOrderCone())
return
end
#=
NegPower01SSF(p) for p ∈ (0, 1)
(x, y > 0, z > 0) : x > -y * (z / y)^p = -y^(1-p) * z^p
↔ ∃ θ > 0 : z^p * y^(1-p) > |x - θ|
↔ (z, y, x - θ) ∈ MOI.PowerCone(p), θ ∈ ℝ₊
or for the conjugate:
let q = p / (p - 1) < 0, so 1 - p = 1 / (1 - q)
let c = (1 - p) * p^-q > 0
(x > 0, y > 0, z > 0) : x > c * y * (z / y)^q = c * z^q * y^(1-q)
↔ x^(1/(1-q)) > c^(1/(1-q)) * z^(q/(1-q)) * y
↔ z^(q/(q-1)) * x^(1/(1-q)) > c^(1/(1-q)) * y
↔ z^p * x^(1-p) > |b * y|, y > 0
where b = c^(1/(1-q)) = p^p * (1 - p)^(1-p) > 0
↔ (z, x, b * y) ∈ MOI.PowerCone(p), y ∈ ℝ₊
=#
function extend_atom(ext::VecNegPower01EF, aff::NTuple{3, JuMP.AffExpr}, model::JuMP.Model)
p = ext.p
@assert 0 < p < 1
θ = JuMP.@variable(model)
JuMP.@constraint(model, θ >= 0)
aff_new = vcat(aff[3], aff[2], aff[1] - θ)
JuMP.@constraint(model, aff_new in MOI.PowerCone(p))
return
end
function extend_atom(
ext::VecNegPower01ConjEF,
aff::NTuple{3, JuMP.AffExpr},
model::JuMP.Model,
)
p = ext.p
@assert 0 < p < 1
q = p / (p - 1)
b = p^p * (1 - p)^(1 - p)
aff_new = vcat(aff[3], aff[1], b * aff[2])
JuMP.@constraint(model, aff_new in MOI.PowerCone(p))
return
end
#=
Power12SSF(p) for p ∈ (1, 2]
(x > 0, y > 0, z > 0) : x > y * (z / y)^p = y^(1-p) * z^p
↔ x^(1/p) * y^(1-1/p) > |z|, z > 0
↔ (x, y, z) ∈ MOI.PowerCone(1/p), z ∈ ℝ₊
or for the conjugate: (z can be negative)
let z₋ = {0 if z ≥ 0, or -z if z < 0}, q = p / (p - 1) > 2
(x > 0, y > 0, z) : x > (p - 1) * y * (z₋ / y / p)^q
= (p - 1) / p^q * z₋^q * y^(1-q)
↔ x^(1/q) > c * z₋ * y^(1/q-1)
↔ x^(1/q) * y^(1-1/q) > c * z₋
↔ ∃ θ > 0 : x^(1/q) * y^(1-1/q) > |c * (z - θ)|
where c = (p - 1)^(1/q) / p > 0
↔ (x, y, c * (z - θ)) ∈ MOI.PowerCone(1/q), θ ∈ ℝ₊
=#
function extend_atom(ext::VecPower12EF, aff::NTuple{3, JuMP.AffExpr}, model::JuMP.Model)
p = ext.p
@assert 1 < p <= 2
JuMP.@constraint(model, aff[3] >= 0)
JuMP.@constraint(model, collect(aff) in MOI.PowerCone(inv(p)))
return
end
function extend_atom(ext::VecPower12ConjEF, aff::NTuple{3, JuMP.AffExpr}, model::JuMP.Model)
p = ext.p
@assert 1 < p <= 2
q = p / (p - 1)
c = (p - 1)^inv(q) / p
θ = JuMP.@variable(model)
JuMP.@constraint(model, θ >= 0)
aff_new = vcat(aff[1], aff[2], c * (aff[3] - θ))
JuMP.@constraint(model, aff_new in MOI.PowerCone(inv(q)))
return
end
Weird_HiGHS_error.txt
using JuMP
using Pajarito
using PajaritoExtras
using HiGHS
using Hypatia
using Random
using LinearAlgebra
include("spectral_functions_JuMP.jl")
function build_model(A, ub, N, m, n)
verbose = false
# setup solvers
# MIP solver (try SCIP as well?)
oa_solver = optimizer_with_attributes(HiGHS.Optimizer,
MOI.Silent() => !verbose,
"mip_feasibility_tolerance" => 1e-8,
"mip_rel_gap" => 1e-6,
)
# SDP solver
conic_solver = optimizer_with_attributes(Hypatia.Optimizer,
MOI.Silent() => !verbose,
)
opt = optimizer_with_attributes(Pajarito.Optimizer,
"time_limit" => 1200,
"iteration_limit" => 100000,
"oa_solver" => oa_solver,
"conic_solver" => conic_solver,
MOI.Silent() => !verbose,
)
model = Model(opt)
# add design variables
JuMP.@variable(model, w[1:m])
JuMP.@variable(model, x[1:m], Int)
# Add the probability simplex constraint
JuMP.@constraint(model, sum(w) == 1)
# Bound constraints
JuMP.@constraint(model, x ≤ ub)
JuMP.@constraint(model, x ≥ fill(0.0, m))
JuMP.@constraint(model, w ≥ fill(0.0, m))
# auxiliary variables
# J
JuMP.@variable(model, J_mat[1:n, 1:n])
for i in 1:n
if i != n
for j in (i+1):n
JuMP.fix(J_mat[i,j], 0; force=true)
end
end
end
# Z_i collect in a matrix
JuMP.@variable(model, Z_mat[1:m, 1:n])
# t_ij collected in a matrix
JuMP.@variable(model, T_mat[1:m, 1:n])
# Epigraph variable
JuMP.@variable(model, t)
# additional constraints
# linear constraints
JuMP.@constraint(model, x .== N*w)
JuMP.@constraint(model, sum(A[i, :] * Z_mat[i,:]' for i in 1:m) .- J_mat .== zeros(n,n))
for j in 1:n
JuMP.@constraint(model, sum(T_mat[i,j] for i in 1:m) ≤ J_mat[j,j])
end
JuMP.@constraint(model, T_mat .≥ zeros(m,n))
# conic constraint
# second order cone
JuMP.@constraint(model, vcat(t, LinearAlgebra.diag(J_mat)) in Hypatia.HypoGeoMeanCone{Float64}(n+1))
for i in 1:m
for j in 1:n
JuMP.@constraint(model, vcat(1/2*T_mat[i,j], w[i], Z_mat[i,j]) in Hypatia.EpiPerSquareCone{Float64}(3))
end
end
# objective function
JuMP.@objective(model, Max, t)
return model, x
end
# Julia 1.9.0 on Linux
seed = 2
Random.seed!(seed)
m = 30
n = 7
A = rand(30,7)
ub = fill(3, 30)
N = floor(1.5*n)
model, x = build_model(A, ub, N, m, n)
optimize!(model)
status = termination_status(model)
solution = objective_value(model)
y = value.(x)
t = solve_time(model)
@show status, t, solution
error_message.txt
free(): invalid pointer
[11261] signal (6.-6): Abgebrochen
in expression starting at /home/dhendryc/Dokumente/research-projects/MWE_for_issues/Weird_HiGHS_error.jl:95
gsignal at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
abort at /lib/x86_64-linux-gnu/libc.so.6 (unknown line)
unknown function (ip: 0x7fafcb10d3e7)
unknown function (ip: 0x7fafcb1146d9)
unknown function (ip: 0x7fafcb115893)
_ZNK11HSimplexNla16debugCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZNK4HEkk19debugNlaCheckInvertENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN4HEkk13computeFactorEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN4HEkk33initialiseSimplexLpBasisAndFactorEb at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN4HEkk18initialiseForSolveEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN4HEkk5solveEb at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_Z14solveLpSimplexR19HighsLpSolverObject at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_Z7solveLpR19HighsLpSolverObjectNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN5Highs11callSolveLpER7HighsLpNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN5Highs3runEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN17HighsLpRelaxation3runEb at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN17HighsLpRelaxation9resolveLpEP11HighsDomain at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN11HighsSearch12evaluateNodeEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN11HighsSearch4diveEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN14HighsMipSolver3runEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN21HighsPrimalHeuristics11solveSubMipERK7HighsLpRK10HighsBasisdSt6vectorIdSaIdEES8_iii at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN21HighsPrimalHeuristics15rootReducedCostEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN18HighsMipSolverData16evaluateRootNodeEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN14HighsMipSolver3runEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN5Highs12callSolveMipEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
_ZN5Highs3runEv at /home/dhendryc/.julia/artifacts/440a6f1647f9a8fc64797a2e13b60989e67272fe/lib/libhighs.so (unknown line)
Highs_run at /home/dhendryc/.julia/packages/HiGHS/mp5YH/src/gen/libhighs.jl:285 [inlined]
optimize! at /home/dhendryc/.julia/packages/HiGHS/mp5YH/src/MOI_wrapper.jl:1930
optimize! at /home/dhendryc/.julia/packages/MathOptInterface/DDWnF/src/Bridges/bridge_optimizer.jl:380 [inlined]
optimize! at /home/dhendryc/.julia/packages/MathOptInterface/DDWnF/src/Bridges/bridge_optimizer.jl:380 [inlined]
optimize! at /home/dhendryc/.julia/packages/MathOptInterface/DDWnF/src/Utilities/cachingoptimizer.jl:325
unknown function (ip: 0x7faf74ce3d32)
corrupted double-linked list
Abgebrochen
I haven't tried to reproduce locally, but this is a pretty bad error. Let me see if I can find a minimal example.
I can reproduce this on macOS. Working on simplifying.
(hyp) pkg> st
Status `/private/tmp/hyp/Project.toml`
[87dc4568] HiGHS v1.8.1
[b99e6be6] Hypatia v0.7.4
[4076af6c] JuMP v1.19.0
[2f354839] Pajarito v0.8.2
[ab19e554] PajaritoExtras v0.0.0 `https://github.com/chriscoey/PajaritoExtras.jl#main`
[37e2e46d] LinearAlgebra
[9a3f8284] Random
(hyp) pkg> st -m HiGHS_jll
Status `/private/tmp/hyp/Manifest.toml`
[8fd58aa0] HiGHS_jll v1.6.0+1
julia> versioninfo()
Julia Version 1.10.0
Commit 3120989f39b (2023-12-25 18:01 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: macOS (x86_64-apple-darwin22.4.0)
CPU: 8 × Intel(R) Core(TM) i5-8259U CPU @ 2.30GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, skylake)
Threads: 1 on 8 virtual cores
A smaller example is
using JuMP
import HiGHS
import Hypatia
import Pajarito
import PajaritoExtras # https://github.com/chriscoey/PajaritoExtras.jl
import Random
function main()
Random.seed!(2)
A = rand(30,7)
m, n = size(A)
opt = optimizer_with_attributes(
Pajarito.Optimizer,
"oa_solver" => optimizer_with_attributes(
HiGHS.Optimizer,
"mip_feasibility_tolerance" => 1e-8,
"mip_rel_gap" => 1e-6,
),
"conic_solver" => optimizer_with_attributes(Hypatia.Optimizer),
)
model = Model(opt)
@variables(model, begin
w[1:m]
x[1:m], Int
Z_mat[1:m, 1:n]
T_mat[1:m, 1:n]
J_mat[1:n, 1:n]
t
end)
@objective(model, Max, t)
J_diag = [J_mat[i, i] for i in 1:n]
@constraints(model, begin
sum(w) == 1
x .≤ 3
x .>= 0
w .>= 0
x .== 10w
sum(A[i, :] * Z_mat[i,:]' for i in 1:m) .== J_mat
[j in 1:n], sum(T_mat[:,j]) <= J_mat[j,j]
T_mat .>= 0
[t; J_diag] in Hypatia.HypoGeoMeanCone{Float64}(n+1)
[i in 1:m, j in 1:n], [T_mat[i,j]/2, w[i], Z_mat[i,j]] in Hypatia.EpiPerSquareCone{Float64}(3)
end)
for i in 1:(n-1), j in (i+1):n
JuMP.fix(J_mat[i,j], 0)
end
optimize!(model)
return
end
main()
(base) oscar@Oscars-MBP /tmp % julia --project=hyp hypatia.jl
solving continuous relaxation
iter p_obj d_obj | abs_gap x_feas z_feas | tau kap mu | dir_res prox step alpha
0 6.0598e-01 -6.4188e+01 | 7.35e+02 5.94e-01 5.57e-01 | 1.00e+00 1.00e+00 1.00e+00 |
1 -1.2513e+00 -3.5128e+01 | 3.68e+02 3.11e-01 2.91e-01 | 9.56e-01 5.08e-01 5.00e-01 | 7.1e-14 8.8e-01 co-a 5.00e-01
2 -8.8578e-01 -1.1382e+01 | 1.47e+02 9.55e-02 8.94e-02 | 1.24e+00 9.73e-02 2.00e-01 | 7.1e-15 9.1e-01 co-a 6.00e-01
3 -4.0927e-01 -3.5789e+00 | 7.20e+01 2.87e-02 2.69e-02 | 2.07e+00 2.31e-02 9.79e-02 | 7.1e-15 5.2e-01 co-a 5.00e-01
4 -2.2727e-01 -1.0004e+00 | 2.79e+01 7.00e-03 6.56e-03 | 3.39e+00 8.93e-03 3.79e-02 | 4.6e-15 3.9e-01 co-a 6.00e-01
5 -1.7035e-01 -4.1711e-01 | 1.10e+01 2.23e-03 2.09e-03 | 4.25e+00 3.40e-03 1.49e-02 | 3.5e-14 3.2e-01 co-a 6.00e-01
6 -1.5255e-01 -2.4156e-01 | 4.33e+00 8.06e-04 7.55e-04 | 4.72e+00 1.24e-03 5.89e-03 | 8.3e-14 6.4e-01 co-a 6.00e-01
7 -1.5178e-01 -1.9523e-01 | 2.13e+00 3.93e-04 3.69e-04 | 4.83e+00 6.10e-04 2.90e-03 | 4.0e-13 7.7e-01 co-a 5.00e-01
8 -1.5336e-01 -1.7066e-01 | 8.41e-01 1.57e-04 1.47e-04 | 4.85e+00 2.41e-04 1.14e-03 | 1.3e-12 9.2e-01 co-a 6.00e-01
9 -1.5537e-01 -1.6415e-01 | 4.13e-01 7.95e-05 7.45e-05 | 4.78e+00 1.20e-04 5.62e-04 | 7.4e-12 8.7e-01 co-a 5.00e-01
10 -1.5659e-01 -1.6101e-01 | 2.05e-01 4.00e-05 3.75e-05 | 4.75e+00 5.93e-05 2.79e-04 | 1.9e-11 9.3e-01 co-a 5.00e-01
11 -1.5700e-01 -1.6010e-01 | 1.43e-01 2.81e-05 2.63e-05 | 4.74e+00 4.12e-05 1.95e-04 | 1.5e-11 6.6e-01 co-a 3.00e-01
12 -1.5758e-01 -1.5882e-01 | 5.71e-02 1.13e-05 1.06e-05 | 4.72e+00 1.65e-05 7.77e-05 | 1.5e-11 8.3e-01 co-a 6.00e-01
13 -1.5770e-01 -1.5858e-01 | 3.99e-02 7.90e-06 7.40e-06 | 4.71e+00 1.15e-05 5.43e-05 | 7.8e-11 7.2e-01 co-a 3.00e-01
14 -1.5791e-01 -1.5818e-01 | 1.19e-02 2.38e-06 2.23e-06 | 4.70e+00 3.47e-06 1.63e-05 | 1.2e-11 9.2e-01 co-a 7.00e-01
15 -1.5794e-01 -1.5813e-01 | 8.35e-03 1.67e-06 1.56e-06 | 4.69e+00 2.43e-06 1.14e-05 | 1.2e-10 7.3e-01 co-a 3.00e-01
16 -1.5800e-01 -1.5803e-01 | 1.25e-03 2.50e-07 2.35e-07 | 4.69e+00 3.65e-07 1.70e-06 | 5.4e-11 7.7e-01 co-a 8.50e-01
17 -1.5801e-01 -1.5801e-01 | 1.25e-04 2.51e-08 2.35e-08 | 4.68e+00 3.64e-08 1.70e-07 | 2.2e-11 8.5e-01 co-a 9.00e-01
18 -1.5801e-01 -1.5801e-01 | 2.50e-05 5.02e-09 4.70e-09 | 4.68e+00 7.25e-09 3.40e-08 | 2.1e-11 6.0e-01 co-a 8.00e-01
19 -1.5801e-01 -1.5801e-01 | 4.99e-06 1.00e-09 9.41e-10 | 4.68e+00 1.45e-09 6.79e-09 | 2.2e-10 8.2e-01 co-a 8.00e-01
20 -1.5801e-01 -1.5801e-01 | 2.00e-06 4.02e-10 3.76e-10 | 4.67e+00 5.81e-10 2.72e-09 | 1.3e-10 1.7e-01 co-a 6.00e-01
21 -1.5801e-01 -1.5801e-01 | 9.98e-07 2.01e-10 1.88e-10 | 4.67e+00 2.91e-10 1.36e-09 | 1.3e-09 8.3e-02 co-a 5.00e-01
22 -1.5801e-01 -1.5801e-01 | 1.50e-07 3.02e-11 2.82e-11 | 4.67e+00 4.36e-11 2.04e-10 | 9.0e-12 1.9e-01 co-a 8.50e-01
optimal solution found; terminating
status is Optimal after 22 iterations and 15.802 seconds
continuous relaxation status is OPTIMAL
Running HiGHS 1.6.0: Copyright (c) 2023 HiGHS under MIT licence terms
Presolving model
681 rows, 465 cols, 3033 nonzeros
680 rows, 464 cols, 3036 nonzeros
Presolve : Reductions: rows 680(-801); columns 464(-74); elements 3036(-1479)
Solving the presolved LP
Using EKK dual simplex solver - serial
Iteration Objective Infeasibilities num(sum)
0 -3.9999825304e+00 Ph1: 672(2.47027e+06); Du: 1(3.99998) 0s
1024 -1.5800859267e-01 Pr: 0(0); Du: 0(4.01144e-07) 0s
1024 -1.5800859267e-01 Pr: 0(0); Du: 0(4.01144e-07) 0s
Solving the original LP from the solution after postsolve
Model status : Optimal
Simplex iterations: 1024
Objective value : -1.5800859267e-01
HiGHS run time : 0.04
separated 0 rays before imposing integrality
iter cuts obj bound gap
WARNING: Col 3 has integer infeasibility of 0.1075
WARNING: Col 9 has integer infeasibility of 0.3775
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 10 0.4622 2.186
Row infeasibilities 0 0 0
Row residuals 0 2.22e-16 2.227e-15
Attempting to find feasible solution for (partial) user-supplied values of discrete variables
Presolving model
681 rows, 445 cols, 2593 nonzeros
680 rows, 444 cols, 2569 nonzeros
Solving MIP model with:
680 rows
444 cols (0 binary, 10 integer, 0 implied int., 434 continuous)
2569 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf inf inf 0 0 0 0 0.0s
R 0 0 0 0.00% -0.1580085932 -0.1381335065 14.39% 0 0 0 734 0.0s
C 0 0 0 0.00% -0.1580085931 -0.1475602121 7.08% 22 5 0 793 0.1s
L 0 0 0 0.00% -0.1580085931 -0.1544720836 2.29% 27 8 0 826 0.4s
L 0 0 0 0.00% -0.1580085931 -0.1544720836 2.29% 27 7 0 3501 0.8s
B 7 1 2 6.25% -0.1580085931 -0.1545491412 2.24% 35 7 10 8138 0.9s
B 14 1 6 31.25% -0.1580085931 -0.1546637483 2.16% 46 7 20 9434 1.1s
B 14 1 6 31.25% -0.1580085931 -0.1558143585 1.41% 47 7 20 9434 1.1s
B 17 1 8 68.75% -0.1580085931 -0.1564397493 1.00% 51 7 30 10073 1.2s
T 17 1 8 68.75% -0.1580085931 -0.1569474321 0.68% 52 7 30 10073 1.2s
Solving report
Status Optimal
Primal bound -0.156947432097
Dual bound -0.156947432097
Gap 0% (tolerance: 0.000637%)
Solution status feasible
-0.156947432097 (objective)
0 (bound viol.)
7.21644966006e-15 (int. viol.)
0 (row viol.)
Timing 1.25 (total)
0.00 (presolve)
0.00 (postsolve)
Nodes 25
LP iterations 11250 (total)
2124 (strong br.)
118 (separation)
6563 (heuristics)
Presolving model
681 rows, 465 cols, 3033 nonzeros
680 rows, 464 cols, 3009 nonzeros
MIP start solution is feasible, objective value is -0.156947432097
Solving MIP model with:
680 rows
464 cols (0 binary, 30 integer, 0 implied int., 434 continuous)
3009 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.1569474321 Large 0 0 0 0 0.0s
16.7% inactive integer columns, restarting
Model after restart has 680 rows, 459 cols (3 bin., 22 int., 0 impl., 434 cont.), and 2899 nonzeros
0 0 0 0.00% -0.1580085932 -0.1569474321 0.68% 0 0 0 1008 0.1s
0 0 0 0.00% -0.1580085932 -0.1569474321 0.68% 0 0 0 1008 0.1s
C 0 0 0 0.00% -0.1580085932 -0.1569474421 0.68% 3 2 0 1060 0.2s
Solving report
Status Optimal
Primal bound -0.156947442097
Dual bound -0.156947442097
Gap 0% (tolerance: 0.000637%)
Solution status feasible
-0.156947442097 (objective)
0 (bound viol.)
0 (int. viol.)
0 (row viol.)
Timing 0.18 (total)
0.01 (presolve)
0.00 (postsolve)
Nodes 1
LP iterations 1062 (total)
0 (strong br.)
52 (separation)
0 (heuristics)
1 of 101 primal equality constraints are dependent
iter p_obj d_obj | abs_gap x_feas z_feas | tau kap mu | dir_res prox step alpha
0 6.0598e-01 -6.6783e+01 | 7.35e+02 5.23e-01 5.17e-01 | 1.00e+00 1.00e+00 1.00e+00 |
1 -1.2325e+00 -3.9666e+01 | 3.67e+02 2.99e-01 2.96e-01 | 8.75e-01 5.74e-01 5.00e-01 | 1.4e-14 8.5e-01 co-a 5.00e-01
2 -1.0352e+00 -1.5478e+01 | 1.47e+02 1.12e-01 1.11e-01 | 9.34e-01 1.85e-01 2.00e-01 | 7.1e-15 8.5e-01 co-a 6.00e-01
3 -4.0690e-01 -3.4769e+00 | 4.37e+01 2.36e-02 2.33e-02 | 1.33e+00 1.79e-02 5.95e-02 | 6.9e-15 6.0e-01 co-a 7.00e-01
4 -1.9620e-01 -8.6939e-01 | 1.29e+01 5.18e-03 5.12e-03 | 1.82e+00 6.86e-03 1.75e-02 | 8.4e-15 4.4e-01 co-a 7.00e-01
5 -1.3589e-01 -2.8630e-01 | 3.73e+00 1.15e-03 1.14e-03 | 2.45e+00 1.24e-03 5.08e-03 | 8.9e-15 6.3e-01 co-a 7.00e-01
6 -1.3230e-01 -1.9088e-01 | 1.79e+00 4.50e-04 4.45e-04 | 3.14e+00 6.66e-04 2.43e-03 | 7.2e-14 6.7e-01 co-a 5.00e-01
7 -1.3844e-01 -1.7709e-01 | 1.23e+00 2.97e-04 2.93e-04 | 3.33e+00 5.05e-04 1.67e-03 | 7.8e-14 4.6e-01 co-a 3.00e-01
8 -1.4303e-01 -1.5755e-01 | 4.89e-01 1.12e-04 1.10e-04 | 3.55e+00 1.90e-04 6.65e-04 | 2.6e-13 8.2e-01 co-a 6.00e-01
9 -1.4576e-01 -1.5149e-01 | 1.94e-01 4.40e-05 4.35e-05 | 3.59e+00 7.45e-05 2.64e-04 | 8.0e-13 7.9e-01 co-a 6.00e-01
10 -1.4711e-01 -1.4881e-01 | 5.82e-02 1.31e-05 1.29e-05 | 3.62e+00 2.19e-05 7.92e-05 | 3.4e-13 6.6e-01 co-a 7.00e-01
11 -1.4764e-01 -1.4781e-01 | 5.82e-03 1.31e-06 1.29e-06 | 3.64e+00 2.18e-06 7.92e-06 | 1.8e-13 6.0e-01 co-a 9.00e-01
12 -1.4769e-01 -1.4771e-01 | 5.83e-04 1.30e-07 1.29e-07 | 3.64e+00 2.17e-07 7.93e-07 | 6.7e-13 6.9e-01 co-a 9.00e-01
13 -1.4770e-01 -1.4770e-01 | 1.75e-04 3.91e-08 3.87e-08 | 3.64e+00 6.52e-08 2.38e-07 | 9.3e-12 2.0e-01 co-a 7.00e-01
14 -1.4770e-01 -1.4770e-01 | 2.62e-05 5.87e-09 5.81e-09 | 3.63e+00 9.80e-09 3.56e-08 | 7.9e-12 5.6e-01 co-a 8.50e-01
15 -1.4770e-01 -1.4770e-01 | 2.62e-06 5.88e-10 5.81e-10 | 3.64e+00 9.79e-10 3.56e-09 | 2.7e-11 8.2e-01 co-a 9.00e-01
16 -1.4770e-01 -1.4770e-01 | 7.85e-07 1.83e-10 1.74e-10 | 3.63e+00 2.94e-10 1.07e-09 | 4.3e-10 2.5e-01 co-a 7.00e-01
17 -1.4770e-01 -1.4770e-01 | 7.85e-08 2.46e-11 1.74e-11 | 3.63e+00 2.94e-11 1.07e-10 | 5.9e-10 9.6e-01 co-a 9.00e-01
optimal solution found; terminating
status is Optimal after 17 iterations and 1.856 seconds
continuous subproblem status is OPTIMAL
1 1288 -1.4770e-01 -1.5695e-01 6.2602e-02
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 0 0 0
Row infeasibilities 0 0 0
Row residuals 0 0 0
Presolving model
898 rows, 465 cols, 3684 nonzeros
890 rows, 464 cols, 3644 nonzeros
MIP start solution is feasible, objective value is -0.147700489456
Solving MIP model with:
890 rows
464 cols (0 binary, 30 integer, 0 implied int., 434 continuous)
3644 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.1477004895 Large 0 0 0 0 0.0s
R 0 0 0 0.00% -0.158008593 -0.14932293 5.82% 0 0 0 1103 0.1s
C 0 0 0 0.00% -0.158008593 -0.1568692075 0.73% 0 0 0 1103 0.1s
L 0 0 0 0.00% -0.158008593 -0.1573442208 0.42% 0 0 0 1103 1.3s
23.3% inactive integer columns, restarting
Model after restart has 890 rows, 457 cols (5 bin., 18 int., 0 impl., 434 cont.), and 3441 nonzeros
0 0 0 0.00% -0.158008593 -0.1573442208 0.42% 0 0 0 13314 1.6s
0 0 0 0.00% -0.158008593 -0.1573442208 0.42% 0 0 0 13314 1.6s
Solving report
Status Optimal
Primal bound -0.157344220812
Dual bound -0.157344220812
Gap 0% (tolerance: 0.000636%)
Solution status feasible
-0.157344220812 (objective)
0 (bound viol.)
0 (int. viol.)
0 (row viol.)
Timing 3.54 (total)
0.01 (presolve)
0.00 (postsolve)
Nodes 222
LP iterations 27831 (total)
6332 (strong br.)
0 (separation)
12211 (heuristics)
iter p_obj d_obj | abs_gap x_feas z_feas | tau kap mu | dir_res prox step alpha
0 6.0598e-01 -1.6449e+04 | 7.35e+02 5.23e-01 1.00e+00 | 1.00e+00 1.00e+00 1.00e+00 |
1 -1.1684e-01 -1.6447e+04 | 3.67e+02 5.23e-01 1.00e+00 | 5.00e-01 1.00e+00 5.00e-01 | 2.5e-08 7.9e-01 co-a 5.00e-01
2 3.1834e+00 -1.6434e+04 | 1.47e+02 5.23e-01 9.99e-01 | 2.00e-01 1.00e+00 2.00e-01 | 2.0e-09 8.0e-01 co-a 6.00e-01
3 7.5619e+01 -1.6223e+04 | 1.47e+01 5.20e-01 9.94e-01 | 2.01e-02 9.99e-01 2.00e-02 | 1.5e-09 8.5e-01 co-a 9.00e-01
4 2.5431e+02 -1.5584e+04 | 4.40e+00 5.09e-01 9.72e-01 | 6.17e-03 9.84e-01 5.99e-03 | 1.6e-11 5.5e-01 co-a 7.00e-01
5 3.2303e+02 -1.4749e+04 | 3.08e+00 4.86e-01 9.29e-01 | 4.52e-03 9.35e-01 4.19e-03 | 5.5e-13 7.6e-01 co-a 3.00e-01
6 2.8395e+02 -1.3572e+04 | 2.77e+00 4.47e-01 8.54e-01 | 4.43e-03 8.53e-01 3.76e-03 | 4.9e-14 4.7e-01 co-a 1.00e-01
7 1.3103e+02 -7.8763e+03 | 1.38e+00 2.59e-01 4.94e-01 | 3.82e-03 4.89e-01 1.88e-03 | 5.6e-14 2.9e-01 co-a 5.00e-01
8 1.8184e+01 -2.0387e+03 | 4.12e-01 6.59e-02 1.26e-01 | 4.50e-03 6.61e-02 5.60e-04 | 6.2e-14 9.4e-01 co-a 7.00e-01
9 3.0303e+00 -4.1052e+02 | 1.21e-01 1.32e-02 2.52e-02 | 6.74e-03 9.80e-03 1.64e-04 | 2.3e-14 6.0e-01 co-a 7.00e-01
10 2.2528e-01 -8.9957e+01 | 3.50e-02 2.88e-03 5.50e-03 | 9.27e-03 3.04e-03 4.76e-05 | 2.0e-14 7.0e-01 co-a 7.00e-01
11 -7.8139e-03 -2.4964e+01 | 1.32e-02 7.95e-04 1.52e-03 | 1.34e-02 7.30e-04 1.80e-05 | 7.5e-15 9.6e-01 co-a 6.00e-01
12 -8.2883e-02 -7.0041e+00 | 4.94e-03 2.20e-04 4.21e-04 | 1.94e-02 2.41e-04 6.72e-06 | 8.4e-15 6.9e-01 co-a 6.00e-01
13 -8.6357e-02 -1.7580e+00 | 1.43e-03 5.32e-05 1.02e-04 | 2.41e-02 7.65e-05 1.94e-06 | 8.0e-15 2.5e-01 co-a 7.00e-01
14 -9.1677e-02 -4.0183e-01 | 2.83e-04 9.88e-06 1.89e-05 | 2.59e-02 1.48e-05 3.85e-07 | 3.9e-15 6.3e-01 co-a 8.00e-01
15 -1.0012e-01 -3.1755e-01 | 1.96e-04 6.93e-06 1.32e-05 | 2.59e-02 1.04e-05 2.67e-07 | 5.6e-15 4.7e-01 co-a 3.00e-01
16 -1.0645e-01 -2.5835e-01 | 1.37e-04 4.84e-06 9.25e-06 | 2.59e-02 7.21e-06 1.87e-07 | 7.0e-15 3.6e-01 co-a 3.00e-01
17 -1.1337e-01 -2.1967e-01 | 9.57e-05 3.39e-06 6.47e-06 | 2.60e-02 5.03e-06 1.30e-07 | 6.4e-15 3.9e-01 co-a 3.00e-01
18 -1.2059e-01 -1.9505e-01 | 6.69e-05 2.37e-06 4.53e-06 | 2.59e-02 3.52e-06 9.10e-08 | 9.7e-15 4.2e-01 co-a 3.00e-01
19 -1.2757e-01 -1.7975e-01 | 4.67e-05 1.66e-06 3.18e-06 | 2.59e-02 2.46e-06 6.35e-08 | 1.1e-14 4.2e-01 co-a 3.00e-01
20 -1.3375e-01 -1.7032e-01 | 3.26e-05 1.16e-06 2.23e-06 | 2.59e-02 1.72e-06 4.44e-08 | 1.5e-14 3.7e-01 co-a 3.00e-01
21 -1.4250e-01 -1.6083e-01 | 1.63e-05 5.84e-07 1.12e-06 | 2.58e-02 8.60e-07 2.21e-08 | 1.7e-14 7.1e-01 co-a 5.00e-01
22 -1.4769e-01 -1.5690e-01 | 8.10e-06 2.93e-07 5.60e-07 | 2.57e-02 4.31e-07 1.10e-08 | 1.7e-14 9.3e-01 co-a 5.00e-01
23 -1.5169e-01 -1.5446e-01 | 2.42e-06 8.83e-08 1.69e-07 | 2.56e-02 1.29e-07 3.29e-09 | 1.3e-14 8.8e-01 co-a 7.00e-01
24 -1.5319e-01 -1.5361e-01 | 3.63e-07 1.32e-08 2.53e-08 | 2.56e-02 1.93e-08 4.93e-10 | 1.8e-14 7.2e-01 co-a 8.50e-01
25 -1.5343e-01 -1.5347e-01 | 3.64e-08 1.32e-09 2.52e-09 | 2.57e-02 1.91e-09 4.95e-11 | 5.8e-14 7.3e-01 co-a 9.00e-01
26 -1.5345e-01 -1.5346e-01 | 1.09e-08 3.95e-10 7.58e-10 | 2.56e-02 5.78e-10 1.48e-11 | 3.1e-13 1.9e-01 co-a 7.00e-01
27 -1.5346e-01 -1.5346e-01 | 3.27e-10 1.18e-11 2.27e-11 | 2.57e-02 1.72e-11 4.45e-13 | 4.9e-14 8.6e-01 co-a 9.70e-01
28 -1.5346e-01 -1.5346e-01 | 9.79e-11 2.53e-11 6.83e-12 | 2.56e-02 5.18e-12 1.33e-13 | 3.6e-12 7.4e-01 co-a 7.00e-01
29 -1.5346e-01 -1.5346e-01 | 3.91e-11 3.82e-11 2.73e-12 | 2.56e-02 2.08e-12 5.33e-14 | 1.1e-11 9.1e-02 co-a 6.00e-01
30 -1.5346e-01 -1.5346e-01 | 3.72e-11 7.38e-11 2.60e-12 | 2.56e-02 1.98e-12 5.06e-14 | 1.1e-12 3.6e-03 co-a 5.00e-02
31 -1.5346e-01 -1.5346e-01 | 3.53e-11 7.01e-11 2.47e-12 | 2.56e-02 1.88e-12 4.81e-14 | 1.0e-14 1.8e-04 co-a 5.00e-02
32 -1.5346e-01 -1.5346e-01 | 3.50e-11 6.94e-11 2.44e-12 | 2.56e-02 1.86e-12 4.76e-14 | 8.9e-15 1.0e-05 co-a 1.00e-02
33 -1.5346e-01 -1.5346e-01 | 3.46e-11 6.87e-11 2.42e-12 | 2.56e-02 1.84e-12 4.71e-14 | 1.1e-14 1.5e-05 co-a 1.00e-02
34 -1.5346e-01 -1.5346e-01 | 3.43e-11 6.81e-11 2.39e-12 | 2.56e-02 1.82e-12 4.66e-14 | 1.3e-14 1.1e-05 co-a 1.00e-02
35 -1.5346e-01 -1.5346e-01 | 3.42e-11 6.80e-11 2.39e-12 | 2.56e-02 1.82e-12 4.66e-14 | 3.0e-14 2.8e-05 co-a 1.00e-03
trying combined without adjustment
trying centering with adjustment
36 -1.5346e-01 -1.5346e-01 | 3.42e-11 6.80e-11 2.39e-12 | 2.56e-02 1.82e-12 4.66e-14 | 2.0e-14 1.5e-05 ce-a 1.00e+00
trying combined without adjustment
trying centering with adjustment
37 -1.5346e-01 -1.5346e-01 | 3.42e-11 6.80e-11 2.39e-12 | 2.56e-02 1.82e-12 4.66e-14 | 1.5e-14 8.7e-06 ce-a 1.00e+00
trying combined without adjustment
trying centering with adjustment
38 -1.5346e-01 -1.5346e-01 | 3.42e-11 6.80e-11 2.39e-12 | 2.56e-02 1.82e-12 4.66e-14 | 2.6e-14 1.1e-05 ce-a 1.00e+00
slow progress in consecutive iterations; terminating
optimal solution found; terminating
status is NearOptimal after 38 iterations and 0.821 seconds
continuous subproblem status is ALMOST_OPTIMAL
WARNING: LP matrix packed vector contains 1 |values| in [2.57175e-10, 2.57175e-10] less than or equal to 1e-09: ignored
2 1505 -1.5346e-01 -1.5734e-01 2.5322e-02
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 0 0 0
Row infeasibilities 0 0 0
Row residuals 0 0 0
Presolving model
1115 rows, 465 cols, 4334 nonzeros
1108 rows, 465 cols, 4286 nonzeros
MIP start solution is feasible, objective value is -0.153458035614
Solving MIP model with:
1108 rows
465 cols (0 binary, 30 integer, 0 implied int., 435 continuous)
4286 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.1534580356 Large 0 0 0 0 0.0s
R 0 0 0 0.00% -0.1580085928 -0.1547176912 2.13% 0 0 0 1518 0.1s
L 0 0 0 0.00% -0.1580085928 -0.1562795718 1.11% 0 0 0 1518 3.1s
6.7% inactive integer columns, restarting
Model after restart has 1103 rows, 462 cols (3 bin., 25 int., 0 impl., 434 cont.), and 4205 nonzeros
0 0 0 0.00% -0.1580085928 -0.1562795718 1.11% 0 0 0 19220 3.1s
0 0 0 0.00% -0.1580085928 -0.1562795718 1.11% 0 0 0 20391 3.2s
3.6% inactive integer columns, restarting
Model after restart has 1103 rows, 461 cols (3 bin., 24 int., 0 impl., 434 cont.), and 4169 nonzeros
0 0 0 0.00% -0.1580085928 -0.1562795718 1.11% 0 0 0 20391 3.2s
0 0 0 0.00% -0.1580085928 -0.1562795718 1.11% 1 0 0 20605 3.2s
T 44 0 19 30.40% -0.1580085928 -0.1565235831 0.95% 46 0 49 27889 4.1s
179 14 78 63.93% -0.1578753293 -0.1565235831 0.86% 84 0 107 78700 9.2s
276 16 127 64.91% -0.1578753293 -0.1565235831 0.86% 40 0 114 144702 14.3s
T 402 3 195 74.75% -0.157089602 -0.1568460752 0.16% 69 0 191 182050 16.7s
Solving report
Status Optimal
Primal bound -0.15684607523
Dual bound -0.15684607523
Gap 0% (tolerance: 0.000638%)
Solution status feasible
-0.15684607523 (objective)
0 (bound viol.)
0 (int. viol.)
0 (row viol.)
Timing 16.80 (total)
0.01 (presolve)
0.00 (postsolve)
Nodes 414
LP iterations 182969 (total)
8071 (strong br.)
0 (separation)
17702 (heuristics)
iter p_obj d_obj | abs_gap x_feas z_feas | tau kap mu | dir_res prox step alpha
0 6.0598e-01 -3.2831e+04 | 7.35e+02 5.23e-01 1.00e+00 | 1.00e+00 1.00e+00 1.00e+00 |
1 -1.1684e-01 -3.2827e+04 | 3.67e+02 5.23e-01 1.00e+00 | 5.00e-01 1.00e+00 5.00e-01 | 2.7e-08 7.9e-01 co-a 5.00e-01
2 3.1835e+00 -3.2809e+04 | 1.47e+02 5.23e-01 9.99e-01 | 2.00e-01 1.00e+00 2.00e-01 | 1.9e-09 8.0e-01 co-a 6.00e-01
3 7.5634e+01 -3.2508e+04 | 1.47e+01 5.20e-01 9.94e-01 | 2.01e-02 9.99e-01 2.00e-02 | 6.0e-09 8.5e-01 co-a 9.00e-01
4 3.8167e+02 -3.1060e+04 | 2.94e+00 5.05e-01 9.65e-01 | 4.15e-03 9.84e-01 4.00e-03 | 2.0e-11 9.8e-01 co-a 8.00e-01
5 6.3443e+02 -2.8202e+04 | 1.46e+00 4.66e-01 8.90e-01 | 2.25e-03 9.12e-01 1.99e-03 | 1.7e-13 7.9e-01 co-a 5.00e-01
6 5.2900e+02 -2.3133e+04 | 1.02e+00 3.83e-01 7.32e-01 | 1.91e-03 7.40e-01 1.39e-03 | 1.2e-13 9.2e-01 co-a 3.00e-01
7 5.4313e+01 -7.8156e+03 | 3.03e-01 1.27e-01 2.43e-01 | 1.73e-03 2.04e-01 4.12e-04 | 1.2e-13 9.3e-01 co-a 7.00e-01
8 3.1669e+01 -2.2447e+03 | 1.19e-01 3.65e-02 6.97e-02 | 2.41e-03 3.17e-02 1.61e-04 | 2.0e-14 5.9e-01 co-a 6.00e-01
9 2.0889e+00 -4.7957e+02 | 3.46e-02 7.71e-03 1.47e-02 | 3.42e-03 7.37e-03 4.70e-05 | 1.2e-13 7.1e-01 co-a 7.00e-01
10 8.0672e-01 -1.3982e+02 | 1.33e-02 2.25e-03 4.30e-03 | 4.69e-03 2.47e-03 1.81e-05 | 1.1e-14 8.0e-01 co-a 6.00e-01
11 -4.0890e-02 -3.8282e+01 | 5.06e-03 6.10e-04 1.17e-03 | 6.91e-03 5.40e-04 6.88e-06 | 3.0e-14 9.0e-01 co-a 6.00e-01
12 -5.6239e-02 -1.0858e+01 | 1.91e-03 1.72e-04 3.30e-04 | 9.79e-03 2.03e-04 2.59e-06 | 1.1e-14 5.3e-01 co-a 6.00e-01
13 -7.9996e-02 -1.8331e+00 | 3.69e-04 2.80e-05 5.35e-05 | 1.21e-02 4.01e-05 5.02e-07 | 1.0e-14 4.0e-01 co-a 8.00e-01
14 -8.6214e-02 -3.3675e-01 | 5.47e-05 4.00e-06 7.64e-06 | 1.27e-02 5.85e-06 7.45e-08 | 3.2e-15 8.7e-01 co-a 8.50e-01
15 -9.6776e-02 -2.7409e-01 | 3.78e-05 2.83e-06 5.41e-06 | 1.25e-02 4.17e-06 5.15e-08 | 9.1e-15 6.3e-01 co-a 3.00e-01
16 -1.0337e-01 -2.2753e-01 | 2.64e-05 1.98e-06 3.79e-06 | 1.25e-02 2.88e-06 3.59e-08 | 1.3e-14 4.3e-01 co-a 3.00e-01
17 -1.1051e-01 -1.9761e-01 | 1.84e-05 1.39e-06 2.66e-06 | 1.25e-02 2.01e-06 2.50e-08 | 9.8e-15 4.6e-01 co-a 3.00e-01
18 -1.1759e-01 -1.7869e-01 | 1.28e-05 9.75e-07 1.86e-06 | 1.25e-02 1.41e-06 1.75e-08 | 2.1e-14 4.5e-01 co-a 3.00e-01
19 -1.2418e-01 -1.6703e-01 | 8.96e-06 6.84e-07 1.31e-06 | 1.24e-02 9.83e-07 1.22e-08 | 1.5e-14 4.3e-01 co-a 3.00e-01
20 -1.3393e-01 -1.5543e-01 | 4.46e-06 3.43e-07 6.56e-07 | 1.24e-02 4.92e-07 6.07e-09 | 2.3e-14 9.4e-01 co-a 5.00e-01
21 -1.3754e-01 -1.5264e-01 | 3.11e-06 2.41e-07 4.61e-07 | 1.23e-02 3.44e-07 4.23e-09 | 1.6e-14 6.5e-01 co-a 3.00e-01
22 -1.4208e-01 -1.4966e-01 | 1.55e-06 1.21e-07 2.31e-07 | 1.23e-02 1.72e-07 2.11e-09 | 1.9e-14 8.4e-01 co-a 5.00e-01
23 -1.4497e-01 -1.4800e-01 | 6.20e-07 4.84e-08 9.25e-08 | 1.23e-02 6.86e-08 8.43e-10 | 2.0e-14 8.0e-01 co-a 6.00e-01
24 -1.4657e-01 -1.4717e-01 | 1.24e-07 9.68e-09 1.85e-08 | 1.23e-02 1.37e-08 1.68e-10 | 1.9e-14 8.8e-01 co-a 8.00e-01
25 -1.4693e-01 -1.4699e-01 | 1.24e-08 9.67e-10 1.85e-09 | 1.23e-02 1.37e-09 1.69e-11 | 3.0e-14 9.3e-01 co-a 9.00e-01
26 -1.4696e-01 -1.4697e-01 | 2.48e-09 1.94e-10 3.70e-10 | 1.23e-02 2.73e-10 3.37e-12 | 1.4e-13 6.4e-01 co-a 8.00e-01
27 -1.4697e-01 -1.4697e-01 | 4.95e-10 3.79e-11 7.40e-11 | 1.23e-02 5.47e-11 6.74e-13 | 7.6e-13 9.7e-01 co-a 8.00e-01
28 -1.4697e-01 -1.4697e-01 | 1.98e-10 3.48e-11 2.96e-11 | 1.23e-02 2.19e-11 2.69e-13 | 6.3e-12 3.0e-01 co-a 6.00e-01
29 -1.4697e-01 -1.4697e-01 | 1.98e-11 1.19e-10 2.96e-12 | 1.23e-02 2.19e-12 2.69e-14 | 3.0e-12 4.9e-01 co-a 9.00e-01
30 -1.4697e-01 -1.4697e-01 | 1.78e-11 1.06e-10 2.67e-12 | 1.23e-02 1.97e-12 2.43e-14 | 5.0e-12 1.3e-02 co-a 1.00e-01
31 -1.4697e-01 -1.4697e-01 | 1.69e-11 1.01e-10 2.53e-12 | 1.23e-02 1.87e-12 2.30e-14 | 1.3e-13 6.6e-04 co-a 5.00e-02
32 -1.4697e-01 -1.4697e-01 | 1.68e-11 9.97e-11 2.51e-12 | 1.23e-02 1.86e-12 2.28e-14 | 1.3e-14 6.6e-06 co-a 1.00e-02
33 -1.4697e-01 -1.4697e-01 | 1.66e-11 9.88e-11 2.48e-12 | 1.23e-02 1.84e-12 2.26e-14 | 2.4e-12 1.6e-07 co-a 1.00e-02
34 -1.4697e-01 -1.4697e-01 | 1.64e-11 9.78e-11 2.46e-12 | 1.23e-02 1.82e-12 2.24e-14 | 2.0e-14 3.9e-07 co-a 1.00e-02
trying combined without adjustment
trying centering with adjustment
35 -1.4697e-01 -1.4697e-01 | 1.64e-11 9.78e-11 2.46e-12 | 1.23e-02 1.82e-12 2.24e-14 | 1.9e-14 8.0e-07 ce-a 1.00e+00
trying combined without adjustment
trying centering with adjustment
36 -1.4697e-01 -1.4697e-01 | 1.64e-11 9.78e-11 2.46e-12 | 1.23e-02 1.82e-12 2.24e-14 | 1.7e-14 1.2e-06 ce-a 1.00e+00
trying combined without adjustment
trying centering with adjustment
37 -1.4697e-01 -1.4697e-01 | 1.64e-11 9.78e-11 2.46e-12 | 1.23e-02 1.82e-12 2.24e-14 | 9.4e-15 2.6e-06 ce-a 1.00e+00
slow progress in consecutive iterations; terminating
optimal solution found; terminating
status is NearOptimal after 37 iterations and 0.426 seconds
continuous subproblem status is ALMOST_OPTIMAL
3 1722 -1.5346e-01 -1.5685e-01 2.2077e-02
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 0 0 0
Row infeasibilities 0 0 0
Row residuals 0 0 0
Presolving model
1332 rows, 465 cols, 4985 nonzeros
1324 rows, 465 cols, 4934 nonzeros
MIP start solution is feasible, objective value is -0.153458035614
Solving MIP model with:
1324 rows
465 cols (0 binary, 30 integer, 0 implied int., 435 continuous)
4934 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.1534580356 Large 0 0 0 0 0.0s
0 0 0 0.00% -0.1580085926 -0.1534580356 2.97% 0 0 0 1685 0.1s
C 0 0 0 0.00% -0.1580085926 -0.1537252293 2.79% 0 0 0 1685 0.2s
L 0 0 0 0.00% -0.1580085926 -0.1553171258 1.73% 0 0 0 1685 8.1s
3.3% inactive integer columns, restarting
Model after restart has 1318 rows, 463 cols (3 bin., 26 int., 0 impl., 434 cont.), and 4880 nonzeros
0 0 0 0.00% -0.1580085926 -0.1553171258 1.73% 0 0 0 58942 8.1s
0 0 0 0.00% -0.1580085926 -0.1553171258 1.73% 1 0 0 59323 8.2s
114 6 50 90.50% -0.15740637 -0.1553171258 1.35% 80 0 110 96189 13.3s
Solving report
Status Optimal
Primal bound -0.155317125761
Dual bound -0.155317617009
Gap 0.000316% (tolerance: 0.000644%)
Solution status feasible
-0.155317125761 (objective)
0 (bound viol.)
0 (int. viol.)
0 (row viol.)
Timing 16.55 (total)
0.01 (presolve)
0.00 (postsolve)
Nodes 187
LP iterations 129974 (total)
18462 (strong br.)
0 (separation)
57257 (heuristics)
iter p_obj d_obj | abs_gap x_feas z_feas | tau kap mu | dir_res prox step alpha
0 6.0598e-01 -1.6449e+04 | 7.35e+02 5.23e-01 1.00e+00 | 1.00e+00 1.00e+00 1.00e+00 |
1 -1.1684e-01 -1.6447e+04 | 3.67e+02 5.23e-01 1.00e+00 | 5.00e-01 1.00e+00 5.00e-01 | 2.5e-08 7.9e-01 co-a 5.00e-01
2 3.1834e+00 -1.6434e+04 | 1.47e+02 5.23e-01 9.99e-01 | 2.00e-01 1.00e+00 2.00e-01 | 2.7e-09 8.0e-01 co-a 6.00e-01
3 7.5619e+01 -1.6223e+04 | 1.47e+01 5.20e-01 9.94e-01 | 2.01e-02 9.99e-01 2.00e-02 | 2.8e-09 8.5e-01 co-a 9.00e-01
4 2.5431e+02 -1.5585e+04 | 4.40e+00 5.09e-01 9.72e-01 | 6.17e-03 9.84e-01 5.99e-03 | 1.6e-12 5.5e-01 co-a 7.00e-01
5 3.2306e+02 -1.4750e+04 | 3.08e+00 4.86e-01 9.29e-01 | 4.52e-03 9.35e-01 4.19e-03 | 2.0e-13 7.6e-01 co-a 3.00e-01
6 2.8406e+02 -1.3574e+04 | 2.77e+00 4.47e-01 8.54e-01 | 4.43e-03 8.53e-01 3.76e-03 | 4.2e-14 4.7e-01 co-a 1.00e-01
7 1.3132e+02 -7.8811e+03 | 1.38e+00 2.59e-01 4.95e-01 | 3.82e-03 4.89e-01 1.88e-03 | 6.3e-14 2.9e-01 co-a 5.00e-01
8 1.8276e+01 -2.0420e+03 | 4.12e-01 6.60e-02 1.26e-01 | 4.50e-03 6.65e-02 5.60e-04 | 4.1e-14 9.4e-01 co-a 7.00e-01
9 3.0497e+00 -4.1158e+02 | 1.21e-01 1.32e-02 2.53e-02 | 6.72e-03 9.85e-03 1.64e-04 | 2.6e-14 6.0e-01 co-a 7.00e-01
10 2.3141e-01 -9.0290e+01 | 3.50e-02 2.89e-03 5.52e-03 | 9.24e-03 3.07e-03 4.76e-05 | 2.3e-14 7.0e-01 co-a 7.00e-01
11 -6.5462e-03 -2.5048e+01 | 1.32e-02 7.98e-04 1.53e-03 | 1.34e-02 7.31e-04 1.80e-05 | 5.3e-15 9.0e-01 co-a 6.00e-01
12 -8.2201e-02 -7.0056e+00 | 4.95e-03 2.21e-04 4.22e-04 | 1.94e-02 2.39e-04 6.73e-06 | 9.9e-15 6.6e-01 co-a 6.00e-01
13 -8.5795e-02 -1.7560e+00 | 1.43e-03 5.32e-05 1.02e-04 | 2.41e-02 7.66e-05 1.94e-06 | 8.4e-15 2.5e-01 co-a 7.00e-01
14 -9.1133e-02 -4.0106e-01 | 2.83e-04 9.87e-06 1.89e-05 | 2.60e-02 1.48e-05 3.85e-07 | 6.8e-15 6.3e-01 co-a 8.00e-01
15 -9.9558e-02 -3.1684e-01 | 1.97e-04 6.92e-06 1.32e-05 | 2.59e-02 1.04e-05 2.67e-07 | 5.3e-15 4.5e-01 co-a 3.00e-01
16 -1.0995e-01 -2.1848e-01 | 9.77e-05 3.46e-06 6.61e-06 | 2.59e-02 5.16e-06 1.33e-07 | 6.0e-15 9.4e-01 co-a 5.00e-01
17 -1.1845e-01 -1.9509e-01 | 6.78e-05 2.44e-06 4.67e-06 | 2.57e-02 3.62e-06 9.22e-08 | 1.1e-14 8.9e-01 co-a 3.00e-01
18 -1.2582e-01 -1.7970e-01 | 4.72e-05 1.72e-06 3.28e-06 | 2.56e-02 2.52e-06 6.42e-08 | 1.3e-14 8.7e-01 co-a 3.00e-01
19 -1.3228e-01 -1.7012e-01 | 3.29e-05 1.21e-06 2.30e-06 | 2.55e-02 1.76e-06 4.47e-08 | 1.4e-14 8.0e-01 co-a 3.00e-01
20 -1.3755e-01 -1.6410e-01 | 2.29e-05 8.46e-07 1.62e-06 | 2.55e-02 1.23e-06 3.12e-08 | 1.3e-14 6.5e-01 co-a 3.00e-01
21 -1.4452e-01 -1.5784e-01 | 1.14e-05 4.24e-07 8.11e-07 | 2.54e-02 6.15e-07 1.55e-08 | 1.3e-14 9.6e-01 co-a 5.00e-01
22 -1.4685e-01 -1.5619e-01 | 7.98e-06 2.97e-07 5.69e-07 | 2.53e-02 4.29e-07 1.09e-08 | 9.7e-15 5.5e-01 co-a 3.00e-01
23 -1.5086e-01 -1.5366e-01 | 2.39e-06 8.94e-08 1.71e-07 | 2.53e-02 1.29e-07 3.25e-09 | 1.8e-14 8.4e-01 co-a 7.00e-01
24 -1.5210e-01 -1.5295e-01 | 7.16e-07 2.68e-08 5.13e-08 | 2.53e-02 3.86e-08 9.74e-10 | 2.8e-14 7.7e-01 co-a 7.00e-01
25 -1.5256e-01 -1.5269e-01 | 1.07e-07 4.03e-09 7.70e-09 | 2.53e-02 5.78e-09 1.46e-10 | 1.4e-14 5.8e-01 co-a 8.50e-01
26 -1.5264e-01 -1.5265e-01 | 1.07e-08 4.03e-10 7.70e-10 | 2.53e-02 5.77e-10 1.46e-11 | 3.3e-14 5.1e-01 co-a 9.00e-01
27 -1.5264e-01 -1.5265e-01 | 1.07e-09 4.14e-11 7.70e-11 | 2.53e-02 5.76e-11 1.46e-12 | 2.4e-13 9.0e-01 co-a 9.00e-01
28 -1.5264e-01 -1.5265e-01 | 3.22e-10 8.21e-11 2.31e-11 | 2.52e-02 1.73e-11 4.38e-13 | 8.7e-12 9.3e-01 co-a 7.00e-01
29 -1.5264e-01 -1.5264e-01 | 1.29e-10 1.76e-10 9.25e-12 | 2.52e-02 6.93e-12 1.75e-13 | 1.5e-11 2.1e-01 co-a 6.00e-01
30 -1.5264e-01 -1.5264e-01 | 3.86e-11 6.64e-11 2.78e-12 | 2.52e-02 2.08e-12 5.25e-14 | 4.1e-12 1.2e-01 co-a 7.00e-01
31 -1.5264e-01 -1.5264e-01 | 3.67e-11 6.59e-11 2.64e-12 | 2.52e-02 1.98e-12 4.99e-14 | 7.4e-13 3.0e-03 co-a 5.00e-02
32 -1.5264e-01 -1.5264e-01 | 3.48e-11 6.26e-11 2.50e-12 | 2.52e-02 1.88e-12 4.74e-14 | 1.1e-14 1.5e-04 co-a 5.00e-02
33 -1.5264e-01 -1.5264e-01 | 3.45e-11 6.20e-11 2.48e-12 | 2.52e-02 1.86e-12 4.69e-14 | 2.2e-14 1.1e-05 co-a 1.00e-02
34 -1.5264e-01 -1.5264e-01 | 3.41e-11 6.13e-11 2.45e-12 | 2.52e-02 1.84e-12 4.64e-14 | 1.8e-14 2.1e-05 co-a 1.00e-02
35 -1.5264e-01 -1.5264e-01 | 3.38e-11 6.07e-11 2.43e-12 | 2.52e-02 1.82e-12 4.60e-14 | 5.1e-14 2.7e-05 co-a 1.00e-02
36 -1.5264e-01 -1.5264e-01 | 3.38e-11 6.07e-11 2.43e-12 | 2.52e-02 1.82e-12 4.59e-14 | 1.0e-14 1.2e-05 co-a 1.00e-03
37 -1.5264e-01 -1.5264e-01 | 3.37e-11 6.07e-11 2.43e-12 | 2.52e-02 1.82e-12 4.59e-14 | 1.5e-14 1.9e-05 co-a 5.00e-04
trying combined without adjustment
trying centering with adjustment
38 -1.5264e-01 -1.5264e-01 | 3.37e-11 6.07e-11 2.43e-12 | 2.52e-02 1.82e-12 4.59e-14 | 9.7e-15 1.6e-06 ce-a 1.00e+00
trying combined without adjustment
trying centering with adjustment
39 -1.5264e-01 -1.5264e-01 | 3.37e-11 6.07e-11 2.43e-12 | 2.52e-02 1.82e-12 4.59e-14 | 7.4e-14 2.5e-05 ce-a 1.00e+00
slow progress in consecutive iterations; terminating
optimal solution found; terminating
status is NearOptimal after 39 iterations and 0.44 seconds
continuous subproblem status is ALMOST_OPTIMAL
4 1939 -1.5346e-01 -1.5532e-01 1.2117e-02
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 0 0 0
Row infeasibilities 0 0 0
Row residuals 0 0 0
Presolving model
1549 rows, 465 cols, 5636 nonzeros
1534 rows, 465 cols, 5564 nonzeros
MIP start solution is feasible, objective value is -0.153458035614
Solving MIP model with:
1534 rows
465 cols (0 binary, 30 integer, 0 implied int., 435 continuous)
5564 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.1534580356 Large 0 0 0 0 0.0s
0 0 0 0.00% -0.1580085926 -0.1534580356 2.97% 0 0 0 1884 0.2s
L 0 0 0 0.00% -0.1580085926 -0.154287354 2.41% 1 0 4 1884 11.0s
3.3% inactive integer columns, restarting
Model after restart has 1527 rows, 463 cols (1 bin., 28 int., 0 impl., 434 cont.), and 5501 nonzeros
0 0 0 0.00% -0.1580085926 -0.154287354 2.41% 0 0 0 89821 11.1s
0 0 0 0.00% -0.1580085926 -0.154287354 2.41% 0 0 0 90506 11.2s
B 28 0 6 12.52% -0.1580085926 -0.1551639279 1.83% 7 0 7 100471 12.8s
88 2 37 20.80% -0.1580085926 -0.1551639279 1.83% 26 0 31 146716 17.9s
176 3 82 96.09% -0.1553838712 -0.1551639279 0.14% 59 0 117 189163 23.1s
Solving report
Status Optimal
Primal bound -0.155163927932
Dual bound -0.155163927932
Gap 0% (tolerance: 0.000644%)
Solution status feasible
-0.155163927932 (objective)
0 (bound viol.)
0 (int. viol.)
0 (row viol.)
Timing 23.12 (total)
0.01 (presolve)
0.00 (postsolve)
Nodes 179
LP iterations 189658 (total)
19933 (strong br.)
0 (separation)
87937 (heuristics)
iter p_obj d_obj | abs_gap x_feas z_feas | tau kap mu | dir_res prox step alpha
0 6.0598e-01 -1.6449e+04 | 7.35e+02 5.23e-01 1.00e+00 | 1.00e+00 1.00e+00 1.00e+00 |
1 -1.1684e-01 -1.6447e+04 | 3.67e+02 5.23e-01 1.00e+00 | 5.00e-01 1.00e+00 5.00e-01 | 2.5e-08 7.9e-01 co-a 5.00e-01
2 3.1834e+00 -1.6434e+04 | 1.47e+02 5.23e-01 9.99e-01 | 2.00e-01 1.00e+00 2.00e-01 | 7.6e-09 8.0e-01 co-a 6.00e-01
3 7.5619e+01 -1.6223e+04 | 1.47e+01 5.20e-01 9.94e-01 | 2.01e-02 9.99e-01 2.00e-02 | 5.5e-11 8.5e-01 co-a 9.00e-01
4 2.5431e+02 -1.5585e+04 | 4.40e+00 5.09e-01 9.72e-01 | 6.17e-03 9.84e-01 5.99e-03 | 6.3e-13 5.5e-01 co-a 7.00e-01
5 3.2306e+02 -1.4750e+04 | 3.08e+00 4.86e-01 9.29e-01 | 4.52e-03 9.35e-01 4.19e-03 | 7.1e-14 7.6e-01 co-a 3.00e-01
6 2.8409e+02 -1.3574e+04 | 2.77e+00 4.47e-01 8.54e-01 | 4.43e-03 8.53e-01 3.76e-03 | 7.0e-14 4.7e-01 co-a 1.00e-01
7 1.3141e+02 -7.8824e+03 | 1.38e+00 2.59e-01 4.95e-01 | 3.82e-03 4.89e-01 1.88e-03 | 6.1e-14 2.9e-01 co-a 5.00e-01
8 1.8308e+01 -2.0431e+03 | 4.12e-01 6.60e-02 1.26e-01 | 4.49e-03 6.66e-02 5.60e-04 | 4.1e-14 9.4e-01 co-a 7.00e-01
9 3.0591e+00 -4.1202e+02 | 1.21e-01 1.32e-02 2.53e-02 | 6.72e-03 9.89e-03 1.64e-04 | 1.9e-14 6.0e-01 co-a 7.00e-01
10 2.3339e-01 -9.0379e+01 | 3.50e-02 2.89e-03 5.53e-03 | 9.23e-03 3.07e-03 4.76e-05 | 1.5e-14 6.8e-01 co-a 7.00e-01
11 -5.7666e-03 -2.5045e+01 | 1.32e-02 7.98e-04 1.53e-03 | 1.34e-02 7.30e-04 1.80e-05 | 1.0e-14 8.3e-01 co-a 6.00e-01
12 -8.1537e-02 -7.0103e+00 | 4.95e-03 2.21e-04 4.22e-04 | 1.94e-02 2.41e-04 6.73e-06 | 9.6e-15 6.6e-01 co-a 6.00e-01
13 -8.5274e-02 -1.7562e+00 | 1.43e-03 5.32e-05 1.02e-04 | 2.41e-02 7.66e-05 1.95e-06 | 1.2e-14 2.5e-01 co-a 7.00e-01
14 -9.0604e-02 -4.0042e-01 | 2.83e-04 9.87e-06 1.89e-05 | 2.60e-02 1.48e-05 3.85e-07 | 3.5e-15 7.1e-01 co-a 8.00e-01
15 -9.8991e-02 -3.1616e-01 | 1.97e-04 6.92e-06 1.32e-05 | 2.59e-02 1.04e-05 2.68e-07 | 5.6e-15 5.7e-01 co-a 3.00e-01
16 -1.0520e-01 -2.5692e-01 | 1.37e-04 4.83e-06 9.24e-06 | 2.60e-02 7.21e-06 1.87e-07 | 6.8e-15 4.6e-01 co-a 3.00e-01
17 -1.1209e-01 -2.1829e-01 | 9.58e-05 3.38e-06 6.47e-06 | 2.60e-02 5.03e-06 1.30e-07 | 9.0e-15 5.2e-01 co-a 3.00e-01
18 -1.1926e-01 -1.9367e-01 | 6.69e-05 2.37e-06 4.53e-06 | 2.60e-02 3.52e-06 9.10e-08 | 7.9e-15 5.8e-01 co-a 3.00e-01
19 -1.2622e-01 -1.7839e-01 | 4.67e-05 1.66e-06 3.18e-06 | 2.59e-02 2.46e-06 6.36e-08 | 1.6e-14 6.2e-01 co-a 3.00e-01
20 -1.3241e-01 -1.6898e-01 | 3.26e-05 1.17e-06 2.23e-06 | 2.59e-02 1.72e-06 4.44e-08 | 1.1e-14 5.9e-01 co-a 3.00e-01
21 -1.3750e-01 -1.6314e-01 | 2.28e-05 8.17e-07 1.56e-06 | 2.58e-02 1.20e-06 3.10e-08 | 1.5e-14 4.5e-01 co-a 3.00e-01
22 -1.4575e-01 -1.5603e-01 | 9.10e-06 3.27e-07 6.26e-07 | 2.58e-02 4.82e-07 1.24e-08 | 2.0e-14 9.8e-01 co-a 6.00e-01
23 -1.4759e-01 -1.5480e-01 | 6.35e-06 2.30e-07 4.39e-07 | 2.57e-02 3.37e-07 8.64e-09 | 1.3e-14 8.0e-01 co-a 3.00e-01
24 -1.5074e-01 -1.5291e-01 | 1.90e-06 6.91e-08 1.32e-07 | 2.57e-02 1.01e-07 2.58e-09 | 9.4e-15 9.0e-01 co-a 7.00e-01
25 -1.5192e-01 -1.5225e-01 | 2.85e-07 1.04e-08 1.98e-08 | 2.57e-02 1.51e-08 3.88e-10 | 2.0e-14 6.4e-01 co-a 8.50e-01
26 -1.5211e-01 -1.5214e-01 | 2.85e-08 1.03e-09 1.98e-09 | 2.57e-02 1.50e-09 3.88e-11 | 5.5e-14 9.3e-01 co-a 9.00e-01
27 -1.5213e-01 -1.5213e-01 | 4.28e-09 1.55e-10 2.97e-10 | 2.57e-02 2.26e-10 5.82e-12 | 2.8e-13 7.0e-01 co-a 8.50e-01
28 -1.5213e-01 -1.5213e-01 | 1.28e-09 4.76e-11 8.90e-11 | 2.57e-02 6.79e-11 1.75e-12 | 1.5e-12 2.6e-01 co-a 7.00e-01
29 -1.5213e-01 -1.5213e-01 | 1.28e-10 1.55e-11 8.90e-12 | 2.57e-02 6.79e-12 1.75e-13 | 9.6e-13 3.5e-01 co-a 9.00e-01
30 -1.5213e-01 -1.5213e-01 | 6.41e-11 3.55e-11 4.45e-12 | 2.57e-02 3.40e-12 8.72e-14 | 5.8e-12 2.0e-01 co-a 5.00e-01
31 -1.5213e-01 -1.5213e-01 | 4.49e-11 2.36e-11 3.12e-12 | 2.57e-02 2.38e-12 6.11e-14 | 5.9e-13 3.4e-02 co-a 3.00e-01
32 -1.5213e-01 -1.5213e-01 | 4.04e-11 2.13e-11 2.80e-12 | 2.57e-02 2.14e-12 5.50e-14 | 2.1e-14 3.6e-03 co-a 1.00e-01
33 -1.5213e-01 -1.5213e-01 | 3.64e-11 1.91e-11 2.52e-12 | 2.57e-02 1.93e-12 4.95e-14 | 3.8e-14 3.6e-04 co-a 1.00e-01
34 -1.5213e-01 -1.5213e-01 | 3.45e-11 1.81e-11 2.40e-12 | 2.57e-02 1.83e-12 4.70e-14 | 1.3e-14 1.8e-05 co-a 5.00e-02
35 -1.5213e-01 -1.5213e-01 | 3.44e-11 1.80e-11 2.39e-12 | 2.57e-02 1.82e-12 4.68e-14 | 1.1e-14 2.1e-05 co-a 5.00e-03
36 -1.5213e-01 -1.5213e-01 | 3.44e-11 1.80e-11 2.38e-12 | 2.57e-02 1.82e-12 4.67e-14 | 2.1e-14 2.9e-05 co-a 5.00e-04
trying combined without adjustment
trying centering with adjustment
37 -1.5213e-01 -1.5213e-01 | 3.44e-11 1.80e-11 2.38e-12 | 2.57e-02 1.82e-12 4.67e-14 | 1.3e-14 3.2e-05 ce-a 1.00e+00
trying combined without adjustment
trying centering with adjustment
38 -1.5213e-01 -1.5213e-01 | 3.44e-11 1.80e-11 2.38e-12 | 2.57e-02 1.82e-12 4.67e-14 | 1.0e-14 1.9e-05 ce-a 1.00e+00
slow progress in consecutive iterations; terminating
optimal solution found; terminating
status is NearOptimal after 38 iterations and 0.408 seconds
continuous subproblem status is ALMOST_OPTIMAL
WARNING: LP matrix packed vector contains 1 |values| in [5.16794e-12, 5.16794e-12] less than or equal to 1e-09: ignored
5 2156 -1.5346e-01 -1.5516e-01 1.1116e-02
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 0 0 0
Row infeasibilities 0 0 0
Row residuals 0 0 0
Presolving model
1766 rows, 465 cols, 6286 nonzeros
1742 rows, 465 cols, 6187 nonzeros
MIP start solution is feasible, objective value is -0.153458035614
Solving MIP model with:
1742 rows
465 cols (0 binary, 30 integer, 0 implied int., 435 continuous)
6187 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.1534580356 Large 0 0 0 0 0.0s
0 0 0 0.00% -0.1580085926 -0.1534580356 2.97% 0 0 0 1775 0.4s
julia(53732,0x7ff84b818700) malloc: Incorrect checksum for freed object 0x7fb3c477d200: probably modified after being freed.
Corrupt value: 0x0
julia(53732,0x7ff84b818700) malloc: *** set a breakpoint in malloc_error_break to debug
[53732] signal (6): Abort trap: 6
in expression starting at /private/tmp/hypatia.jl:51
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
pthread_kill at /usr/lib/system/libsystem_pthread.dylib (unknown line)
abort at /usr/lib/system/libsystem_c.dylib (unknown line)
malloc_vreport at /usr/lib/system/libsystem_malloc.dylib (unknown line)
malloc_zone_error at /usr/lib/system/libsystem_malloc.dylib (unknown line)
small_free_list_remove_ptr_no_clear at /usr/lib/system/libsystem_malloc.dylib (unknown line)
free_small at /usr/lib/system/libsystem_malloc.dylib (unknown line)
_ZNK11HSimplexNla16debugCheckInvertENSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEi at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZNK4HEkk19debugNlaCheckInvertENSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEi at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN4HEkk13computeFactorEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN4HEkk33initialiseSimplexLpBasisAndFactorEb at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN4HEkk18initialiseForSolveEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN4HEkk5solveEb at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_Z14solveLpSimplexR19HighsLpSolverObject at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_Z7solveLpR19HighsLpSolverObjectNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN5Highs11callSolveLpER7HighsLpNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN5Highs3runEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN17HighsLpRelaxation3runEb at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN17HighsLpRelaxation9resolveLpEP11HighsDomain at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN11HighsSearch12evaluateNodeEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN14HighsMipSolver3runEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN21HighsPrimalHeuristics11solveSubMipERK7HighsLpRK10HighsBasisdNSt3__16vectorIdNS6_9allocatorIdEEEESA_iii at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN21HighsPrimalHeuristics15rootReducedCostEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN18HighsMipSolverData16evaluateRootNodeEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN14HighsMipSolver3runEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN5Highs12callSolveMipEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN5Highs3runEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
Highs_run at /Users/oscar/.julia/packages/HiGHS/mp5YH/src/gen/libhighs.jl:285 [inlined]
optimize! at /Users/oscar/.julia/packages/HiGHS/mp5YH/src/MOI_wrapper.jl:1930
optimize! at /Users/oscar/.julia/packages/MathOptInterface/DDWnF/src/Bridges/bridge_optimizer.jl:380 [inlined]
optimize! at /Users/oscar/.julia/packages/MathOptInterface/DDWnF/src/Bridges/bridge_optimizer.jl:380 [inlined]
optimize! at /Users/oscar/.julia/packages/MathOptInterface/DDWnF/src/Utilities/cachingoptimizer.jl:325
unknown function (ip: 0x1196d38cc)
_jl_invoke at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-grannysmith-C07ZQ07RJYVY.0/build/default-grannysmith-C07ZQ07RJYVY-0/julialang/julia-release-1-dot-10/src/gf.c:0 [inlined]
ijl_apply_generic at /Users/julia/.julia/scratchspaces/a66863c6-20e8-4ff4-8a62-49f30b1f605e/agent-cache/default-grannysmith-C07ZQ07RJYVY.0/build/default-grannysmith-C07ZQ07RJYVY-0/julialang/julia-release-1-dot-10/src/gf.c:3076
[53732] signal (4.1): Illegal instruction: 4
in expression starting at /private/tmp/hypatia.jl:51
zsh: abort julia --project=hyp hypatia.jl
So I caught the failing MPS file, but solving it in a new session doesn't trigger the crash. I think the problem is I'm missing the MIP start. So let me try and snatch that.
WARNING: LP matrix packed vector contains 1 |values| in [1.14295e-11, 1.14295e-11] less than or equal to 1e-09: ignored
6 2373 -1.5346e-01 -1.5421e-01 4.9279e-03
Writing the model to /tmp/highs.mps
WARNING: There are empty or excessively-long column names: using constructed names with prefix "c"
WARNING: There are empty or excessively-long row names: using constructed names with prefix "r"
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 0 0 0
Row infeasibilities 0 0 0
Row residuals 0 0 0
Presolving model
1983 rows, 465 cols, 6936 nonzeros
1957 rows, 465 cols, 6831 nonzeros
MIP start solution is feasible, objective value is -0.153458035614
Solving MIP model with:
1957 rows
465 cols (0 binary, 30 integer, 0 implied int., 435 continuous)
6831 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.1534580356 Large 0 0 0 0 0.0s
0 0 0 0.00% -0.1580085932 -0.1534580356 2.97% 0 0 0 2469 0.3s
L 0 0 0 0.00% -0.1580085932 -0.1535729684 2.89% 1 0 1 2469 14.6s
3.3% inactive integer columns, restarting
Model after restart has 1948 rows, 463 cols (0 bin., 29 int., 0 impl., 434 cont.), and 6750 nonzeros
0 0 0 0.00% -0.1580085932 -0.1535729684 2.89% 0 0 0 86438 14.6s
0 0 0 0.00% -0.1580085932 -0.1535729684 2.89% 0 0 0 87849 14.9s
33 1 11 13.63% -0.1580085932 -0.1535729684 2.89% 9 0 11 110500 20.3s
61 3 24 16.28% -0.1580085932 -0.1535729684 2.89% 15 0 19 130758 26.1s
julia(54516,0x7ff84b818700) malloc: Heap corruption detected, free list is damaged at 0x600002243d00
*** Incorrect guard value: 7103875909095
julia(54516,0x7ff84b818700) malloc: *** set a breakpoint in malloc_error_break to debug
[54516] signal (6): Abort trap: 6
in expression starting at /private/tmp/hypatia.jl:51
julia(54516,0x700009c97000) malloc: Heap corruption detected, free list is damaged at 0x6000022a9200
*** Incorrect guard value: 0
julia(54516,0x700009c97000) malloc: *** set a breakpoint in malloc_error_break to debug
zsh: abort julia --project=hyp hypatia.jl
julia> import HiGHS
julia> h = HiGHS.Highs_create()
Ptr{Nothing} @0x00007fadd3428a00
julia> HiGHS.Highs_readModel(h, "/tmp/highs.mps")
Running HiGHS 1.6.0: Copyright (c) 2023 HiGHS under MIT licence terms
0
julia> HiGHS.Highs_setDoubleOptionValue(h, "mip_feasibility_tolerance", 1e-8)
0
julia> HiGHS.Highs_setDoubleOptionValue(h, "mip_rel_gap", 1e-6)
0
julia> HiGHS.Highs_run(h)
Presolving model
1983 rows, 465 cols, 6936 nonzeros
1957 rows, 465 cols, 6831 nonzeros
Solving MIP model with:
1957 rows
465 cols (0 binary, 30 integer, 0 implied int., 435 continuous)
6831 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf inf inf 0 0 0 0 0.0s
R 0 0 0 0.00% -0.1580085932 -0.1475410455 7.09% 0 0 0 2392 0.2s
C 0 0 0 0.00% -0.1580085932 -0.1529630716 3.30% 0 0 0 2393 0.2s
L 0 0 0 0.00% -0.1580085932 -0.1535729685 2.89% 0 0 0 2393 3.4s
3.3% inactive integer columns, restarting
Model after restart has 1948 rows, 463 cols (0 bin., 29 int., 0 impl., 434 cont.), and 6750 nonzeros
0 0 0 0.00% -0.1580085932 -0.1535729685 2.89% 0 0 0 31600 3.5s
0 0 0 0.00% -0.1580085928 -0.1535729685 2.89% 0 0 0 32974 3.6s
102 13 45 65.36% -0.1572981269 -0.1535729685 2.43% 93 0 101 73885 8.7s
146 12 63 67.00% -0.1572981269 -0.1535729685 2.43% 99 0 109 100991 13.7s
T 253 6 115 96.87% -0.1550178167 -0.1540442061 0.63% 95 1 188 115892 16.0s
Solving report
Status Optimal
Primal bound -0.154044206066
Dual bound -0.154044206066
Gap 0% (tolerance: 0.000649%)
Solution status feasible
-0.154044206066 (objective)
0 (bound viol.)
0 (int. viol.)
0 (row viol.)
Timing 16.32 (total)
0.01 (presolve)
0.00 (postsolve)
Nodes 266
LP iterations 119179 (total)
31663 (strong br.)
16 (separation)
29207 (heuristics)
0
julia> HiGHS.Highs_destroy(h)
@dhendryc perhaps in the mean time, use a different MIP solver, like Gurobi or SCIP.
I'm really struggling to create a standalone reproducer. A large part of it seems to be the iterative nature of the Pajarito solve.
@jajhall is this stack trace helpful at all?
julia(53732,0x7ff84b818700) malloc: Incorrect checksum for freed object 0x7fb3c477d200: probably modified after being freed.
Corrupt value: 0x0
julia(53732,0x7ff84b818700) malloc: *** set a breakpoint in malloc_error_break to debug
[53732] signal (6): Abort trap: 6
in expression starting at /private/tmp/hypatia.jl:51
__pthread_kill at /usr/lib/system/libsystem_kernel.dylib (unknown line)
pthread_kill at /usr/lib/system/libsystem_pthread.dylib (unknown line)
abort at /usr/lib/system/libsystem_c.dylib (unknown line)
malloc_vreport at /usr/lib/system/libsystem_malloc.dylib (unknown line)
malloc_zone_error at /usr/lib/system/libsystem_malloc.dylib (unknown line)
small_free_list_remove_ptr_no_clear at /usr/lib/system/libsystem_malloc.dylib (unknown line)
free_small at /usr/lib/system/libsystem_malloc.dylib (unknown line)
_ZNK11HSimplexNla16debugCheckInvertENSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEi at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZNK4HEkk19debugNlaCheckInvertENSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEEi at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
_ZN4HEkk13computeFactorEv at /Users/oscar/.julia/artifacts/c0c2656556da74046e66a7912b6d3d299b4c5a2d/lib/libhighs.1.6.0.dylib (unknown line)
Here's a different one:
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 0 0 0
Row infeasibilities 0 0 0
Row residuals 0 0 0
Presolving model
2417 rows, 465 cols, 8238 nonzeros
2401 rows, 465 cols, 8163 nonzeros
MIP start solution is feasible, objective value is -0.153458028762
Solving MIP model with:
2401 rows
465 cols (0 binary, 30 integer, 0 implied int., 435 continuous)
8163 nonzeros
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.1534580288 Large 0 0 0 0 0.0s
0 0 0 0.00% -inf -0.1534580288 Large 0 0 0 3016 0.7s
C 0 0 0 0.00% -inf -0.1534580621 Large 0 0 0 3016 0.7s
L 0 0 0 0.00% -inf -0.1536649504 Large 0 0 0 3016 11.8s
22 4 5 19.14% -0.1580085925 -0.1536649504 2.83% 8 0 9 87008 17.8s
54 4 18 42.58% -0.1580085925 -0.1536649504 2.83% 29 0 34 97929 23.5s
94 4 38 46.70% -0.1580085925 -0.1536649504 2.83% 60 0 70 113434 29.2s
T 114 10 45 48.68% -0.1569462928 -0.1536649518 2.14% 68 0 80 117387 32.7s
140 10 56 53.56% -0.1569462928 -0.1536649518 2.14% 80 0 91 124071 39.9s
156 10 61 54.28% -0.1569462928 -0.1536649518 2.14% 84 0 98 127535 46.7s
181 11 72 55.57% -0.1569462928 -0.1536649518 2.14% 91 0 110 135313 53.2s
203 11 83 57.95% -0.1569462928 -0.1536649518 2.14% 99 0 121 140848 58.3s
256 16 107 64.06% -0.1569462928 -0.1536649518 2.14% 127 0 153 151876 64.3s
269 15 112 66.60% -0.1562551723 -0.1536649518 1.69% 133 0 161 155835 69.3s
309 15 131 70.50% -0.1562551723 -0.1536649518 1.69% 151 0 186 162588 75.5s
318 15 133 72.12% -0.1562551723 -0.1536649518 1.69% 152 0 187 167241 84.0s
julia(55117,0x7ff84b818700) malloc: Heap corruption detected, free list is damaged at 0x600001ed43c0
*** Incorrect guard value: 9251359556902
julia(55117,0x7ff84b818700) malloc: *** set a breakpoint in malloc_error_break to debug
[55117] signal (6): Abort trap: 6
in expression starting at /private/tmp/hypatia.jl:51
julia(55117,0x700006050000) malloc: Heap corruption detected, free list is damaged at 0x600001edc9d0
*** Incorrect guard value: 0
julia(55117,0x700006050000) malloc: *** set a breakpoint in malloc_error_break to debug
I managed to trigger this in a very unhelpful way
WARNING: Failed to solve node with all integer columns fixed. Declaring node infeasible.
547 14 234 94.56% -0.1546302467 -0.1536649524 0.63% 135 0 332 259760 200.7s
581 11 251 96.72% -0.1546302467 -0.1536649524 0.63% 137 0 356 271128 205.7s
614 6 270 99.65% -0.1538506824 -0.1536649524 0.12% 150 0 390 280301 211.3s
Solving report
Status Optimal
Primal bound -0.153664952386
Dual bound -0.153665178278
Gap 0.000147% (tolerance: 0.000651%)
Solution status feasible
-0.153664952386 (objective)
0 (bound viol.)
0 (int. viol.)
0 (row viol.)
Timing 211.42 (total)
0.01 (presolve)
0.00 (postsolve)
Nodes 620
LP iterations 280918 (total)
47854 (strong br.)
0 (separation)
56809 (heuristics)
julia> import MathOptInterface as MOI; import LinearAlgebra
julia> x = MOI.VariableIndex(1)
julia(55690,0x7ff84b818700) malloc: Heap corruption detected, free list is damaged at 0x600000947200
*** Incorrect guard value: 8589934593992
julia(55690,0x7ff84b818700) malloc: *** set a breakpoint in malloc_error_break to debug
[55690] signal (6): Abort trap: 6
in expression starting at none:0
julia(55690,0x700005667000) malloc: Heap corruption detected, free list is damaged at 0x600000946000
*** Incorrect guard value: 4631491120
julia(55690,0x700005667000) malloc: *** set a breakpoint in malloc_error_break to debug
zsh: abort julia --project=.
The warning you get from the HiGHS MIP solver is not one I've ever seen. It could be that it yields incorrect behaviour. I'll have a look.
Rather than use gurobi or SCIP, users can try setting a different random seed before calling HiGHS::run()
It works with SCIP. And it does work for HiGHS in some instances. Would be weird if that was due to a random seed, though.
I don't think the WARNING: Failed to solve node with all integer columns fixed. Declaring node infeasible. is relevant. It didn't occur in other crashes. I guess I need to compile a debug version of HiGHS.
OK Fair enough
Would be weird if that was due to a random seed, though.
With a different random seed the solver will take a different path so maybe not hit the same error
Just confirming that this is still a problem. But my efforts to create a pure HiGHS reproducer have not been successful.
Coefficient ranges:
Matrix [2e-09, 3e+01]
Cost [1e+00, 1e+00]
Bound [0e+00, 0e+00]
RHS [1e+00, 3e+00]
Assessing feasibility of MIP using primal feasibility and integrality tolerance of 1e-08
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 0 0 0
Row infeasibilities 0 0 0
Row residuals 0 0 0
Presolving model
1332 rows, 465 cols, 4985 nonzeros 0s
1322 rows, 465 cols, 4928 nonzeros 0s
MIP start solution is feasible, objective value is -0.151653076173
Solving MIP model with:
1322 rows
465 cols (0 binary, 30 integer, 0 implied int., 435 continuous)
4928 nonzeros
Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic; L => Sub-MIP;
P => Empty MIP; R => Randomized rounding; S => Solve LP; T => Evaluate node; U => Unbounded;
z => Trivial zero; l => Trivial lower; u => Trivial upper; p => Trivial point
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Src Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.1516530762 Large 0 0 0 0 0.0s
R 0 0 0 0.00% -0.1580085932 -0.1543643964 2.36% 0 0 0 2463 0.1s
[75316] signal (11.1): Segmentation fault: 11
in expression starting at /tmp/hypatia/main.jl:53
_ZN7HFactor11buildFinishEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN7HFactor5buildEP15HighsTimerClock at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN11HSimplexNla6invertEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN4HEkk13computeFactorEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN4HEkk33initialiseSimplexLpBasisAndFactorEb at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN4HEkk18initialiseForSolveEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN4HEkk5solveEb at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_Z14solveLpSimplexR19HighsLpSolverObject at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_Z7solveLpR19HighsLpSolverObjectNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN5Highs11callSolveLpER7HighsLpNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZZN5Highs5solveEvENK3$_0clER7HighsLpRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERd at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN5Highs5solveEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN17HighsLpRelaxation3runEb at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN17HighsLpRelaxation9resolveLpEP11HighsDomain at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN11HighsSearch12evaluateNodeEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN11HighsSearch4diveEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN14HighsMipSolver3runEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN21HighsPrimalHeuristics11solveSubMipERK7HighsLpRK10HighsBasisdNSt3__16vectorIdNS6_9allocatorIdEEEESA_iii at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN21HighsPrimalHeuristics15rootReducedCostEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN18HighsMipSolverData16evaluateRootNodeEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN14HighsMipSolver3runEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN5Highs12callSolveMipEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN5Highs5solveEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
Highs_run at /Users/oscar/.julia/dev/HiGHS/src/gen/libhighs.jl:364 [inlined]
optimize! at /Users/oscar/.julia/dev/HiGHS/src/MOI_wrapper.jl:2158
The MPS file: log2.txt (download and rename)
using HiGHS
highs = Highs_create()
Highs_readModel(highs, "/tmp/hypatia/log2.mps")
ret = Highs_run(highs)
index = Int32[160, 210, 211]
value = [0.027716058468715117, 0.09140473855744354, -0.14285714401611166]
ret = Highs_addRow(highs, 0.0, Inf, 3, index, value)
index = Int32[168, 210, 212]
value = [0.08645287577455307, -0.07110776325022987, -0.14285714401611166]
ret = Highs_addRow(highs, 0.0, Inf, 3, index, value)
index = Int32[176, 210, 213]
value = [0.18014292280865904, -0.17598648905497463, -0.14285714401611166]
ret = Highs_addRow(highs, 0.0, Inf, 3, index, value)
col_value = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 0.0, 0.10000000000000003, 0.09999999999999998, 0.10000000000000002, 0.0999999999999997, 0.09999999999999999, 0.10000000000000003, 0.2000000000000001, 0.10000000000000005, 0.10000000000000002, 6.143958570009227e-17, 0.08989012769442448, 0.07220932128680141, 0.0352521601580178, 0.023049307836325993, 0.03596218790993544, 0.0883353771762734, 0.10997880021778395, 0.08587975576854548, 0.04279544275988975, 1.7030821197749901e-12, 0.004234421424524501, 0.002935771224649386, 0.04550112833408798, 0.02302043831686157, 0.025235813220781028, 0.031938549301744945, -0.07353058737711736, -0.05472034203659071, 0.05343311365435198, 3.4280772664985193e-12, -0.04689131669823902, 0.018029419466667973, 0.01956701067655975, 0.0062964331045876065, 0.037005089525556284, -0.006460324867265374, -0.020043369079720735, 0.03319608436924963, -0.01006043021655742, -1.2794210135780304e-12, -0.013800411699883858, 0.023655375566162318, 0.030200785352213905, -0.0009828992876134632, -0.028860357902237788, 0.007061242560819414, 0.01993373656745131, -0.016113299457449673, -0.01887629925630621, -5.219297216640939e-13, 0.011085029717693151, 0.012312972942049333, -0.007674787911775963, 0.06616491552902533, -0.018421196580493633, -0.02113278323984752, -0.020275039522451258, 0.009213007692458558, -0.00670884182608282, 1.2446571551194552e-12, -0.01047846128625865, 0.027615408365906036, -0.01601079047024813, -0.0007079982072612095, 0.008281915481510214, -0.022871049160056056, 0.02955442470181519, -0.017186391929977243, 0.025746299517474966, 8.977887877570367e-13, -0.020636049811552537, -0.04204880656145055, 0.01092714816697224, 0.029645278088322957, 0.011995671961611207, 0.007319149900961663, 0.0624020670144705, -0.010164996744226464, 0.004354891135213923, 3.274769344585593e-12, 0.08080235371546947, 0.052141863954588495, 0.012427151107469675, 0.005312709067068595, 0.012932792742076099, 0.07803139175514197, 0.06047668563537779, 0.07375332765524344, 0.018314502359284238, 6.305953906297738e-9, 0.0001793042707088809, 8.618854954448377e-5, 0.02070352781804701, 0.005299406825345989, 0.006368463711423901, 0.010200710337094614, 0.027033737421798376, 0.029943159346376553, 0.028550977368757616, 2.0522193188881523e-9, 0.021987956271258755, 0.0032506001191893764, 0.003828679524191073, 0.00039645115480422025, 0.013693766963023794, 0.0004173584303198368, 0.002008683676652387, 0.011019800630026843, 0.0010121230178007778, 9.188495105156244e-10, 0.001904513894941692, 0.005595768195369511, 0.009120874622153843, 9.661174350469305e-6, 0.008329202845747051, 0.0004986117292101184, 0.00198676953182457, 0.0025963844580329143, 0.0035631469999948882, 5.344029005644164e-10, 0.0012287793004723392, 0.0015160934887099237, 0.0005890241569749031, 0.043777960927599543, 0.0033934052963916226, 0.004465945736274884, 0.0020553866002056657, 0.0008487955694550754, 0.00045008604854832377, 9.301992323621557e-10, 0.001097981753823956, 0.007626108035892825, 0.0025634543591829396, 5.012859288031187e-6, 0.0006859014850380895, 0.005230849140907799, 0.0043673203416162145, 0.0029537209201066237, 0.006628719632447226, 4.95296736502626e-10, 0.0042584659500023965, 0.017681021763164266, 0.0011940261027683563, 0.00878842556104972, 0.0014389618902403267, 0.0005356999849043904, 0.01947009026926299, 0.0010332720203051681, 0.0001896512002343511, 8.711881395423164e-10, 0.39419278744899733, 0.2825736006925665, 0.23393675981842824, 0.3693796862871027, 0.23954835023091225, 0.26233937933520035, 0.2579261079888629, 2.7755575615628914e-17, 0.12836547872533643, 0.0554170117731227, -0.030113498666962377, 0.0071677469163563545, 0.02091717775616718, 0.012134053229346381, -3.469446951953614e-17, 5.551115123125783e-17, 0.057615421163861466, 0.011792497523566349, 0.06510468420691196, -0.006857554509634614, 0.02848542734578438, 2.7755575615628914e-17, -2.7755575615628914e-17, -1.3877787807814457e-17, 0.0336049342515613, 0.011119217951726046, 0.003986818070404647, 0.008967713393544907, 4.85722573273506e-17, 0.0, 3.469446951953614e-18, 5.551115123125783e-17, 0.05832547851826049, 0.0074414186342552785, -0.024644296226585816, 3.122502256758253e-17, 0.0, 6.938893903907228e-18, 0.0, 1.3877787807814457e-17, 0.031159069269547358, -0.01612106260584778, 3.8163916471489756e-17, 0.0, 2.0816681711721685e-17, -2.0816681711721685e-17, 2.7755575615628914e-17, -6.938893903907228e-17, 0.05458961604663723, 0.07167683009560058, 0.07167683017667047, 0.12218552502002347, 0.04176708897942017, -0.015652591601132956, -0.05429481444959562, -0.014774639181157226, -0.05971125745361597, -0.01951931131394186]
ret = Highs_setSolution(highs, col_value, C_NULL, C_NULL, C_NULL)
ret = Highs_run(highs)
Highs_destroy(highs)
Yields
Running HiGHS 1.9.0 (git hash: 66f735e60): Copyright (c) 2024 HiGHS under MIT licence terms
Coefficient ranges:
Matrix [6e-07, 7e+01]
Cost [1e+00, 1e+00]
Bound [0e+00, 0e+00]
RHS [1e+00, 3e+00]
Presolving model
646 rows, 165 cols, 2208 nonzeros 0s
623 rows, 165 cols, 2106 nonzeros 0s
Solving MIP model with:
623 rows
165 cols (0 binary, 10 integer, 0 implied int., 155 continuous)
2106 nonzeros
Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic; L => Sub-MIP;
P => Empty MIP; R => Randomized rounding; S => Solve LP; T => Evaluate node; U => Unbounded;
z => Trivial zero; l => Trivial lower; u => Trivial upper; p => Trivial point
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Src Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf inf inf 0 0 0 0 0.0s
R 0 0 0 0.00% -0.0740396684 -0.0709415504 4.37% 0 0 0 583 0.0s
L 0 0 0 0.00% -0.0740396684 -0.0715217007 3.52% 0 0 0 583 0.1s
L 0 0 0 0.00% -0.0740396684 -0.071829425 3.08% 0 0 0 766 0.4s
43 0 21 100.00% -0.0718365223 -0.071829425 0.01% 28 0 32 12538 1.0s
Solving report
Model log2
Status Optimal
Primal bound -0.0718294250199
Dual bound -0.0718365223135
Gap 0.00988% (tolerance: 0.01%)
P-D integral 0.0286123799572
Solution status feasible
-0.0718294250199 (objective)
0 (bound viol.)
0 (int. viol.)
0 (row viol.)
Timing 1.02 (total)
0.00 (presolve)
0.00 (solve)
0.00 (postsolve)
Max sub-MIP depth 1
Nodes 43
Repair LPs 0 (0 feasible; 0 iterations)
LP iterations 12538 (total)
5472 (strong br.)
0 (separation)
3066 (heuristics)
Coefficient ranges:
Matrix [6e-07, 7e+01]
Cost [1e+00, 1e+00]
Bound [0e+00, 0e+00]
RHS [1e+00, 3e+00]
Assessing feasibility of MIP using primal feasibility and integrality tolerance of 1e-06
Solution has num max sum
Col infeasibilities 0 0 0
Integer infeasibilities 0 0 0
Row infeasibilities 0 0 0
Row residuals 0 0 0
Presolving model
649 rows, 165 cols, 2217 nonzeros 0s
626 rows, 165 cols, 2115 nonzeros 0s
MIP start solution is feasible, objective value is -0.0716768300956
Solving MIP model with:
626 rows
165 cols (0 binary, 10 integer, 0 implied int., 155 continuous)
2115 nonzeros
Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic; L => Sub-MIP;
P => Empty MIP; R => Randomized rounding; S => Solve LP; T => Evaluate node; U => Unbounded;
z => Trivial zero; l => Trivial lower; u => Trivial upper; p => Trivial point
Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work
Src Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time
0 0 0 0.00% -inf -0.0716768301 Large 0 0 0 0 0.0s
0 0 0 0.00% -0.0740397576 -0.0716768301 3.30% 1 0 0 679 0.1s
L 0 0 0 0.00% -0.0740397576 -0.0716778301 3.30% 3 0 0 679 0.2s
L 0 0 0 0.00% -0.0740397576 -0.0718196389 3.09% 2 0 0 857 0.8s
[79946] signal (11.1): Segmentation fault: 11
in expression starting at /tmp/hypatia/highs_log2.jl:16
_ZN7HFactor11buildFinishEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN7HFactor5buildEP15HighsTimerClock at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN11HSimplexNla6invertEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN4HEkk13computeFactorEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN4HEkk33initialiseSimplexLpBasisAndFactorEb at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN4HEkk18initialiseForSolveEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN4HEkk5solveEb at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_Z14solveLpSimplexR19HighsLpSolverObject at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_Z7solveLpR19HighsLpSolverObjectNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN5Highs11callSolveLpER7HighsLpNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZZN5Highs5solveEvENK3$_0clER7HighsLpRKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEERd at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN5Highs5solveEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN17HighsLpRelaxation3runEb at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN17HighsLpRelaxation9resolveLpEP11HighsDomain at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN11HighsSearch12evaluateNodeEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN11HighsSearch4diveEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN14HighsMipSolver3runEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN5Highs12callSolveMipEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
_ZN5Highs5solveEv at /Users/oscar/.julia/artifacts/c167241db7de018a8569de84fb9cb4fe2e5c16b9/lib/libhighs.1.9.dylib (unknown line)
Highs_run at /Users/oscar/.julia/dev/HiGHS/src/gen/libhighs.jl:370
unknown function (ip: 0x11173ab1f)
Closing in favor of the upstream https://github.com/ERGO-Code/HiGHS/issues/2109