6 #ifndef CbcHeuristicFeasibilityPump_H
7 #define CbcHeuristicFeasibilityPump_H
23 double downValue = 0.5,
bool roundExpensive =
false);
65 virtual int solution(
double & objectiveValue,
66 double * newSolution);
269 int numberIntegers,
const int * integerVariable,
272 double downValue = 0.5,
int *flip = 0);
290 virtual bool check()
const ;
303 CbcDisasterHandler(
CbcModel * model = NULL);
305 virtual ~CbcDisasterHandler();
307 CbcDisasterHandler(
const CbcDisasterHandler&);
309 CbcDisasterHandler&
operator=(
const CbcDisasterHandler&);
321 inline CbcModel * cbcModel()
const {
void setDefaultRounding(double value)
Set default rounding (default 0.5)
void setAccumulate(int value)
Set use of multiple solutions and solves 0 - do not reuse solves, do not accumulate integer solutions...
double maximumTime_
Maximum Cpu seconds.
int maximumPasses_
Maximum number of passes.
void setRelativeIncrement(double value)
Set relative increment (default 0.0 == off)
void setMaximumRetries(int value)
Set maximum retries (default 1)
int fixOnReducedCosts_
Set whether to fix variables on known solution 0 - do not fix 1 - fix integers on reduced costs 2 - f...
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...
int maximumRetries_
Maximum number of retries if we find a solution.
void setFixOnReducedCosts(int value)
Set whether to fix variables on known solution 0 - do not fix 1 - fix integers on reduced costs 2 - f...
int maximumPasses() const
Get maximum passes (default 100)
double reducedCostMultiplier() const
Get reduced cost multiplier.
int maximumRetries() const
Get maximum retries (default 1)
Base class for Clp disaster handling.
double absoluteIncrement() const
Get absolute increment (default 0.0 == off)
void setWeightFactor(double value)
Set weight factor (default 0.1)
double startTime_
Start time.
virtual int typeOfDisaster()
Type of disaster 0 can fix, 1 abort.
double weightFactor() const
Get weight factor (default 0.1)
void setArtificialCost(double value)
Set threshold cost for using original cost - even on continuous (default infinity) ...
double artificialCost_
Threshold cost for using original cost - even on continuous.
Abstract Base Class for describing an interface to a solver.
double maximumTime() const
Get maximum Time (default 0.0 == time limit off)
void setMaximumPasses(int value)
Set maximum passes (default 100)
void setReducedCostMultiplier(double value)
Set reduced cost multiplier 1.0 as normal <1.0 (x) - pretend gap is x* actual gap - just for fixing...
virtual bool check() const
Checks if disaster.
int accumulate_
Set use of multiple solutions and solves 0 - do not reuse solves, do not accumulate integer solutions...
void setInitialWeight(double value)
Set initial weight (default 0.0 == off)
double defaultRounding() const
Get default rounding (default 0.5)
double reducedCostMultiplier_
Reduced cost multiplier 1.0 as normal <1.0 (x) - pretend gap is x* actual gap - just for fixing...
double weightFactor_
Factor for decreasing weight.
virtual void generateCpp(FILE *fp)
Create C++ lines to get to current state.
double initialWeight() const
Get initial weight (default 0.0 == off)
virtual void intoSimplex()
Into simplex.
void setMaximumTime(double value)
Set maximum Time (default off) - also sets starttime to current.
virtual ClpDisasterHandler * clone() const
Clone.
int rounds(OsiSolverInterface *solver, double *solution, int numberIntegers, const int *integerVariable, int passNumber, double downValue=0.5, int *flip=0)
Rounds solution - down if < downValue If roundExpensive then always to more expnsive.
CbcHeuristicFPump & operator=(const CbcHeuristicFPump &rhs)
Assignment operator.
double relativeIncrement_
If positive carry on after solution expecting gain of at least this times objective.
double initialWeight_
Initial weight for true objective.
double absoluteIncrement_
If positive carry on after solution expecting gain of at least this.
void setAbsoluteIncrement(double value)
Set absolute increment (default 0.0 == off)
virtual void resetModel(CbcModel *model)
Resets stuff if model changes.
double iterationRatio() const
Get iteration to size ratio.
double fakeCutoff_
Fake cutoff value.
virtual void setModel(CbcModel *model)
update model (This is needed if cliques update matrix etc)
double fakeCutoff() const
Get fake cutoff (default 0.0 == off)
virtual int solution(double &objectiveValue, double *newSolution)=0
returns 0 if no solution, 1 if valid solution with better objective value than one passed in Sets sol...
void setIterationRatio(double value)
Set iteration to size ratio.
double relativeIncrement() const
Get relative increment (default 0.0 == off)
double iterationRatio_
If iterationRatio >0 use instead of maximumPasses_ test is iterations > ratio*(2*nrow+ncol) ...
int accumulate() const
Get accumulation option.
OsiClpDisasterHandler & operator=(const OsiClpDisasterHandler &)
int fixOnReducedCosts() const
Get reduced cost option.
double artificialCost() const
Get threshold cost for using original cost - even on continuous (default infinity) ...
virtual void saveInfo()
saves information for next attempt
double defaultRounding_
Default is round up if > this.
bool roundExpensive_
If true round to expensive.
Simple Branch and bound class.
void setFakeCutoff(double value)
Set fake cutoff (default COIN_DBL_MAX == off)
virtual CbcHeuristic * clone() const
Clone.