Changeset 2356


Ignore:
Timestamp:
Jan 5, 2018 5:16:48 AM (5 months ago)
Author:
forrest
Message:

opt out of small B&B quickly

File:
1 edited

Legend:

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

    r2351 r2356  
    1628216282                        }
    1628316283                        ClpSimplex * simplex = clpSolver->getModelPtr();
     16284                        double * saveLower =
     16285                          CoinCopyOfArray(solver_->getColLower(),numberColumns);
     16286                        double * saveUpper =
     16287                          CoinCopyOfArray(solver_->getColUpper(),numberColumns);
    1628416288                        if (allSame && false) {
    1628516289                            // change priorities on general
     
    1633216336                        incrementExtra(info->numberNodesExplored_,
    1633316337                                       info->numberIterations_);
     16338                        if (feasible) {
     16339                          double objValue=simplex->objectiveValue();
     16340                          feasible = solveWithCuts(cuts, 1, node);
     16341                          if (!feasible) {
     16342                            if ((specialOptions_&1) != 0)
     16343                              printf("small was feasible %g now infeasible! - depths %d %d\n",
     16344                                     objValue,node->depth(),fastNodeDepth_);
     16345                            // switch off
     16346                            info->nNodes_=-99;
     16347                            solver_->setColLower(saveLower);
     16348                            solver_->setColUpper(saveUpper);
     16349                          }
     16350                        }
    1633416351                        char general[200];
    1633516352                        int fathomStatus=info->nNodes_;
     
    1635916376                            //abort();
    1636016377                          fastNodeDepth_ -= (info->nNodes_==-10) ? 5 : 2;
     16378                          if (info->nNodes_==-99)
     16379                            fastNodeDepth_=-1; // switch off
    1636116380#ifndef NO_FATHOM_PRINT
    1636216381                          if ((moreSpecialOptions_&262144) != 0)
     
    1638016399                                    CoinCopyOfArray(simplex->primalColumnSolution(),
    1638116400                                                    numberColumns);
     16401                                double saveBest = bestObjective_;
    1638216402                                setBestSolution(CBC_STRONGSOL, value, newSolution) ;
    1638316403                                delete [] newSolution;
    16384                                 //solver_->setColLower(saveLower);
    16385                                 //solver_->setColUpper(saveUpper);
    16386                                 //delete [] saveLower;
    16387                                 //delete [] saveUpper;
     16404                                if (bestObjective_==saveBest) {
     16405                                  if ((specialOptions_&1) != 0)
     16406                                    printf("small was feasible now just infeasible! - depths %d %d\n",
     16407                                           node->depth(),fastNodeDepth_);
     16408                                  fastNodeDepth_=-1; // switch off
     16409                                  solver_->setColLower(saveLower);
     16410                                  solver_->setColUpper(saveUpper);
     16411                                }
    1638816412                            }
    1638916413                            // say feasible so will redo node
     
    1639716421                                    CoinCopyOfArray(simplex->primalColumnSolution(),
    1639816422                                                    numberColumns);
     16423                                double saveBest = bestObjective_;
    1639916424                                setBestSolution(CBC_STRONGSOL, value, newSolution) ;
    1640016425                                // in case of inaccuracy
     
    1640216427                                                                   simplex->objectiveValue()));
    1640316428                                delete [] newSolution;
     16429                                if (bestObjective_==saveBest) {
     16430                                  if ((specialOptions_&1) != 0)
     16431                                    printf("small was feasible now just infeasible! - depths %d %d\n",
     16432                                           node->depth(),fastNodeDepth_);
     16433                                  fastNodeDepth_=-1; // switch off
     16434                                  solver_->setColLower(saveLower);
     16435                                  solver_->setColUpper(saveUpper);
     16436                                }
    1640416437                            }
    1640516438                            // update pseudo costs
     
    1643016463                            }
    1643116464                            //printf("range of costs %g to %g\n",smallest,largest);
    16432                         }
     16465                        }
    1643316466                        simplex->setLogLevel(saveLevel);
    1643416467#ifdef COIN_HAS_CPX
Note: See TracChangeset for help on using the changeset viewer.