Skip to content

Linearity check with presolve returns an empty set #312

@schillic

Description

@schillic

I was debugging a bigger example (here) that leads to a (probably) wrong result when using GLKP with presolve activated. (I cannot say for sure that this is wrong because the input set is 4D, but when using the vertex representation, the result is a proper set and all 2D projections are proper too.)

I wonder if the following check for !isapproxzero(β_primal) is correct because the error message indicates that β_primal should just be nonnegative.

if rep isa HRepresentation && !isapproxzero((β_primal = MOI.get(model, MOI.ConstraintPrimal(), β_con);); kws...)
verbose >= 1 && @info("The polyhedron is empty as $β_primal is negative.")

In my example I get:

julia> Polyhedra.detect_new_linearities(rep, solver; verbose=1)
[ Info: The polyhedron is empty as 3.0 is negative.

(I think 3.0 is not negative 😅)

So it would be useful to get a confirmation that the check is correct. If so, I guess I have to reduce the example to get a more helpful input.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions