Changeset 1310


Ignore:
Timestamp:
Nov 18, 2009 4:56:00 AM (9 years ago)
Author:
forrest
Message:

check for infeasible bound tightening

File:
1 edited

Legend:

Unmodified
Added
Removed
  • stable/2.3/Cbc/src/CbcCutGenerator.cpp

    r1226 r1310  
    356356        double primalTolerance = 1.0e-8;
    357357        const char * tightenBounds = generator->tightenBounds();
     358        bool feasible=true;
    358359        if ((model_->getThreadMode()&2)==0) {
    359360          for (j=0;j<numberColumns;j++) {
     
    390391                }
    391392              }
     393            }
     394            if(upper[j]<lower[j]-1.0e-3) {
     395              feasible=false;
     396              break;
    392397            }
    393398          }
     
    433438              }
    434439            }
     440            if(upper[j]<lower[j]-1.0e-3) {
     441              feasible=false;
     442              break;
     443            }
    435444          }
    436445          if (numberChanged) {
     
    445454            cs.insert(cc);
    446455          }
     456        }
     457        if (!feasible) {
     458          // not feasible -add infeasible cut
     459          OsiRowCut rc;
     460          rc.setLb(DBL_MAX);
     461          rc.setUb(0.0);   
     462          cs.insert(rc);
    447463        }
    448464      }
Note: See TracChangeset for help on using the changeset viewer.