Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • stable/2.8/Cbc/src/CbcModel.cpp

    r2002 r2024  
    43794379            //MODIF PIERRE
    43804380            bestPossibleObjective_ = tree_->getBestPossibleObjective();
     4381#ifdef CBC_THREAD
     4382            if (parallelMode() > 0 && master_) {
     4383              // need to adjust for ones not on tree
     4384              int numberThreads = master_->numberThreads();
     4385              for (int i=0;i<numberThreads;i++) {
     4386                CbcThread * child = master_->child(i);
     4387                if (child->node()) {
     4388                  // adjust
     4389                  double value = child->node()->objectiveValue();
     4390                  bestPossibleObjective_ = CoinMin(bestPossibleObjective_, value);
     4391                }
     4392              }
     4393            }
     4394#endif
    43814395            unlockThread();
    43824396#ifdef CLP_INVESTIGATE
     
    50345048    originalContinuousObjective_ = solver_->getObjValue() * solver_->getObjSense();
    50355049    bestPossibleObjective_ = originalContinuousObjective_;
     5050    if (solver_->isProvenDualInfeasible())
     5051      originalContinuousObjective_ = -COIN_DBL_MAX;
    50365052    delete [] continuousSolution_;
    50375053    continuousSolution_ = CoinCopyOfArray(solver_->getColSolution(),
     
    65766592CbcModel::isProvenInfeasible() const
    65776593{
    6578     if (!status_ && bestObjective_ >= 1.0e30)
     6594  if (!status_ && (bestObjective_ >= 1.0e30 
     6595                   && (secondaryStatus_==0||secondaryStatus_==1)))
    65796596        return true;
    65806597    else
     
    1310913126{
    1311013127    if (status_ != -1) {
    13111         return originalContinuousObjective_ < 1.0e50;
     13128        return fabs(originalContinuousObjective_) < 1.0e50;
    1311213129    } else {
    1311313130        return solver_->isProvenOptimal();
     
    1686916886    bool hitMaxTime = (totalTime >= maxSeconds);
    1687016887    if (parentModel_ && !hitMaxTime) {
    16871         // In a sub tree so need to add both times
    16872         totalTime += parentModel_->getCurrentSeconds();
     16888        // In a sub tree
     16889        assert (parentModel_);
    1687316890        maxSeconds = parentModel_->getMaximumSeconds();
    1687416891        hitMaxTime = (totalTime >= maxSeconds);
Note: See TracChangeset for help on using the changeset viewer.