Changeset 2165
- Timestamp:
- Mar 17, 2015 4:58:35 AM (6 years ago)
- Location:
- stable/2.9/Cbc/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
stable/2.9/Cbc/src/CbcModel.cpp
r2150 r2165 2089 2089 } 2090 2090 originalContinuousObjective_ = COIN_DBL_MAX; 2091 if (bestSolution_ && 2092 ((specialOptions_&8388608)==0||(specialOptions_&2048)!=0)) { 2093 // best solution found by various heuristics - set solution 2094 char general[200]; 2095 sprintf(general,"Solution of %g already found by heuristic", 2096 bestObjective_); 2097 messageHandler()->message(CBC_GENERAL, 2098 messages()) 2099 << general << CoinMessageEol ; 2100 setCutoff(1.0e50) ; // As best solution should be worse than cutoff 2101 // change cutoff as constraint if wanted 2102 if (cutoffRowNumber_>=0) { 2103 if (solver_->getNumRows()>cutoffRowNumber_) 2104 solver_->setRowUpper(cutoffRowNumber_,1.0e50); 2105 } 2106 // also in continuousSolver_ 2107 if (continuousSolver_) { 2108 // Solvers know about direction 2109 double direction = solver_->getObjSense(); 2110 continuousSolver_->setDblParam(OsiDualObjectiveLimit, 1.0e50*direction); 2111 } else { 2112 continuousSolver_ = solver_->clone(); 2113 } 2114 phase_ = 5; 2115 double increment = getDblParam(CbcModel::CbcCutoffIncrement) ; 2116 if ((specialOptions_&4) == 0) 2117 bestObjective_ += 100.0 * increment + 1.0e-3; // only set if we are going to solve 2118 setBestSolution(CBC_END_SOLUTION, bestObjective_, bestSolution_, 1) ; 2119 continuousSolver_->resolve() ; 2120 if (!continuousSolver_->isProvenOptimal()) { 2121 continuousSolver_->messageHandler()->setLogLevel(2) ; 2122 continuousSolver_->initialSolve() ; 2123 } 2124 delete solver_ ; 2125 solver_ = continuousSolver_ ; 2126 setPointers(solver_); 2127 continuousSolver_ = NULL ; 2128 } 2091 2129 solverCharacteristics_ = NULL; 2092 2130 if (flipObjective) … … 4809 4847 double dummyBest; 4810 4848 tree_->cleanTree(this, -COIN_DBL_MAX, dummyBest) ; 4811 #if def CBC_THREAD4849 #if 0 // Does not seem to be needed def CBC_THREAD 4812 4850 if (parallelMode() > 0 && master_) { 4813 4851 // see if any dangling nodes -
stable/2.9/Cbc/src/CbcNode.cpp
r2103 r2165 2367 2367 } 2368 2368 delete [] rowActivity; 2369 delete [] solution;2370 2369 if (!satisfied) { 2371 2370 #ifdef CLP_INVESTIGATE … … 2394 2393 } 2395 2394 } 2395 delete [] solution; 2396 2396 } 2397 2397 } else if (iPass == 1) {
Note: See TracChangeset
for help on using the changeset viewer.