Cbc  2.10.7
CbcSolverLongThin.hpp
Go to the documentation of this file.
1 // $Id$
2 // Copyright (C) 2004, International Business Machines
3 // Corporation and others. All Rights Reserved.
4 // This code is licensed under the terms of the Eclipse Public License (EPL).
5 
6 #ifndef CbcSolverLongThin_H
7 #define CbcSolverLongThin_H
8 
9 #include "OsiClpSolverInterface.hpp"
10 class CbcModel;
11 //#############################################################################
12 
18 class CbcSolverLongThin : public OsiClpSolverInterface {
19 
20 public:
21  //---------------------------------------------------------------------------
24  virtual void initialSolve();
26 
28  virtual void resolve();
29 
31 
36 
38  virtual OsiSolverInterface *clone(bool CopyData = true) const;
39 
42 
45 
47  virtual ~CbcSolverLongThin();
48 
50 
54  void initialize(CbcModel *model, const char *keep);
56  inline const int *when() const
57  {
58  return node_;
59  }
61  inline int getMemory() const
62  {
63  return memory_;
64  }
66  inline int getCount() const
67  {
68  return count_;
69  }
71  inline void setMemory(int value)
72  {
73  memory_ = value;
74  }
76  inline void setBelieveInfeasible(bool yesNo)
77  {
78  believeInfeasible_ = yesNo;
79  }
81  inline void setAlgorithm(int value)
82  {
83  algorithm_ = value;
84  }
86  inline void setNested(double value)
87  {
88  nestedSearch_ = value;
89  }
91  inline int getAlgorithm() const
92  {
93  return algorithm_;
94  }
96  inline double getNested() const
97  {
98  return nestedSearch_;
99  }
101 
102  //---------------------------------------------------------------------------
103 
104 private:
110  int *node_;
112  int *howMany_;
116  int count_;
118  int memory_;
124 };
125 
126 #endif
Simple Branch and bound class.
Definition: CbcModel.hpp:100
This is to allow the user to replace initialSolve and resolve.
virtual OsiSolverInterface * clone(bool CopyData=true) const
Clone.
CbcSolverLongThin & operator=(const CbcSolverLongThin &rhs)
Assignment operator.
void setMemory(int value)
Set memory (i.e. how recent use should be)
const int * when() const
get which ones have been used
double getNested() const
Do nested search if this fraction fixed.
int getCount() const
Get current count.
void setBelieveInfeasible(bool yesNo)
Say whether to believe infeasible.
int * howMany_
How many times in problem.
bool believeInfeasible_
If infeasible on subset means infeasible.
double nestedSearch_
Do nested search if this fraction fixed.
CbcModel * model_
Pointer back to model.
CbcSolverLongThin()
Default Constructor.
CbcSolverLongThin(const CbcSolverLongThin &)
Copy constructor.
int memory_
How recently it must have been used.
bool algorithm_
If 0 nothing, 1 compress and fix, 2 long thin.
void setAlgorithm(int value)
Say whether to just count usage.
int getMemory() const
Get memory (i.e. how recent use should be)
void initialize(CbcModel *model, const char *keep)
Setup arrays - ones in keep will always be in.
int getAlgorithm() const
Say whether to just count usage.
virtual void initialSolve()
Solve initial LP relaxation.
virtual ~CbcSolverLongThin()
Destructor.
void setNested(double value)
Do nested search if this fraction fixed.
virtual void resolve()
Resolve an LP relaxation after problem modification.
int * node_
Node number when variable last in problem.