Changeset 1815 for stable/2.8
- Timestamp:
- Nov 24, 2012 10:45:00 AM (8 years ago)
- Location:
- stable/2.8/Cbc
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
stable/2.8/Cbc
- Property svn:mergeinfo changed
/trunk/Cbc (added) merged: 1813
- Property svn:mergeinfo changed
-
stable/2.8/Cbc/src/CbcHeuristic.cpp
r1802 r1815 453 453 CbcHeuristic::setSeed(int value) 454 454 { 455 if (value==0) { 456 double time = fabs(CoinGetTimeOfDay()); 457 while (time>=COIN_INT_MAX) 458 time *= 0.5; 459 value = static_cast<int>(time); 460 char printArray[100]; 461 sprintf(printArray, "using time of day seed was changed from %d to %d", 462 randomNumberGenerator_.getSeed(), value); 463 if (model_) 464 model_->messageHandler()->message(CBC_FPUMP1, model_->messages()) 465 << printArray 466 << CoinMessageEol; 467 } 455 468 randomNumberGenerator_.setSeed(value); 456 469 } -
stable/2.8/Cbc/src/CbcHeuristicFPump.cpp
r1802 r1815 488 488 int maximumPasses = maximumPasses_; 489 489 #ifdef COIN_HAS_CLP 490 if (maximumPasses == 30){491 490 { 491 OsiClpSolverInterface * clpSolver 492 492 = dynamic_cast<OsiClpSolverInterface *> (model_->solver()); 493 if (clpSolver && clpSolver->fakeObjective()) 493 if (clpSolver ) { 494 if (maximumPasses == 30) { 495 if (clpSolver->fakeObjective()) 494 496 maximumPasses = 100; // feasibility problem? 497 } 498 if (model_->getRandomSeed()!=-1) 499 clpSolver->getModelPtr()->setRandomSeed(randomNumberGenerator_.getSeed()); 500 } 495 501 } 496 502 #endif -
stable/2.8/Cbc/src/CbcModel.cpp
r1802 r1815 4536 4536 maximumWhich_(1000), 4537 4537 maximumRows_(0), 4538 randomSeed_(-1), 4538 4539 currentDepth_(0), 4539 4540 whichGenerator_(NULL), … … 4693 4694 maximumWhich_(1000), 4694 4695 maximumRows_(0), 4696 randomSeed_(-1), 4695 4697 currentDepth_(0), 4696 4698 whichGenerator_(NULL), … … 4937 4939 maximumWhich_(rhs.maximumWhich_), 4938 4940 maximumRows_(0), 4941 randomSeed_(rhs.randomSeed_), 4939 4942 currentDepth_(0), 4940 4943 whichGenerator_(NULL), … … 5281 5284 maximumCutPassesAtRoot_ = rhs.maximumCutPassesAtRoot_; 5282 5285 maximumCutPasses_ = rhs.maximumCutPasses_; 5286 randomSeed_ = rhs.randomSeed_; 5283 5287 preferredWay_ = rhs.preferredWay_; 5284 5288 currentPassNumber_ = rhs.currentPassNumber_; … … 5687 5691 maximumCutPassesAtRoot_ = rhs.maximumCutPassesAtRoot_; 5688 5692 maximumCutPasses_ = rhs.maximumCutPasses_; 5693 randomSeed_ = rhs.randomSeed_; 5689 5694 preferredWay_ = rhs.preferredWay_; 5690 5695 resolveAfterTakeOffCuts_ = rhs.resolveAfterTakeOffCuts_; … … 5981 5986 heuristic_[where]->setHeuristicName(name) ; 5982 5987 heuristic_[where]->setSeed(987654321 + where); 5988 if (randomSeed_!=-1) 5989 heuristic_[where]->setSeed(randomSeed_); 5983 5990 numberHeuristics_++ ; 5984 5991 } -
stable/2.8/Cbc/src/CbcModel.hpp
r1802 r1815 1745 1745 inline int specialOptions() const { 1746 1746 return specialOptions_; 1747 } 1748 /// Set random seed 1749 inline void setRandomSeed(int value) { 1750 randomSeed_ = value; 1751 } 1752 /// Get random seed 1753 inline int getRandomSeed() const { 1754 return randomSeed_; 1747 1755 } 1748 1756 /// Tell model to stop on event … … 2650 2658 /// Maximum number of rows 2651 2659 int maximumRows_; 2660 /// Random seed 2661 int randomSeed_; 2652 2662 /// Current depth 2653 2663 int currentDepth_; -
stable/2.8/Cbc/src/CbcSolver.cpp
r1791 r1815 1131 1131 } 1132 1132 1133 #define CBCMAXPARAMETERS 2001134 1133 static CbcOrClpParam parameters[CBCMAXPARAMETERS]; 1135 1134 static int numberParameters = 0 ; -
stable/2.8/Cbc/src/CbcTree.cpp
r1573 r1815 316 316 } 317 317 318 319 318 #ifndef CBC_DUBIOUS_HEAP 320 319 /* … … 530 529 best->setOnTree(false); 531 530 return best; 532 }533 534 double535 CbcTree::getBestPossibleObjective()536 {537 double r_val = 1e100;538 for (int i = 0 ; i < static_cast<int> (nodes_.size()) ; i++) {539 if (nodes_[i] && nodes_[i]->objectiveValue() < r_val) {540 r_val = nodes_[i]->objectiveValue();541 }542 }543 return r_val;544 531 } 545 532 /*! \brief Prune the tree using an objective function cutoff … … 1406 1393 #endif 1407 1394 1395 double 1396 CbcTree::getBestPossibleObjective() 1397 { 1398 double r_val = 1e100; 1399 for (int i = 0 ; i < static_cast<int> (nodes_.size()) ; i++) { 1400 if (nodes_[i] && nodes_[i]->objectiveValue() < r_val) { 1401 r_val = nodes_[i]->objectiveValue(); 1402 } 1403 } 1404 return r_val; 1405 } 1406 -
stable/2.8/Cbc/src/CbcTree.hpp
r1640 r1815 31 31 //#define CBC_DUBIOUS_HEAP 32 32 #endif 33 #if ndef CBC_DUBIOUS_HEAP33 #if 1 //ndef CBC_DUBIOUS_HEAP 34 34 35 35 /*! \brief Controls search tree debugging … … 114 114 /// Return a node pointer 115 115 inline CbcNode * nodePointer (int i) const { return nodes_[i]; } 116 void realpop(); 117 /** After changing data in the top node, fix the heap */ 118 void fixTop(); 119 void realpush(CbcNode * node); 116 120 //@} 117 121 … … 452 456 maximumNodeNumber_ = 0; 453 457 } 458 459 /// Get maximum node number 460 inline int maximumNodeNumber() const { return maximumNodeNumber_; } 454 461 //@} 455 462 protected:
Note: See TracChangeset
for help on using the changeset viewer.