diff options
Diffstat (limited to 'newstructure/thirdparty/linux/include/coin/BonHeuristicDiveMIPVectorLength.hpp')
-rw-r--r-- | newstructure/thirdparty/linux/include/coin/BonHeuristicDiveMIPVectorLength.hpp | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/newstructure/thirdparty/linux/include/coin/BonHeuristicDiveMIPVectorLength.hpp b/newstructure/thirdparty/linux/include/coin/BonHeuristicDiveMIPVectorLength.hpp new file mode 100644 index 0000000..c14ba30 --- /dev/null +++ b/newstructure/thirdparty/linux/include/coin/BonHeuristicDiveMIPVectorLength.hpp @@ -0,0 +1,74 @@ +// Copyright (C) 2007, International Business Machines Corporation and others. +// All Rights Reserved. +// This code is published under the Eclipse Public License. +// +// Authors : +// Joao P. Goncalves, International Business Machines Corporation +// +// Date : November 12, 2007 + +#ifndef BonHeuristicDiveMIPVectorLength_H +#define BonHeuristicDiveMIPVectorLength_H + +#include "BonBonminSetup.hpp" +#include "BonHeuristicDiveMIP.hpp" + +/** DiveMIPVectorLength class + */ + +namespace Bonmin +{ + class HeuristicDiveMIPVectorLength : public HeuristicDiveMIP { + public: + /// Default Constructor + HeuristicDiveMIPVectorLength (); + + /// Constructor with setup + HeuristicDiveMIPVectorLength(BonminSetup * setup); + + /// Copy constructor + HeuristicDiveMIPVectorLength(const HeuristicDiveMIPVectorLength ©); + + /// Destructor + ~HeuristicDiveMIPVectorLength() + { + delete [] columnLength_; + } + + /// Assignment operator + HeuristicDiveMIPVectorLength & operator=(const HeuristicDiveMIPVectorLength & rhs); + + /// Clone + virtual CbcHeuristic * clone() const; + + /** Change setup used for heuristic.*/ + virtual void setSetup(BonminSetup * setup){ + HeuristicDiveMIP::setSetup(setup); + Initialize(setup->options()); + } + + /// sets internal variables + virtual void setInternalVariables(TMINLP2TNLP* minlp); + + /// Selects the next variable to branch on + /** If bestColumn = -1, it means that no variable was found + */ + virtual void selectVariableToBranch(TMINLP2TNLP* minlp, + const vector<int> & integerColumns, + const double* newSolution, + int& bestColumn, + int& bestRound); + + /** Register the options common to all local search based heuristics.*/ + static void registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions); + + /** Initiaize using passed options.*/ + void Initialize(Ipopt::SmartPtr<Ipopt::OptionsList> options); + + private: + /// the number of nonzero elements in each column + int* columnLength_; + + }; +} +#endif |