[Couenne] integer infeasibility

Francois Margot fmargot at andrew.cmu.edu
Thu May 26 12:57:02 EDT 2011


Hi:

I think that one should modify slightly the code in infeasibility.cpp
(both trunk and stable) around line 101 by returning 0 for the integer
infeasibility if the value is out of bounds. Without this, infinite
loops might occur, as the LP solver might return a value slightly out of
bounds, by more than the integer tolerance. I would suggest:

if (reference_ -> isInteger ()) {
  double val = info->solution_[index];
  if((val >= info->lower_[index]) && (val <= info->upper_[index])) {
    CouNumber intinfeas = intInfeasibility (info -> solution_ [index]);
    if ((intinfeas > info->integerTolerance_) && (intinfeas > retval)) {
      retval = intinfeas;
      }                                            
    }
  }

Francois





More information about the Couenne mailing list