GithubHelp home page GithubHelp logo

Modify-after-free bug about highs.jl HOT 14 OPEN

dhendryc avatar dhendryc commented on August 21, 2024
Modify-after-free bug

from highs.jl.

Comments (14)

odow avatar odow commented on August 21, 2024 1

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.

from highs.jl.

odow avatar odow commented on August 21, 2024

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

from highs.jl.

odow avatar odow commented on August 21, 2024

I haven't tried to reproduce locally, but this is a pretty bad error. Let me see if I can find a minimal example.

from highs.jl.

odow avatar odow commented on August 21, 2024

I can reproduce this on macOS. Working on simplifying.

from highs.jl.

odow avatar odow commented on August 21, 2024
(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

from highs.jl.

odow avatar odow commented on August 21, 2024

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)

from highs.jl.

odow avatar odow commented on August 21, 2024

@dhendryc perhaps in the mean time, use a different MIP solver, like Gurobi or SCIP.

from highs.jl.

odow avatar odow commented on August 21, 2024

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)

from highs.jl.

odow avatar odow commented on August 21, 2024

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

from highs.jl.

odow avatar odow commented on August 21, 2024

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=.

from highs.jl.

jajhall avatar jajhall commented on August 21, 2024

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()

from highs.jl.

dhendryc avatar dhendryc commented on August 21, 2024

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.

from highs.jl.

jajhall avatar jajhall commented on August 21, 2024

OK Fair enough

from highs.jl.

jajhall avatar jajhall commented on August 21, 2024

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

from highs.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.