Changeset 2355


Ignore:
Timestamp:
Jan 5, 2018 4:46:19 AM (5 months ago)
Author:
forrest
Message:

opt out of small B&B quickly

File:
1 edited

Legend:

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

    r2352 r2355  
    1638516385                        }
    1638616386                        ClpSimplex * simplex = clpSolver->getModelPtr();
     16387                        double * saveLower =
     16388                          CoinCopyOfArray(solver_->getColLower(),numberColumns);
     16389                        double * saveUpper =
     16390                          CoinCopyOfArray(solver_->getColUpper(),numberColumns);
    1638716391                        if (allSame && false) {
    1638816392                            // change priorities on general
     
    1643516439                        incrementExtra(info->numberNodesExplored_,
    1643616440                                       info->numberIterations_);
     16441                        if (feasible) {
     16442                          double objValue=simplex->objectiveValue();
     16443                          feasible = solveWithCuts(cuts, 1, node);
     16444                          if (!feasible) {
     16445                            if ((specialOptions_&1) != 0)
     16446                              printf("small was feasible %g now infeasible! - depths %d %d\n",
     16447                                     objValue,node->depth(),fastNodeDepth_);
     16448                            // switch off
     16449                            info->nNodes_=-99;
     16450                            solver_->setColLower(saveLower);
     16451                            solver_->setColUpper(saveUpper);
     16452                          }
     16453                        }
    1643716454                        char general[200];
    1643816455                        int fathomStatus=info->nNodes_;
     
    1646216479                            //abort();
    1646316480                          fastNodeDepth_ -= (info->nNodes_==-10) ? 5 : 2;
     16481                          if (info->nNodes_==-99)
     16482                            fastNodeDepth_=-1; // switch off
    1646416483#ifndef NO_FATHOM_PRINT
    1646516484                          if ((moreSpecialOptions_&262144) != 0)
     
    1648316502                                    CoinCopyOfArray(simplex->primalColumnSolution(),
    1648416503                                                    numberColumns);
     16504                                double saveBest = bestObjective_;
    1648516505                                setBestSolution(CBC_STRONGSOL, value, newSolution) ;
    1648616506                                delete [] newSolution;
    16487                                 //solver_->setColLower(saveLower);
    16488                                 //solver_->setColUpper(saveUpper);
    16489                                 //delete [] saveLower;
    16490                                 //delete [] saveUpper;
     16507                                if (bestObjective_==saveBest) {
     16508                                  if ((specialOptions_&1) != 0)
     16509                                    printf("small was feasible now just infeasible! - depths %d %d\n",
     16510                                           node->depth(),fastNodeDepth_);
     16511                                  fastNodeDepth_=-1; // switch off
     16512                                  solver_->setColLower(saveLower);
     16513                                  solver_->setColUpper(saveUpper);
     16514                                }
    1649116515                            }
    1649216516                            // say feasible so will redo node
     
    1650016524                                    CoinCopyOfArray(simplex->primalColumnSolution(),
    1650116525                                                    numberColumns);
     16526                                double saveBest = bestObjective_;
    1650216527                                setBestSolution(CBC_STRONGSOL, value, newSolution) ;
    1650316528                                // in case of inaccuracy
     
    1650516530                                                                   simplex->objectiveValue()));
    1650616531                                delete [] newSolution;
     16532                                if (bestObjective_==saveBest) {
     16533                                  if ((specialOptions_&1) != 0)
     16534                                    printf("small was feasible now just infeasible! - depths %d %d\n",
     16535                                           node->depth(),fastNodeDepth_);
     16536                                  fastNodeDepth_=-1; // switch off
     16537                                  solver_->setColLower(saveLower);
     16538                                  solver_->setColUpper(saveUpper);
     16539                                }
    1650716540                            }
    1650816541                            // update pseudo costs
     
    1653416567                            //printf("range of costs %g to %g\n",smallest,largest);
    1653516568                        }
     16569                        delete [] saveLower;
     16570                        delete [] saveUpper;
    1653616571                        simplex->setLogLevel(saveLevel);
    1653716572#ifdef COIN_HAS_CPX
Note: See TracChangeset for help on using the changeset viewer.