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

float_EPS=0.0 leads to strong presolve #800

Open
glebbelov opened this issue Apr 4, 2024 · 0 comments
Open

float_EPS=0.0 leads to strong presolve #800

glebbelov opened this issue Apr 4, 2024 · 0 comments

Comments

@glebbelov
Copy link
Contributor

The following model arguably should produce optimal obj value 10 with MIP at default solver's tolerance settings and -Dfloat_EPS=0.0:

array [1..2] of var 0.0..100.0: x;

solve maximize
    if x[1]<=4.9999999 /\ x[2]>=5.0000001
        then x[1]+x[2] else 0.0 endif;
        
constraint x[1]==x[2];

output [
  "OBJ_SOLVER: \(_objective), x[]: \(x), "
  ++ "OBJ_ACTUAL: \(if x[1]<=4.9999999 /\ x[2]>=5.0000001
        then x[1]+x[2] else 0 endif)"
];

However the conjunction is presolved as false, as can be seen from the LP file. Moreover, it is not presolved out at default setting of float_EPS (1e-6) which only strengthens the inequalities.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant