Go to the documentation of this file.
9 #ifndef BonOaDecBase_HPP
10 #define BonOaDecBase_HPP
15 #include "CbcModel.hpp"
17 #include "CbcStrategy.hpp"
39 bool saveBasis=
true,
bool saveBounds=
false,
40 bool saveCutoff =
false,
bool resolve=
true);
66 int initialNumberRows_;
94 const double * siColLower_;
96 const double * siColUpper_;
179 if (strategy_)
delete strategy_;
185 if (strategy_)
delete strategy_;
196 CbcStrategy * strategy_;
281 void printEndOfProcedureDebugMessage(
const OsiCuts &cs,
287 std::ostream & os)
const;
OsiSolverInterface * lp_
A linear solver.
OsiObject ** objects_
Some objects the feasiblitiy of which to verify.
int currentNodeNumber_
Store the current node number.
const CbcStrategy * strategy() const
Parameters parameters_
Parameters.
int numSols_
number of solutions found by OA_decomposition.
Parameters for algorithm.
double gap_tol_
setting for gap tolerance.
void setLogLevel(int value)
(C) Copyright International Business Machines Corporation 2007
OsiCuts savedCuts_
Saved cuts: in some cases when using OA to check feasible solution algorithm may loop because Cbc rem...
virtual void generateCuts(const OsiSolverInterface &si, OsiCuts &cs, const CglTreeInfo info=CglTreeInfo())
Standard cut generation methods.
OaDecompositionBase(BabSetupBase &b, bool leaveSiUnchanged, bool reassignLpsolver)
New usefull constructor.
double logFrequency_
Frequency of log.
double cbcCutoffIncrement_
cutoff min increase (has to be intialized trhough Cbc)
A class to have all elements necessary to setup a branch-and-bound.
bool reassignLpsolver_
Do we need to reassign the lp solver with Cbc.
void assignLpInterface(OsiSolverInterface *si)
Assign an OsiTMINLPInterface.
bool global_
Add cuts as global.
bool addOnlyViolated_
Add only violated OA inequalities.
Bonmin class for passing info between components of branch-and-cuts.
virtual double performOa(OsiCuts &cs, solverManip &lpManip, BabInfo *babInfo, double &, const CglTreeInfo &info) const =0
virtual method which performs the OA algorithm by modifying lp and nlp.
void setLeaveSiUnchanged(bool yesno)
Set whether to leave the solverinterface unchanged.
int nLocalSearch_
number of local searches performed
bool post_nlp_solve(BabInfo *babInfo, double cutoff) const
Solve the nlp and do output.
void passInMessageHandler(CoinMessageHandler *handler)
void setObjects(OsiObject **objects, int nObjects)
Set objects.
void assignNlpInterface(OsiTMINLPInterface *nlp)
Assign an OsiTMINLPInterface.
OsiTMINLPInterface * nlp_
Pointer to nlp interface.
int nSolve_
Number of nlp solved done.
int subMilpLogLevel_
sub milp log level.
void setStrategy(const CbcStrategy &strategy)
Strategy to apply when using Cbc as MILP sub-solver.
CoinMessageHandler * handler_
messages handler.
double maxLocalSearchTime_
maximum time for local searches
Base class for OA algorithms.
virtual bool doLocalSearch(BabInfo *babInfo) const =0
virutal method to decide if local search is performed
int maxSols_
maximum number of solutions
double cbcIntegerTolerance_
integer tolerance (has to be the same as Cbc's)
~solverManip()
Destructor.
CoinMessages messages_
Messages for OA.
This is class provides an Osi interface for a Mixed Integer Linear Program expressed as a TMINLP (so ...
Small class to manipulatee various things in an OsiSolverInterface and restore them.
void restore()
Restore solver.
BabSetupBase * s_
Pointer to setup.
const Parameters & parameter() const
void setLogLevel(int level)
OsiSolverInterface * si()
Get pointer to solver interface.
int maxLocalSearch_
Total max number of local searches.
virtual ~OaDecompositionBase()
Destructor.
void setupMipSolver(BabSetupBase &b, const std::string &prefix)
void setObjects(OsiObject **objects, int nObjects)
Set objects.
int nObjects_
Number of objects.*/.
Parameters()
Constructor with default values.
void setReassignLpSolver(bool v)
solverManip(OsiSolverInterface *si, bool saveNumRows=true, bool saveBasis=true, bool saveBounds=false, bool saveCutoff=false, bool resolve=true)
Constructor.
bool leaveSiUnchanged_
Wether or not we should remove cuts at the end of the procedure.
double timeBegin_
time of construction