coin-Cgl
CglStored.hpp
Go to the documentation of this file.
1 // Copyright (C) 2005, International Business Machines
2 // Corporation and others. All Rights Reserved.
3 #ifndef CglStored_H
4 #define CglStored_H
5 
6 #include <string>
7 
8 #include "CglCutGenerator.hpp"
9 
10 class CoinWarmStartBasis;
11 class CglTreeProbingInfo;
13 class CglStored : public CglCutGenerator {
14 
15 public:
16 
17 
28  virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
29  const CglTreeInfo info = CglTreeInfo()) const;
31 
36  inline void setRequiredViolation(double value)
38  { requiredViolation_=value;}
40  inline double getRequiredViolation() const
41  { return requiredViolation_;}
43  inline void setProbingInfo(CglTreeProbingInfo * info)
44  { probingInfo_ = info;}
46 
49  void addCut(const OsiCuts & cs);
52  void addCut(const OsiRowCut & cut);
54  void addCut(double lb, double ub, const CoinPackedVector & vector);
56  void addCut(double lb, double ub, int size, const int * colIndices, const double * elements);
57  inline int sizeRowCuts() const
58  { return cuts_.sizeRowCuts();}
59  const OsiRowCut * rowCutPointer(int index) const
60  { return cuts_.rowCutPtr(index);}
62  void saveStuff(double bestObjective, const double * bestSolution,
63  const double * lower, const double * upper);
65  inline const double * bestSolution() const
66  { return bestSolution_;}
68  double bestObjective() const;
70  const double * tightLower() const
71  { return bounds_;}
73  const double * tightUpper() const
74  { return bounds_+numberColumns_;}
76 
79  CglStored (int numberColumns=0);
81 
83  CglStored (const CglStored & rhs);
84 
86  CglStored (const char * fileName);
87 
89  virtual CglCutGenerator * clone() const;
90 
92  CglStored &
93  operator=(const CglStored& rhs);
94 
96  virtual
97  ~CglStored ();
99 
100 protected:
101 
102  // Protected member methods
103 
104  // Protected member data
105 
108  double requiredViolation_;
113  mutable OsiCuts cuts_;
117  double * bestSolution_;
119  double * bounds_;
121 };
122 #endif
double * bounds_
Tight bounds.
Definition: CglStored.hpp:119
CglTreeProbingInfo * probingInfo_
Pointer to probing information.
Definition: CglStored.hpp:111
CglStored & operator=(const CglStored &rhs)
Assignment operator.
const double * tightUpper() const
Tight upper bounds.
Definition: CglStored.hpp:73
double * bestSolution_
Best solution (objective at end)
Definition: CglStored.hpp:117
virtual CglCutGenerator * clone() const
Clone.
double requiredViolation_
Only add if more than this requiredViolation.
Definition: CglStored.hpp:109
CglStored(int numberColumns=0)
Default constructor.
double getRequiredViolation() const
Get.
Definition: CglStored.hpp:40
void saveStuff(double bestObjective, const double *bestSolution, const double *lower, const double *upper)
Save stuff.
void setRequiredViolation(double value)
Set.
Definition: CglStored.hpp:37
double bestObjective() const
Best objective.
int numberColumns_
Number of columns in model.
Definition: CglStored.hpp:115
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo()) const
Generate Mixed Integer Stored cuts for the model of the solver interface, si.
const double * tightLower() const
Tight lower bounds.
Definition: CglStored.hpp:70
Cut Generator Base Class.
virtual ~CglStored()
Destructor.
int sizeRowCuts() const
Add cuts.
Definition: CglStored.hpp:57
const OsiRowCut * rowCutPointer(int index) const
Add cuts.
Definition: CglStored.hpp:59
Stored Cut Generator Class.
Definition: CglStored.hpp:13
Information about where the cut generator is invoked from.
Definition: CglTreeInfo.hpp:13
const double * bestSolution() const
Best solution (or NULL)
Definition: CglStored.hpp:65
void setProbingInfo(CglTreeProbingInfo *info)
Takes over ownership of probing info.
Definition: CglStored.hpp:43
OsiCuts cuts_
Cuts.
Definition: CglStored.hpp:113
void addCut(const OsiCuts &cs)
Add cuts.