Ignore:
Timestamp:
Jan 16, 2013 1:41:25 PM (7 years ago)
Author:
forrest
Message:

multiple root solvers, stronger strong branching and cutoff as constraint

File:
1 edited

Legend:

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

    r1816 r1839  
    13941394        bestObjective_ = baseModel->bestObjective_;
    13951395        assert (!baseModel->globalCuts_.sizeRowCuts());
    1396         numberSolutions_ = baseModel->numberSolutions_;
     1396        if (numberSolutions_ < baseModel->numberSolutions_) {
     1397          assert (baseModel->bestSolution_);
     1398          int numberColumns = solver_->getNumCols();
     1399          if (!bestSolution_)
     1400            bestSolution_ = new double [numberColumns];
     1401          memcpy(bestSolution_,baseModel->bestSolution_,
     1402                 numberColumns*sizeof(double));
     1403          numberSolutions_ = baseModel->numberSolutions_;
     1404        }
    13971405        stateOfSearch_ = baseModel->stateOfSearch_;
    13981406        numberNodes_ = baseModel->numberNodes_;
     
    18151823                newCut.setGloballyValid(true);
    18161824                newCut.mutableRow().setTestForDuplicateIndex(false);
    1817                 globalCuts_.insert(newCut) ;
     1825                globalCuts_.addCutIfNotDuplicate(newCut) ;
    18181826            }
    18191827        }
     
    18231831            if (thisCut->globallyValid()) {
    18241832                // add to global list
    1825                 OsiColCut newCut(*thisCut);
    1826                 newCut.setGloballyValid(true);
    1827                 globalCuts_.insert(newCut) ;
     1833                makeGlobalCut(thisCut);
    18281834            }
    18291835        }
Note: See TracChangeset for help on using the changeset viewer.