Cgl 0.60.9
Loading...
Searching...
No Matches
CglCutGenerator.hpp
Go to the documentation of this file.
1// Copyright (C) 2000, International Business Machines
2// Corporation and others. All Rights Reserved.
3// This code is licensed under the terms of the Eclipse Public License (EPL).
4
5#ifndef CglCutGenerator_H
6#define CglCutGenerator_H
7
8#include "OsiCuts.hpp"
9#include "OsiSolverInterface.hpp"
10#include "CglTreeInfo.hpp"
11
12//-------------------------------------------------------------------
13//
14// Abstract base class for generating cuts.
15//
16//-------------------------------------------------------------------
18
24
25public:
28
32 virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs,
33 const CglTreeInfo info = CglTreeInfo())
34 = 0;
36
39
41
44
46 virtual CglCutGenerator *clone() const = 0;
47
50
53
64 virtual std::string generateCpp(FILE *) { return ""; }
65
67 virtual void refreshSolver(OsiSolverInterface *) {}
69
72
76 inline int getAggressiveness() const
77 {
78 return aggressive_;
79 }
80
85 inline void setAggressiveness(int value)
86 {
87 aggressive_ = value;
88 }
89
90 inline void setGlobalCuts(bool trueOrFalse)
91 {
92 canDoGlobalCuts_ = trueOrFalse;
93 }
94
95 inline bool canDoGlobalCuts() const
96 {
97 return canDoGlobalCuts_;
98 }
99
106 virtual bool mayGenerateRowCutsInTree() const;
108 virtual bool needsOptimalBasis() const;
110 virtual int maximumLengthOfCutInTree() const
111 {
112 return COIN_INT_MAX;
113 }
114
115
116 // test this class
117 //static void unitTest();
118
119 // private:
120
128};
129
130#endif
131
132/* vi: softtabstop=2 shiftwidth=2 expandtab tabstop=2
133*/
CglCutGenerator & operator=(const CglCutGenerator &rhs)
Assignment operator.
virtual CglCutGenerator * clone() const =0
Clone.
void setGlobalCuts(bool trueOrFalse)
Set whether can do global cuts.
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())=0
Generate cuts for the model data contained in si.
int aggressive_
Aggressiveness - 0 = neutral, 100 is normal root node.
int getAggressiveness() const
Get Aggressiveness - 0 = neutral, 100 is normal root node.
bool canDoGlobalCuts() const
Say whether can do global cuts.
CglCutGenerator()
Default constructor.
virtual bool mayGenerateRowCutsInTree() const
Returns true if may generate Row cuts in tree (rather than root node).
virtual int maximumLengthOfCutInTree() const
Return maximum length of cut in tree.
void setAggressiveness(int value)
Set Aggressiveness - 0 = neutral, 100 is normal root node.
CglCutGenerator(const CglCutGenerator &)
Copy constructor.
virtual ~CglCutGenerator()
Destructor.
virtual bool needsOptimalBasis() const
Return true if needs optimal basis to do cuts.
virtual std::string generateCpp(FILE *)
Create C++ lines to set the generator in the current state.
virtual void refreshSolver(OsiSolverInterface *)
This can be used to refresh any information.
bool canDoGlobalCuts_
True if can do global cuts i.e. no general integers.
Information about where the cut generator is invoked from.