6#ifndef CbcHeuristicDive_H
7#define CbcHeuristicDive_H
63 int &numberCuts, OsiRowCut **cuts,
64 CbcSubProblem **&nodes,
127 const double *newSolution,
141 const double *random);
void setPriorities()
Sets priorities if any.
virtual void resetModel(CbcModel *model)
Resets stuff if model changes.
int reducedCostFix(OsiSolverInterface *solver)
Perform reduced cost fixing on integer variables.
std::vector< int > binVarIndex_
void setPercentageToFix(double value)
Set percentage of integer variables to fix at bounds.
int solution(double &objectiveValue, int &numberNodes, int &numberCuts, OsiRowCut **cuts, CbcSubProblem **&nodes, double *newSolution)
inner part of dive
void setMaxIterations(int value)
Set maximum number of iterations.
void selectBinaryVariables()
Select candidate binary variables for fixing.
unsigned short * downLocks_
std::vector< int > vbRowIndex_
virtual void setModel(CbcModel *model)
update model (This is needed if cliques update matrix etc)
CbcHeuristicDive(CbcModel &model)
virtual CbcHeuristicDive * clone() const =0
Clone.
int maxSimplexIterationsAtRoot_
double * downArray_
Extra down array (number Integers long)
int maxSimplexIterations() const
Get maximum number of simplex iterations.
void setMaxSimplexIterations(int value)
Set maximum number of simplex iterations.
virtual void validate()
Validate model i.e. sets when_ to 0 if necessary (may be NULL)
CbcHeuristicDive(const CbcHeuristicDive &)
unsigned short * upLocks_
int fathom(CbcModel *model, int &numberNodes, CbcSubProblem **&nodes)
returns 0 if no solution, 1 if valid solution with better objective value than one passed in also ret...
CbcHeuristicDive & operator=(const CbcHeuristicDive &rhs)
Assignment operator.
void generateCpp(FILE *fp, const char *heuristic)
Create C++ lines to get to current state - does work for base class.
void setMaxTime(double value)
Set maximum time allowed.
int maxSimplexIterations_
void setMaxSimplexIterationsAtRoot(int value)
Set maximum number of simplex iterations at root node.
virtual void generateCpp(FILE *)
Create C++ lines to get to current state.
virtual void initializeData()
Initializes any data which is going to be used repeatedly in selectVariableToBranch.
CoinPackedMatrix matrixByRow_
virtual bool canHeuristicRun()
Tests if the heuristic can run.
virtual int solution(double &objectiveValue, double *newSolution)
returns 0 if no solution, 1 if valid solution with better objective value than one passed in Sets sol...
double * upArray_
Extra up array (number Integers long)
virtual bool selectVariableToBranch(OsiSolverInterface *solver, const double *newSolution, int &bestColumn, int &bestRound)=0
Selects the next variable to branch on Returns true if all the fractional variables can be trivially ...
virtual int fixOtherVariables(OsiSolverInterface *solver, const double *solution, PseudoReducedCost *candidate, const double *random)
Fix other variables at bounds.
int numberNodes() const
Gets number of nodes in a subtree (default 200)
Simple Branch and bound class.