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

Potential error in CglTwomir #33

Closed
svigerske opened this issue Mar 2, 2019 · 6 comments
Closed

Potential error in CglTwomir #33

svigerske opened this issue Mar 2, 2019 · 6 comments
Labels
bug Something isn't working CglTwomir

Comments

@svigerske
Copy link
Member

Issue created by migration from Trac.

Original creator: jwatson

Original creation time: 2009-12-11 05:43:05

Assignee: somebody

Version: release 0.5.1

I have isolated a situation in which I believe CglTwomir is returning invalid cuts. I have attached a test driver (driver.cpp), a test input file (mas74.mps, from miplib2003), and the output trace I obtain on our rather vanilla RedHat linux server.

The “catch” is that I’m using CPLEX 11.2, and the OsiCpxSolverInterface. Although this technically shouldn’t matter, I suppose (the behavior also occurs with other versions of CPLEX).

A quick summary of the unexpected behavior:

  1. The LP relaxation for mas74 solves fine – relaxation is around 10K. Validated with various other solvers.
  2. 3 two-mir cuts are found and successfully applied.
  3. Upon re-solve after cut addition, the LP relaxation is something like 21K, which is far above the integer optimal of ~11K. Obviously incorrect behavior.

Any help is greatly appreciated – I am seeing similar behavior on a handful of other test instances.

Thanks!

Jean-Paul

@svigerske svigerske added bug Something isn't working Cgl labels Mar 2, 2019
@svigerske
Copy link
Member Author

Attachment driver.cpp by jwatson created at 2009-12-11 05:44:19

@svigerske
Copy link
Member Author

Attachment driver.output by jwatson created at 2009-12-11 05:44:34

@svigerske
Copy link
Member Author

Attachment mas74.mps by jwatson created at 2009-12-11 05:44:50

@svigerske
Copy link
Member Author

Comment by @rlougee created at 2009-12-11 10:51:43

Forwarded to CglTwomir project manager, Oktay Gunluk.

@svigerske svigerske added CglTwomir and removed major labels Mar 11, 2019
@svigerske
Copy link
Member Author

Still a problem with current Cgl/master and CPLEX 12.8.0.0.
Could this be related to #36?

@svigerske
Copy link
Member Author

svigerske commented Mar 11, 2019

Indeed, when using

Index: src/CglTwomir/CglTwomir.cpp
===================================================================
--- src/CglTwomir/CglTwomir.cpp	(revision 1463)
+++ src/CglTwomir/CglTwomir.cpp	(working copy)
@@ -740,9 +740,9 @@
         DGG_setEqualityConstraint(data,j);
       
       /* check if the row is bounded above/below and define variable bounds */
-      if ( rowUpper[i] < COIN_DBL_MAX )
+      if ( rowUpper[i] < si->getInfinity() )
         DGG_setIsConstraintBoundedAbove(data,j);
-      if ( rowLower[i] > -1*COIN_DBL_MAX )
+      if ( rowLower[i] > -si->getInfinity() )
         DGG_setIsConstraintBoundedBelow(data,j);
 
       data->lb[j] = 0.0;

then 22 cuts are generated instead of only 3 and the LP relax value only increases to 10576.4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working CglTwomir
Projects
None yet
Development

No branches or pull requests

1 participant