summaryrefslogtreecommitdiff
path: root/build/Bonmin/include/coin/CbcHeuristicGreedy.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'build/Bonmin/include/coin/CbcHeuristicGreedy.hpp')
-rw-r--r--build/Bonmin/include/coin/CbcHeuristicGreedy.hpp280
1 files changed, 0 insertions, 280 deletions
diff --git a/build/Bonmin/include/coin/CbcHeuristicGreedy.hpp b/build/Bonmin/include/coin/CbcHeuristicGreedy.hpp
deleted file mode 100644
index 4a6a1f3..0000000
--- a/build/Bonmin/include/coin/CbcHeuristicGreedy.hpp
+++ /dev/null
@@ -1,280 +0,0 @@
-/* $Id: CbcHeuristicGreedy.hpp 1585 2011-01-11 19:04:34Z forrest $ */
-// Copyright (C) 2005, International Business Machines
-// Corporation and others. All Rights Reserved.
-// This code is licensed under the terms of the Eclipse Public License (EPL).
-
-#ifndef CbcHeuristicGreedy_H
-#define CbcHeuristicGreedy_H
-
-#include "CbcHeuristic.hpp"
-/** Greedy heuristic classes
- */
-
-class CbcHeuristicGreedyCover : public CbcHeuristic {
-public:
-
- // Default Constructor
- CbcHeuristicGreedyCover ();
-
- /* Constructor with model - assumed before cuts
- Initial version does not do Lps
- */
- CbcHeuristicGreedyCover (CbcModel & model);
-
- // Copy constructor
- CbcHeuristicGreedyCover ( const CbcHeuristicGreedyCover &);
-
- // Destructor
- ~CbcHeuristicGreedyCover ();
-
- /// Clone
- virtual CbcHeuristic * clone() const;
- /// Assignment operator
- CbcHeuristicGreedyCover & operator=(const CbcHeuristicGreedyCover& rhs);
- /// Create C++ lines to get to current state
- virtual void generateCpp( FILE * fp) ;
-
- /// update model (This is needed if cliques update matrix etc)
- virtual void setModel(CbcModel * model);
-
- using CbcHeuristic::solution ;
- /** returns 0 if no solution, 1 if valid solution.
- Sets solution values if good, sets objective value (only if good)
- We leave all variables which are at one at this node of the
- tree to that value and will
- initially set all others to zero. We then sort all variables in order of their cost
- divided by the number of entries in rows which are not yet covered. We randomize that
- value a bit so that ties will be broken in different ways on different runs of the heuristic.
- We then choose the best one and set it to one and repeat the exercise.
-
- */
- virtual int solution(double & objectiveValue,
- double * newSolution);
- /// Validate model i.e. sets when_ to 0 if necessary (may be NULL)
- virtual void validate() ;
- /// Resets stuff if model changes
- virtual void resetModel(CbcModel * model);
- /* Algorithm
- 0 - use current upper bounds
- 1 - use original upper bounds
- If 10 added perturb ratios more
- if 100 added round up all >=0.5
- */
- inline int algorithm() const {
- return algorithm_;
- }
- inline void setAlgorithm(int value) {
- algorithm_ = value;
- }
- // Only do this many times
- inline int numberTimes() const {
- return numberTimes_;
- }
- inline void setNumberTimes(int value) {
- numberTimes_ = value;
- }
-
-protected:
- /// Guts of constructor from a CbcModel
- void gutsOfConstructor(CbcModel * model);
- // Data
-
- // Original matrix by column
- CoinPackedMatrix matrix_;
- // original number of rows
- int originalNumberRows_;
- /* Algorithm
- 0 - use current upper bounds
- 1 - use original upper bounds
- If 10 added perturb ratios more
- */
- int algorithm_;
- /// Do this many times
- int numberTimes_;
-
-};
-
-
-class CbcHeuristicGreedyEquality : public CbcHeuristic {
-public:
-
- // Default Constructor
- CbcHeuristicGreedyEquality ();
-
- /* Constructor with model - assumed before cuts
- Initial version does not do Lps
- */
- CbcHeuristicGreedyEquality (CbcModel & model);
-
- // Copy constructor
- CbcHeuristicGreedyEquality ( const CbcHeuristicGreedyEquality &);
-
- // Destructor
- ~CbcHeuristicGreedyEquality ();
-
- /// Clone
- virtual CbcHeuristic * clone() const;
- /// Assignment operator
- CbcHeuristicGreedyEquality & operator=(const CbcHeuristicGreedyEquality& rhs);
- /// Create C++ lines to get to current state
- virtual void generateCpp( FILE * fp) ;
-
- /// update model (This is needed if cliques update matrix etc)
- virtual void setModel(CbcModel * model);
-
- using CbcHeuristic::solution ;
- /** returns 0 if no solution, 1 if valid solution.
- Sets solution values if good, sets objective value (only if good)
- We leave all variables which are at one at this node of the
- tree to that value and will
- initially set all others to zero. We then sort all variables in order of their cost
- divided by the number of entries in rows which are not yet covered. We randomize that
- value a bit so that ties will be broken in different ways on different runs of the heuristic.
- We then choose the best one and set it to one and repeat the exercise.
-
- */
- virtual int solution(double & objectiveValue,
- double * newSolution);
- /// Validate model i.e. sets when_ to 0 if necessary (may be NULL)
- virtual void validate() ;
- /// Resets stuff if model changes
- virtual void resetModel(CbcModel * model);
- /* Algorithm
- 0 - use current upper bounds
- 1 - use original upper bounds
- If 10 added perturb ratios more
- if 100 added round up all >=0.5
- */
- inline int algorithm() const {
- return algorithm_;
- }
- inline void setAlgorithm(int value) {
- algorithm_ = value;
- }
- // Fraction of rhs to cover before branch and cut
- inline void setFraction(double value) {
- fraction_ = value;
- }
- inline double fraction() const {
- return fraction_;
- }
- // Only do this many times
- inline int numberTimes() const {
- return numberTimes_;
- }
- inline void setNumberTimes(int value) {
- numberTimes_ = value;
- }
-protected:
- /// Guts of constructor from a CbcModel
- void gutsOfConstructor(CbcModel * model);
- // Data
-
- // Original matrix by column
- CoinPackedMatrix matrix_;
- // Fraction of rhs to cover before branch and cut
- double fraction_;
- // original number of rows
- int originalNumberRows_;
- /* Algorithm
- 0 - use current upper bounds
- 1 - use original upper bounds
- If 10 added perturb ratios more
- */
- int algorithm_;
- /// Do this many times
- int numberTimes_;
-
-};
-
-/** Greedy heuristic for SOS and L rows (and positive elements)
- */
-
-class CbcHeuristicGreedySOS : public CbcHeuristic {
-public:
-
- // Default Constructor
- CbcHeuristicGreedySOS ();
-
- /* Constructor with model - assumed before cuts
- Initial version does not do Lps
- */
- CbcHeuristicGreedySOS (CbcModel & model);
-
- // Copy constructor
- CbcHeuristicGreedySOS ( const CbcHeuristicGreedySOS &);
-
- // Destructor
- ~CbcHeuristicGreedySOS ();
-
- /// Clone
- virtual CbcHeuristic * clone() const;
- /// Assignment operator
- CbcHeuristicGreedySOS & operator=(const CbcHeuristicGreedySOS& rhs);
- /// Create C++ lines to get to current state
- virtual void generateCpp( FILE * fp) ;
-
- /// update model (This is needed if cliques update matrix etc)
- virtual void setModel(CbcModel * model);
-
- using CbcHeuristic::solution ;
- /** returns 0 if no solution, 1 if valid solution.
- Sets solution values if good, sets objective value (only if good)
- We leave all variables which are at one at this node of the
- tree to that value and will
- initially set all others to zero. We then sort all variables in order of their cost
- divided by the number of entries in rows which are not yet covered. We randomize that
- value a bit so that ties will be broken in different ways on different runs of the heuristic.
- We then choose the best one and set it to one and repeat the exercise.
-
- */
- virtual int solution(double & objectiveValue,
- double * newSolution);
- /// Validate model i.e. sets when_ to 0 if necessary (may be NULL)
- virtual void validate() ;
- /// Resets stuff if model changes
- virtual void resetModel(CbcModel * model);
- /* Algorithm
- Bits
- 1 bit - use current model, otherwise original
- 2 - use current solution as starting point, otherwise pure greedy
- 4 - as 2 but use merit not merit/size
- 8 - use duals to modify greedy
- 16 - use duals on GUB/SOS in special way
- */
- inline int algorithm() const {
- return algorithm_;
- }
- inline void setAlgorithm(int value) {
- algorithm_ = value;
- }
- // Only do this many times
- inline int numberTimes() const {
- return numberTimes_;
- }
- inline void setNumberTimes(int value) {
- numberTimes_ = value;
- }
-
-protected:
- /// Guts of constructor from a CbcModel
- void gutsOfConstructor(CbcModel * model);
- // Data
-
- // Original RHS - if -1.0 then SOS otherwise <= value
- double * originalRhs_;
- // Original matrix by column
- CoinPackedMatrix matrix_;
- // original number of rows
- int originalNumberRows_;
- /* Algorithm
- */
- int algorithm_;
- /// Do this many times
- int numberTimes_;
-
-};
-
-
-#endif
-