Closed jannicklange closed 2 years ago
Hi Jannick,
thank you for your in-depth and well explained bug report - you have certainly posted it in the right place.
We will investigate the cause of this issue and fix it as soon as we can find the time. When there are updates I will post them here, as well.
Best, Leon
Hi Leon,
have you gained any insights on this issue? We're really looking forward to a fix.
Best jp
Hi jp, thank you for reminding me about this. I have attached a patch that fixes this behaviour for you. It will probably take a bit more time until this makes it onto the master.
Best, Leo lpreader-patch.txt n
Hi, thanks for that quick fix! That helps us already.
I think most of the OPTANO Modeling Users will wait for it to be merged into master, as they usually don't build scip on their own. Best jp
As you closes the ticket? has this been merged in the main branch?
It has been merged to bugfix: https://github.com/scipopt/scip/commit/c6363437b7608fd521bed88273b8b689ccb93909 It is not yet in any official release but will be contained in the next bugfix release.
Hello!
I came across a nasty issue when trying to solve a model from an LP file.
As far as I can tell, the SCIPOPT LP parser follows the LP specification of CPLEX:
From testing, I do know (now) that CPLEX does not support constant values within the constraint expressions. The specification itself does not explicitly state this:
This is not the nicest definition, but something that can be worked with.
Problem description
If CPLEX is presented with an LP file that violates this rule, an error is raised:
invalid.lp
CPLEX output
If the same LP is given to SCIPOPT, it is read without error, and solved: SCIPOPT output
SCIP simply omits the constant in the constraint expression, and solves the (inconsistent) problem. In this case, the model becomes infeasible by omitting the constant. However, with a slight adjustment to the LB of var_x, the model will become feasible and the result will deviate from the intended/expected solution:
feasible_invalid.lp
SCIP output (var_x LB = 0)
If the same file is parsed + solved with, e.g., Gurobi (which supports constants in constraint expressions), the following output is produced: Gurobi output
Expected behavior
I hope this is the correct address for reporting such an issue. If this is not the case, please let me know where I can/should submit it.
Best Regards,
Jannick