Changeset 1311


Ignore:
Timestamp:
Nov 18, 2009 6:29:31 AM (10 years ago)
Author:
forrest
Message:

fix for infeasible bounds

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cbc/src/CbcCutGenerator.cpp

    r1261 r1311  
    377377        double primalTolerance = 1.0e-8;
    378378        const char * tightenBounds = generator->tightenBounds();
     379        bool feasible=true;
    379380        if ((model_->getThreadMode()&2)==0) {
    380381          for (j=0;j<numberColumns;j++) {
     
    411412                }
    412413              }
     414            }
     415            if(upper[j]<lower[j]-1.0e-3) {
     416              feasible=false;
     417              break;
    413418            }
    414419          }
     
    454459              }
    455460            }
     461            if(upper[j]<lower[j]-1.0e-3) {
     462              feasible=false;
     463              break;
     464            }
    456465          }
    457466          if (numberChanged) {
     
    466475            cs.insert(cc);
    467476          }
     477        }
     478        if (!feasible) {
     479          // not feasible -add infeasible cut
     480          OsiRowCut rc;
     481          rc.setLb(DBL_MAX);
     482          rc.setUb(0.0);   
     483          cs.insert(rc);
    468484        }
    469485      }
Note: See TracChangeset for help on using the changeset viewer.