Topic
  • 2 replies
  • Latest Post - ‏2013-07-09T19:27:58Z by RWunderling
wendelmelo
wendelmelo
1 Post

Pinned topic Bug on Sequential callings of CPLEX! CPLEX is declaring infeasibility incorrectly

‏2013-06-26T00:45:40Z |

Hi experts

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 12.5.1.0 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


Wendel Melo

Attachments

  • DanielJunglas
    DanielJunglas
    1579 Posts

    Re: Bug on Sequential callings of CPLEX! CPLEX is declaring infeasibility incorrectly

    ‏2013-06-26T07:23:35Z  

    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
    RWunderling
    106 Posts

    Re: Bug on Sequential callings of CPLEX! CPLEX is declaring infeasibility incorrectly

    ‏2013-07-09T19:27:58Z  

    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.

    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.


    Roland