I would like to report a bug on CPLEX.
I have written a C++ code using the CPLEX library to show a inconsistent behavior on CPLEX.
On the attached file (bug_cplex.cpp), a quadratic program is solved in line 524. CPLEX says that program is infeasible. However, if we get the lp file generated in line 520 (qcpCplexBug.lp) and submit to executable solver, CPLEX reaches an optimal solution. On other words, for a same problem, CPLEX is declaring infeasibility by the callable library and optimality by the executable. I checked and it is not a bad tolerance setting on my code.
I observe that before the solving in line 524, CPLEX is called to solve auxiliary problems (lines 249 and 289). For some reason, those solvings are doing CPLEX present a wrong result in line 524.
I am using CPLEX 22.214.171.124 on Open Suse Linux 12.3 (64 bits). My compiler version is g++ (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012]
Thanks in advanced
Pinned topic Bug on Sequential callings of CPLEX! CPLEX is declaring infeasibility incorrectly
- 38 KB
DanielJunglas 270002S4SX2674 Posts
Re: Bug on Sequential callings of CPLEX! CPLEX is declaring infeasibility incorrectly2013-06-26T07:23:35ZThis is the accepted answer. This is the accepted answer.
Thank you for reporting this problem. I have reproduced the issue here (although I used a SAV file instead of an LP file to avoid any truncation of numbers due to text file output).
We are investigating and will keep you posted about our findings.
RWunderling 270002THM1121 Posts
Re: Bug on Sequential callings of CPLEX! CPLEX is declaring infeasibility incorrectly2013-07-09T19:27:58ZThis is the accepted answer. This is the accepted answer.
- DanielJunglas 270002S4SX
CPLEX defines CPX_INFBOUND for bounds to be considered to be infinite. In the example MY_INFINITY is used which exceeds CPX_INFBOUND and causes numerical issues down the road. This will be addressed in some future release, but for the time being please change your code to use CPX_INFBOUND for infinity bounds.