Ignore:
Timestamp:
Jul 15, 2006 4:14:39 PM (14 years ago)
Author:
forrest
Message:

for allCuts

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/devel/Cbc/src/CbcModel.cpp

    r414 r416  
    15521552            statistics_[numberNodes2_-1]->sayInfeasible();
    15531553        }
    1554         if (newNode)
    1555         { if (newNode->variable() >= 0)
     1554        if (newNode) {
     1555          if (newNode->variable() < 0&&solverCharacteristics_->solverType()==4) {
     1556            // need to check if any cuts would do anything
     1557            OsiCuts theseCuts;
     1558            for (int i = 0;i<numberCutGenerators_;i++) {
     1559              bool generate = generator_[i]->normal();
     1560              // skip if not optimal and should be (maybe a cut generator has fixed variables)
     1561              if (generator_[i]->needsOptimalBasis()&&!solver_->basisIsAvailable())
     1562                generate=false;
     1563              if (!generator_[i]->mustCallAgain())
     1564                generate=false; // only special cuts
     1565              if (generate) {
     1566                generator_[i]->generateCuts(theseCuts,true,NULL) ;
     1567                int numberRowCutsAfter = theseCuts.sizeRowCuts() ;
     1568                if (numberRowCutsAfter) {
     1569                  // need dummy branch
     1570                  newNode->setBranchingObject(new CbcDummyBranchingObject(this));
     1571                  newNode->nodeInfo()->initializeInfo(1);
     1572                  break;
     1573                }
     1574              }
     1575            }
     1576          }
     1577          if (newNode->variable() >= 0)
    15561578          { handler_->message(CBC_BRANCH,messages_)
    15571579               << numberNodes_<< newNode->objectiveValue()
Note: See TracChangeset for help on using the changeset viewer.