CglStored.hpp
Go to the documentation of this file.
1 // $Id: CglStored.hpp 1119 2013-04-06 20:24:18Z stefan $
2 // Copyright (C) 2005, 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 CglStored_H
7 #define CglStored_H
8 
9 #include <string>
10 
11 #include "CglCutGenerator.hpp"
12 
13 class CoinWarmStartBasis;
14 class CglTreeProbingInfo;
16 class CglStored : public CglCutGenerator {
17 
18 public:
19 
20 
31  virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
32  const CglTreeInfo info = CglTreeInfo());
34 
39  inline void setRequiredViolation(double value)
41  { requiredViolation_=value;}
43  inline double getRequiredViolation() const
44  { return requiredViolation_;}
46  inline void setProbingInfo(CglTreeProbingInfo * info)
47  { probingInfo_ = info;}
49 
52  void addCut(const OsiCuts & cs);
55  void addCut(const OsiRowCut & cut);
57  void addCut(double lb, double ub, const CoinPackedVector & vector);
59  void addCut(double lb, double ub, int size, const int * colIndices, const double * elements);
60  inline int sizeRowCuts() const
61  { return cuts_.sizeRowCuts();}
62  const OsiRowCut * rowCutPointer(int index) const
63  { return cuts_.rowCutPtr(index);}
65  void saveStuff(double bestObjective, const double * bestSolution,
66  const double * lower, const double * upper);
68  inline const double * bestSolution() const
69  { return bestSolution_;}
71  double bestObjective() const;
73  const double * tightLower() const
74  { return bounds_;}
76  const double * tightUpper() const
77  { return bounds_+numberColumns_;}
79 
82  CglStored (int numberColumns=0);
84 
86  CglStored (const CglStored & rhs);
87 
89  CglStored (const char * fileName);
90 
92  virtual CglCutGenerator * clone() const;
93 
95  CglStored &
96  operator=(const CglStored& rhs);
97 
99  virtual
100  ~CglStored ();
102 
103 protected:
104 
105  // Protected member methods
106 
107  // Protected member data
108 
111  double requiredViolation_;
120  double * bestSolution_;
122  double * bounds_;
124 };
125 #endif
double * bounds_
Tight bounds.
Definition: CglStored.hpp:122
CglTreeProbingInfo * probingInfo_
Pointer to probing information.
Definition: CglStored.hpp:114
CglStored & operator=(const CglStored &rhs)
Assignment operator.
Row Cut Class.
Definition: OsiRowCut.hpp:29
const double * tightUpper() const
Tight upper bounds.
Definition: CglStored.hpp:76
double * bestSolution_
Best solution (objective at end)
Definition: CglStored.hpp:120
virtual CglCutGenerator * clone() const
Clone.
double requiredViolation_
Only add if more than this requiredViolation.
Definition: CglStored.hpp:112
CglStored(int numberColumns=0)
Default constructor.
double getRequiredViolation() const
Get.
Definition: CglStored.hpp:43
Collections of row cuts and column cuts.
Definition: OsiCuts.hpp:19
void saveStuff(double bestObjective, const double *bestSolution, const double *lower, const double *upper)
Save stuff.
void setRequiredViolation(double value)
Set.
Definition: CglStored.hpp:40
double bestObjective() const
Best objective.
int numberColumns_
Number of columns in model.
Definition: CglStored.hpp:118
int sizeRowCuts() const
Number of row cuts in collection.
Definition: OsiCuts.hpp:374
Abstract Base Class for describing an interface to a solver.
const double * tightLower() const
Tight lower bounds.
Definition: CglStored.hpp:73
Cut Generator Base Class.
virtual ~CglStored()
Destructor.
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Generate Mixed Integer Stored cuts for the model of the solver interface, si.
Sparse Vector.
int sizeRowCuts() const
Add cuts.
Definition: CglStored.hpp:60
OsiRowCut * rowCutPtr(int i)
Get pointer to i&#39;th row cut.
Definition: OsiCuts.hpp:386
const OsiRowCut * rowCutPointer(int index) const
Add cuts.
Definition: CglStored.hpp:62
Stored Cut Generator Class.
Definition: CglStored.hpp:16
Information about where the cut generator is invoked from.
Definition: CglTreeInfo.hpp:15
const double * bestSolution() const
Best solution (or NULL)
Definition: CglStored.hpp:68
void setProbingInfo(CglTreeProbingInfo *info)
Takes over ownership of probing info.
Definition: CglStored.hpp:46
The default COIN simplex (basis-oriented) warm start class.
OsiCuts cuts_
Cuts.
Definition: CglStored.hpp:116
void addCut(const OsiCuts &cs)
Add cuts.