summaryrefslogtreecommitdiff
path: root/build/Bonmin/include/coin/CbcHeuristicFPump.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'build/Bonmin/include/coin/CbcHeuristicFPump.hpp')
-rw-r--r--build/Bonmin/include/coin/CbcHeuristicFPump.hpp340
1 files changed, 0 insertions, 340 deletions
diff --git a/build/Bonmin/include/coin/CbcHeuristicFPump.hpp b/build/Bonmin/include/coin/CbcHeuristicFPump.hpp
deleted file mode 100644
index 1c1af86..0000000
--- a/build/Bonmin/include/coin/CbcHeuristicFPump.hpp
+++ /dev/null
@@ -1,340 +0,0 @@
-/* $Id: CbcHeuristicFPump.hpp 1573 2011-01-05 01:12:36Z lou $ */
-// Copyright (C) 2004, International Business Machines
-// Corporation and others. All Rights Reserved.
-// This code is licensed under the terms of the Eclipse Public License (EPL).
-
-#ifndef CbcHeuristicFeasibilityPump_H
-#define CbcHeuristicFeasibilityPump_H
-
-#include "CbcHeuristic.hpp"
-#include "OsiClpSolverInterface.hpp"
-
-/** Feasibility Pump class
- */
-
-class CbcHeuristicFPump : public CbcHeuristic {
-public:
-
- // Default Constructor
- CbcHeuristicFPump ();
-
- // Constructor with model - assumed before cuts
- CbcHeuristicFPump (CbcModel & model,
- double downValue = 0.5, bool roundExpensive = false);
-
- // Copy constructor
- CbcHeuristicFPump ( const CbcHeuristicFPump &);
-
- // Destructor
- ~CbcHeuristicFPump ();
-
- /// Assignment operator
- CbcHeuristicFPump & operator=(const CbcHeuristicFPump& rhs);
- /// Clone
- virtual CbcHeuristic * clone() const;
- /// Create C++ lines to get to current state
- virtual void generateCpp( FILE * fp) ;
-
- /// Resets stuff if model changes
- virtual void resetModel(CbcModel * model);
-
- /// 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
- with better objective value than one passed in
- Sets solution values if good, sets objective value (only if good)
- This is called after cuts have been added - so can not add cuts.
-
- It may make sense for user to call this outside Branch and Cut to
- get solution. Or normally is just at root node.
-
- * new meanings for when_ - on first try then set back to 1
- 11 - at end fix all integers at same bound throughout
- 12 - also fix all integers staying at same internal integral value throughout
- 13 - also fix all continuous variables staying at same bound throughout
- 14 - also fix all continuous variables staying at same internal value throughout
- 15 - as 13 but no internal integers
- And beyond that, it's apparently possible for the range to be between 21
- and 25, in which case it's reduced on entry to solution() to be between
- 11 and 15 and allSlack is set to true. Then, if we're not processing
- general integers, we'll use an all-slack basis to solve ... what? Don't
- see that yet.
- */
- virtual int solution(double & objectiveValue,
- double * newSolution);
-
- /// Set maximum Time (default off) - also sets starttime to current
- void setMaximumTime(double value);
- /// Get maximum Time (default 0.0 == time limit off)
- inline double maximumTime() const {
- return maximumTime_;
- }
- /// Set fake cutoff (default COIN_DBL_MAX == off)
- inline void setFakeCutoff(double value) {
- fakeCutoff_ = value;
- }
- /// Get fake cutoff (default 0.0 == off)
- inline double fakeCutoff() const {
- return fakeCutoff_;
- }
- /// Set absolute increment (default 0.0 == off)
- inline void setAbsoluteIncrement(double value) {
- absoluteIncrement_ = value;
- }
- /// Get absolute increment (default 0.0 == off)
- inline double absoluteIncrement() const {
- return absoluteIncrement_;
- }
- /// Set relative increment (default 0.0 == off)
- inline void setRelativeIncrement(double value) {
- relativeIncrement_ = value;
- }
- /// Get relative increment (default 0.0 == off)
- inline double relativeIncrement() const {
- return relativeIncrement_;
- }
- /// Set default rounding (default 0.5)
- inline void setDefaultRounding(double value) {
- defaultRounding_ = value;
- }
- /// Get default rounding (default 0.5)
- inline double defaultRounding() const {
- return defaultRounding_;
- }
- /// Set initial weight (default 0.0 == off)
- inline void setInitialWeight(double value) {
- initialWeight_ = value;
- }
- /// Get initial weight (default 0.0 == off)
- inline double initialWeight() const {
- return initialWeight_;
- }
- /// Set weight factor (default 0.1)
- inline void setWeightFactor(double value) {
- weightFactor_ = value;
- }
- /// Get weight factor (default 0.1)
- inline double weightFactor() const {
- return weightFactor_;
- }
- /// Set threshold cost for using original cost - even on continuous (default infinity)
- inline void setArtificialCost(double value) {
- artificialCost_ = value;
- }
- /// Get threshold cost for using original cost - even on continuous (default infinity)
- inline double artificialCost() const {
- return artificialCost_;
- }
- /// Get iteration to size ratio
- inline double iterationRatio() const {
- return iterationRatio_;
- }
- /// Set iteration to size ratio
- inline void setIterationRatio(double value) {
- iterationRatio_ = value;
- }
- /// Set maximum passes (default 100)
- inline void setMaximumPasses(int value) {
- maximumPasses_ = value;
- }
- /// Get maximum passes (default 100)
- inline int maximumPasses() const {
- return maximumPasses_;
- }
- /// Set maximum retries (default 1)
- inline void setMaximumRetries(int value) {
- maximumRetries_ = value;
- }
- /// Get maximum retries (default 1)
- inline int maximumRetries() const {
- return maximumRetries_;
- }
- /** Set use of multiple solutions and solves
- 0 - do not reuse solves, do not accumulate integer solutions for local search
- 1 - do not reuse solves, accumulate integer solutions for local search
- 2 - reuse solves, do not accumulate integer solutions for local search
- 3 - reuse solves, accumulate integer solutions for local search
- If we add 4 then use second form of problem (with extra rows and variables for general integers)
- At some point (date?), I added
-
- And then there are a few bit fields:
- 4 - something about general integers
- So my (lh) guess for 4 was at least in the ballpark, but I'll have to
- rethink 8 entirely (and it may well not mean the same thing as it did
- when I added that comment.
- 8 - determines whether we process general integers
-
- And on 090831, John added
-
- If we add 4 then use second form of problem (with extra rows and
- variables for general integers)
- If we add 8 then can run after initial cuts (if no solution)
- */
- inline void setAccumulate(int value) {
- accumulate_ = value;
- }
- /// Get accumulation option
- inline int accumulate() const {
- return accumulate_;
- }
- /** Set whether to fix variables on known solution
- 0 - do not fix
- 1 - fix integers on reduced costs
- 2 - fix integers on reduced costs but only on entry
- */
- inline void setFixOnReducedCosts(int value) {
- fixOnReducedCosts_ = value;
- }
- /// Get reduced cost option
- inline int fixOnReducedCosts() const {
- return fixOnReducedCosts_;
- }
- /** Set reduced cost multiplier
- 1.0 as normal
- <1.0 (x) - pretend gap is x* actual gap - just for fixing
- */
- inline void setReducedCostMultiplier(double value) {
- reducedCostMultiplier_ = value;
- }
- /// Get reduced cost multiplier
- inline double reducedCostMultiplier() const {
- return reducedCostMultiplier_;
- }
-
-protected:
- // Data
- /// Start time
- double startTime_;
- /// Maximum Cpu seconds
- double maximumTime_;
- /** Fake cutoff value.
- If set then better of real cutoff and this used to add a constraint
- */
- double fakeCutoff_;
- /// If positive carry on after solution expecting gain of at least this
- double absoluteIncrement_;
- /// If positive carry on after solution expecting gain of at least this times objective
- double relativeIncrement_;
- /// Default is round up if > this
- double defaultRounding_;
- /// Initial weight for true objective
- double initialWeight_;
- /// Factor for decreasing weight
- double weightFactor_;
- /// Threshold cost for using original cost - even on continuous
- double artificialCost_;
- /** If iterationRatio >0 use instead of maximumPasses_
- test is iterations > ratio*(2*nrow+ncol) */
- double iterationRatio_;
- /** Reduced cost multiplier
- 1.0 as normal
- <1.0 (x) - pretend gap is x* actual gap - just for fixing
- */
- double reducedCostMultiplier_;
- /// Maximum number of passes
- int maximumPasses_;
- /** Maximum number of retries if we find a solution.
- If negative we clean out used array
- */
- int maximumRetries_;
- /** Set use of multiple solutions and solves
- 0 - do not reuse solves, do not accumulate integer solutions for local search
- 1 - do not reuse solves, accumulate integer solutions for local search
- 2 - reuse solves, do not accumulate integer solutions for local search
- 3 - reuse solves, accumulate integer solutions for local search
- If we add 4 then use second form of problem (with extra rows and variables for general integers)
- If we do not accumulate solutions then no mini branch and bounds will be done
- reuse - refers to initial solve after adding in new "cut"
- If we add 8 then can run after initial cuts (if no solution)
- */
- int accumulate_;
- /** Set whether to fix variables on known solution
- 0 - do not fix
- 1 - fix integers on reduced costs
- 2 - fix integers on reduced costs but only on entry
- */
- int fixOnReducedCosts_;
- /// If true round to expensive
- bool roundExpensive_;
-
-private:
- /** Rounds solution - down if < downValue
- If roundExpensive then always to more expnsive.
- returns 0 if current is solution
- */
- int rounds(OsiSolverInterface * solver, double * solution,
- /*const double * objective, */
- int numberIntegers, const int * integerVariable,
- /*char * pumpPrint,*/int passNumber,
- /*bool roundExpensive=false,*/
- double downValue = 0.5, int *flip = 0);
- /* note for eagle eyed readers.
- when_ can now be exotic -
- <=10 normal
- */
-};
-
-# ifdef COIN_HAS_CLP
-
-class CbcDisasterHandler : public OsiClpDisasterHandler {
-public:
- /**@name Virtual methods that the derived classe should provide.
- */
- //@{
-#ifdef JJF_ZERO
- /// Into simplex
- virtual void intoSimplex();
- /// Checks if disaster
- virtual bool check() const ;
- /// saves information for next attempt
- virtual void saveInfo();
-#endif
- /// Type of disaster 0 can fix, 1 abort
- virtual int typeOfDisaster();
- //@}
-
-
- /**@name Constructors, destructor */
-
- //@{
- /** Default constructor. */
- CbcDisasterHandler(CbcModel * model = NULL);
- /** Destructor */
- virtual ~CbcDisasterHandler();
- // Copy
- CbcDisasterHandler(const CbcDisasterHandler&);
- // Assignment
- CbcDisasterHandler& operator=(const CbcDisasterHandler&);
- /// Clone
- virtual ClpDisasterHandler * clone() const;
-
- //@}
-
- /**@name Sets/gets */
-
- //@{
- /** set model. */
- void setCbcModel(CbcModel * model);
- /// Get model
- inline CbcModel * cbcModel() const {
- return cbcModel_;
- }
-
- //@}
-
-
-protected:
- /**@name Data members
- The data members are protected to allow access for derived classes. */
- //@{
- /// Pointer to model
- CbcModel * cbcModel_;
-
- //@}
-};
-#endif
-
-#endif
-