Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Infeasibility depends on sense and presolve #1530

Closed
amigalemming opened this issue Nov 28, 2023 · 5 comments
Closed

Infeasibility depends on sense and presolve #1530

amigalemming opened this issue Nov 28, 2023 · 5 comments
Assignees
Labels

Comments

@amigalemming
Copy link

Here is a small example:

NAME        Demo
OBJSENSE
  MAX
ROWS
 N  Obj     
 L  r0      
 L  r1      
 L  r2      
 L  r3      
COLUMNS
    c0        Obj       9
    c0        r0        3
    c0        r2        -10
    c1        Obj       -2
    c2        Obj       -2
    c2        r1        -5
    c2        r2        6
    c2        r3        -2
    c3        r0        -8
    c3        r3        9
RHS
    RHS_V     r0        -67
    RHS_V     r1        -39
    RHS_V     r2        86
    RHS_V     r3        60
RANGES
    RANGE     r1        31
    RANGE     r2        19
BOUNDS
 LO BOUND     c0        -91
 UP BOUND     c0        50
 LO BOUND     c1        -62
 UP BOUND     c1        104
 LO BOUND     c2        -49
 UP BOUND     c2        96
 LO BOUND     c3        -53
 UP BOUND     c3        100
ENDATA

highs says:

Running HiGHS 1.6.0: Copyright (c) 2023 HiGHS under MIT licence terms
LP   presolve-fail has 4 rows; 4 cols; 7 nonzeros
Presolving model
3 rows, 3 cols, 6 nonzeros
2 rows, 2 cols, 4 nonzeros
Problem status detected on presolve: Infeasible
Model   status      : Infeasible
Objective value     :  0.0000000000e+00
HiGHS run time      :          0.00

If I change OBJSENSE to MIN, then highs can optimize it, though. If I disable presolver, then highs can also optimize. glpksol and clp also think it is feasible and can optimize.

@jajhall
Copy link
Member

jajhall commented Nov 28, 2023

Strange. I'll investigate

@amigalemming
Copy link
Author

Sounds similar to this one: #1517

Btw. I am using github/HiGHS/HEAD.

@jajhall
Copy link
Member

jajhall commented Nov 28, 2023

Sounds similar to this one: #1517

No, #1517 relates to a MIP

@jajhall
Copy link
Member

jajhall commented Nov 28, 2023

I've reproduced the behaviour that you observe, both with your model, and without the OBJSENSE MAX but with negated objective coefficients. It's clearly a bug in presolve where an illegal dual reduction is performed that results in false detection of infeasibility. Since it's such a small problem, it should be easy to track down. However, I'm travelling this week and it's hard to do work like this on a small laptop screen.

@jajhall jajhall self-assigned this Nov 28, 2023
@jajhall jajhall added the bug label Nov 28, 2023
@fwesselm fwesselm mentioned this issue Dec 8, 2023
@jajhall
Copy link
Member

jajhall commented Dec 8, 2023

Fixed by #1544

@jajhall jajhall closed this as completed Dec 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants