#include <CbcHeuristicFPump.hpp>
Inheritance diagram for CbcHeuristicFPump:
Public Member Functions | |
CbcHeuristicFPump () | |
CbcHeuristicFPump (CbcModel &model, double downValue=0.5, bool roundExpensive=false) | |
CbcHeuristicFPump (const CbcHeuristicFPump &) | |
~CbcHeuristicFPump () | |
CbcHeuristicFPump & | operator= (const CbcHeuristicFPump &rhs) |
Assignment operator. | |
virtual CbcHeuristic * | clone () const |
Clone. | |
virtual void | generateCpp (FILE *fp) |
Create C++ lines to get to current state. | |
virtual void | resetModel (CbcModel *model) |
Resets stuff if model changes. | |
virtual void | setModel (CbcModel *model) |
update model (This is needed if cliques update matrix etc) | |
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 solution values if good, sets objective value (only if good) This is called after cuts have been added - so can not add cuts. | |
void | setMaximumTime (double value) |
Set maximum Time (default off) - also sets starttime to current. | |
double | maximumTime () const |
Get maximum Time (default 0.0 == time limit off). | |
void | setFakeCutoff (double value) |
Set fake cutoff (default COIN_DBL_MAX == off). | |
double | fakeCutoff () const |
Get fake cutoff (default 0.0 == off). | |
void | setAbsoluteIncrement (double value) |
Set absolute increment (default 0.0 == off). | |
double | absoluteIncrement () const |
Get absolute increment (default 0.0 == off). | |
void | setRelativeIncrement (double value) |
Set relative increment (default 0.0 == off). | |
double | relativeIncrement () const |
Get relative increment (default 0.0 == off). | |
void | setDefaultRounding (double value) |
Set default rounding (default 0.5). | |
double | defaultRounding () const |
Get default rounding (default 0.5). | |
void | setInitialWeight (double value) |
Set initial weight (default 0.0 == off). | |
double | initialWeight () const |
Get initial weight (default 0.0 == off). | |
void | setWeightFactor (double value) |
Set weight factor (default 0.1). | |
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 () const |
Get threshold cost for using original cost - even on continuous (default infinity). | |
double | iterationRatio () const |
Get iteration to size ratio. | |
void | setIterationRatio (double value) |
Set iteration to size ratio. | |
void | setMaximumPasses (int value) |
Set maximum passes (default 100). | |
int | maximumPasses () const |
Get maximum passes (default 100). | |
void | setMaximumRetries (int value) |
Set maximum retries (default 1). | |
int | maximumRetries () const |
Get maximum retries (default 1). | |
void | setAccumulate (int value) |
Set use of multiple solutions and solves 0 - do not reuse solves, do not accumulate integer solutions for local search 1 - do not reuse solves, accumulate integer solutions for local search 2 - reuse solves, do not accumulate integer solutions for local search 3 - reuse solves, accumulate integer solutions for local search. | |
int | accumulate () const |
Get accumulation option. | |
void | setFixOnReducedCosts (int value) |
Set whether to fix variables on known solution 0 - do not fix 1 - fix integers on reduced costs 2 - fix integers on reduced costs but only on entry. | |
int | fixOnReducedCosts () const |
Get reduced cost option. | |
Protected Attributes | |
double | startTime_ |
Start time. | |
double | maximumTime_ |
Maximum Cpu seconds. | |
double | fakeCutoff_ |
Fake cutoff value. | |
double | absoluteIncrement_ |
If positive carry on after solution expecting gain of at least this. | |
double | relativeIncrement_ |
If positive carry on after solution expecting gain of at least this times objective. | |
double | defaultRounding_ |
Default is round up if > this. | |
double | initialWeight_ |
Initial weight for true objective. | |
double | weightFactor_ |
Factor for decreasing weight. | |
double | artificialCost_ |
Threshold cost for using original cost - even on continuous. | |
double | iterationRatio_ |
If iterationRatio >0 use instead of maximumPasses_ test is iterations > ratio*(2*nrow+ncol). | |
int | maximumPasses_ |
Maximum number of passes. | |
int | maximumRetries_ |
Maximum number of retries if we find a solution. | |
int | accumulate_ |
Set use of multiple solutions and solves 0 - do not reuse solves, do not accumulate integer solutions for local search 1 - do not reuse solves, accumulate integer solutions for local search 2 - reuse solves, do not accumulate integer solutions for local search 3 - reuse solves, accumulate integer solutions for local search If we add 4 then use second form of problem (with extra rows and variables for general integers) If we do not accumulate solutions then no mini branch and bounds will be done reuse - refers to initial solve after adding in new "cut". | |
int | fixOnReducedCosts_ |
Set whether to fix variables on known solution 0 - do not fix 1 - fix integers on reduced costs 2 - fix integers on reduced costs but only on entry. | |
bool | roundExpensive_ |
If true round to expensive. | |
Private Member Functions | |
int | rounds (OsiSolverInterface *solver, double *solution, const double *objective, int numberIntegers, const int *integerVariable, char *pumpPrint, int passNumber, bool roundExpensive=false, double downValue=0.5, int *flip=0) |
Rounds solution - down if < downValue If roundExpensive then always to more expnsive. |
Definition at line 12 of file CbcHeuristicFPump.hpp.
CbcHeuristicFPump::CbcHeuristicFPump | ( | ) |
CbcHeuristicFPump::CbcHeuristicFPump | ( | CbcModel & | model, | |
double | downValue = 0.5 , |
|||
bool | roundExpensive = false | |||
) |
CbcHeuristicFPump::CbcHeuristicFPump | ( | const CbcHeuristicFPump & | ) |
CbcHeuristicFPump::~CbcHeuristicFPump | ( | ) |
CbcHeuristicFPump& CbcHeuristicFPump::operator= | ( | const CbcHeuristicFPump & | rhs | ) |
Assignment operator.
virtual CbcHeuristic* CbcHeuristicFPump::clone | ( | ) | const [virtual] |
virtual void CbcHeuristicFPump::generateCpp | ( | FILE * | fp | ) | [virtual] |
virtual void CbcHeuristicFPump::resetModel | ( | CbcModel * | model | ) | [virtual] |
virtual void CbcHeuristicFPump::setModel | ( | CbcModel * | model | ) | [virtual] |
virtual int CbcHeuristicFPump::solution | ( | double & | objectiveValue, | |
double * | newSolution | |||
) | [virtual] |
returns 0 if no solution, 1 if valid solution with better objective value than one passed in Sets solution values if good, sets objective value (only if good) This is called after cuts have been added - so can not add cuts.
It may make sense for user to call this outside Branch and Cut to get solution. Or normally is just at root node.
new meanings for when_ - on first try then set back to 1 11 - at end fix all integers at same bound throughout 12 - also fix all integers staying at same internal integral value throughout 13 - also fix all continuous variables staying at same bound throughout 14 - also fix all continuous variables staying at same internal value throughout 15 - as 13 but no internal integers
Implements CbcHeuristic.
void CbcHeuristicFPump::setMaximumTime | ( | double | value | ) |
Set maximum Time (default off) - also sets starttime to current.
double CbcHeuristicFPump::maximumTime | ( | ) | const [inline] |
Get maximum Time (default 0.0 == time limit off).
Definition at line 63 of file CbcHeuristicFPump.hpp.
References maximumTime_.
void CbcHeuristicFPump::setFakeCutoff | ( | double | value | ) | [inline] |
Set fake cutoff (default COIN_DBL_MAX == off).
Definition at line 66 of file CbcHeuristicFPump.hpp.
References fakeCutoff_.
double CbcHeuristicFPump::fakeCutoff | ( | ) | const [inline] |
Get fake cutoff (default 0.0 == off).
Definition at line 69 of file CbcHeuristicFPump.hpp.
References fakeCutoff_.
void CbcHeuristicFPump::setAbsoluteIncrement | ( | double | value | ) | [inline] |
Set absolute increment (default 0.0 == off).
Definition at line 72 of file CbcHeuristicFPump.hpp.
References absoluteIncrement_.
double CbcHeuristicFPump::absoluteIncrement | ( | ) | const [inline] |
Get absolute increment (default 0.0 == off).
Definition at line 75 of file CbcHeuristicFPump.hpp.
References absoluteIncrement_.
void CbcHeuristicFPump::setRelativeIncrement | ( | double | value | ) | [inline] |
Set relative increment (default 0.0 == off).
Definition at line 78 of file CbcHeuristicFPump.hpp.
References relativeIncrement_.
double CbcHeuristicFPump::relativeIncrement | ( | ) | const [inline] |
Get relative increment (default 0.0 == off).
Definition at line 81 of file CbcHeuristicFPump.hpp.
References relativeIncrement_.
void CbcHeuristicFPump::setDefaultRounding | ( | double | value | ) | [inline] |
Set default rounding (default 0.5).
Definition at line 84 of file CbcHeuristicFPump.hpp.
References defaultRounding_.
double CbcHeuristicFPump::defaultRounding | ( | ) | const [inline] |
Get default rounding (default 0.5).
Definition at line 87 of file CbcHeuristicFPump.hpp.
References defaultRounding_.
void CbcHeuristicFPump::setInitialWeight | ( | double | value | ) | [inline] |
Set initial weight (default 0.0 == off).
Definition at line 90 of file CbcHeuristicFPump.hpp.
References initialWeight_.
double CbcHeuristicFPump::initialWeight | ( | ) | const [inline] |
Get initial weight (default 0.0 == off).
Definition at line 93 of file CbcHeuristicFPump.hpp.
References initialWeight_.
void CbcHeuristicFPump::setWeightFactor | ( | double | value | ) | [inline] |
Set weight factor (default 0.1).
Definition at line 96 of file CbcHeuristicFPump.hpp.
References weightFactor_.
double CbcHeuristicFPump::weightFactor | ( | ) | const [inline] |
Get weight factor (default 0.1).
Definition at line 99 of file CbcHeuristicFPump.hpp.
References weightFactor_.
void CbcHeuristicFPump::setArtificialCost | ( | double | value | ) | [inline] |
Set threshold cost for using original cost - even on continuous (default infinity).
Definition at line 102 of file CbcHeuristicFPump.hpp.
References artificialCost_.
double CbcHeuristicFPump::artificialCost | ( | ) | const [inline] |
Get threshold cost for using original cost - even on continuous (default infinity).
Definition at line 105 of file CbcHeuristicFPump.hpp.
References artificialCost_.
double CbcHeuristicFPump::iterationRatio | ( | ) | const [inline] |
Get iteration to size ratio.
Definition at line 108 of file CbcHeuristicFPump.hpp.
References iterationRatio_.
void CbcHeuristicFPump::setIterationRatio | ( | double | value | ) | [inline] |
Set iteration to size ratio.
Definition at line 111 of file CbcHeuristicFPump.hpp.
References iterationRatio_.
void CbcHeuristicFPump::setMaximumPasses | ( | int | value | ) | [inline] |
Set maximum passes (default 100).
Definition at line 114 of file CbcHeuristicFPump.hpp.
References maximumPasses_.
int CbcHeuristicFPump::maximumPasses | ( | ) | const [inline] |
Get maximum passes (default 100).
Definition at line 117 of file CbcHeuristicFPump.hpp.
References maximumPasses_.
void CbcHeuristicFPump::setMaximumRetries | ( | int | value | ) | [inline] |
Set maximum retries (default 1).
Definition at line 120 of file CbcHeuristicFPump.hpp.
References maximumRetries_.
int CbcHeuristicFPump::maximumRetries | ( | ) | const [inline] |
Get maximum retries (default 1).
Definition at line 123 of file CbcHeuristicFPump.hpp.
References maximumRetries_.
void CbcHeuristicFPump::setAccumulate | ( | int | value | ) | [inline] |
Set use of multiple solutions and solves 0 - do not reuse solves, do not accumulate integer solutions for local search 1 - do not reuse solves, accumulate integer solutions for local search 2 - reuse solves, do not accumulate integer solutions for local search 3 - reuse solves, accumulate integer solutions for local search.
Definition at line 131 of file CbcHeuristicFPump.hpp.
References accumulate_.
int CbcHeuristicFPump::accumulate | ( | ) | const [inline] |
Get accumulation option.
Definition at line 134 of file CbcHeuristicFPump.hpp.
References accumulate_.
void CbcHeuristicFPump::setFixOnReducedCosts | ( | int | value | ) | [inline] |
Set whether to fix variables on known solution 0 - do not fix 1 - fix integers on reduced costs 2 - fix integers on reduced costs but only on entry.
Definition at line 141 of file CbcHeuristicFPump.hpp.
References fixOnReducedCosts_.
int CbcHeuristicFPump::fixOnReducedCosts | ( | ) | const [inline] |
Get reduced cost option.
Definition at line 144 of file CbcHeuristicFPump.hpp.
References fixOnReducedCosts_.
int CbcHeuristicFPump::rounds | ( | OsiSolverInterface * | solver, | |
double * | solution, | |||
const double * | objective, | |||
int | numberIntegers, | |||
const int * | integerVariable, | |||
char * | pumpPrint, | |||
int | passNumber, | |||
bool | roundExpensive = false , |
|||
double | downValue = 0.5 , |
|||
int * | flip = 0 | |||
) | [private] |
Rounds solution - down if < downValue If roundExpensive then always to more expnsive.
returns 0 if current is solution
double CbcHeuristicFPump::startTime_ [protected] |
double CbcHeuristicFPump::maximumTime_ [protected] |
Maximum Cpu seconds.
Definition at line 152 of file CbcHeuristicFPump.hpp.
Referenced by maximumTime().
double CbcHeuristicFPump::fakeCutoff_ [protected] |
Fake cutoff value.
If set then better of real cutoff and this used to add a constraint
Definition at line 156 of file CbcHeuristicFPump.hpp.
Referenced by fakeCutoff(), and setFakeCutoff().
double CbcHeuristicFPump::absoluteIncrement_ [protected] |
If positive carry on after solution expecting gain of at least this.
Definition at line 158 of file CbcHeuristicFPump.hpp.
Referenced by absoluteIncrement(), and setAbsoluteIncrement().
double CbcHeuristicFPump::relativeIncrement_ [protected] |
If positive carry on after solution expecting gain of at least this times objective.
Definition at line 160 of file CbcHeuristicFPump.hpp.
Referenced by relativeIncrement(), and setRelativeIncrement().
double CbcHeuristicFPump::defaultRounding_ [protected] |
Default is round up if > this.
Definition at line 162 of file CbcHeuristicFPump.hpp.
Referenced by defaultRounding(), and setDefaultRounding().
double CbcHeuristicFPump::initialWeight_ [protected] |
Initial weight for true objective.
Definition at line 164 of file CbcHeuristicFPump.hpp.
Referenced by initialWeight(), and setInitialWeight().
double CbcHeuristicFPump::weightFactor_ [protected] |
Factor for decreasing weight.
Definition at line 166 of file CbcHeuristicFPump.hpp.
Referenced by setWeightFactor(), and weightFactor().
double CbcHeuristicFPump::artificialCost_ [protected] |
Threshold cost for using original cost - even on continuous.
Definition at line 168 of file CbcHeuristicFPump.hpp.
Referenced by artificialCost(), and setArtificialCost().
double CbcHeuristicFPump::iterationRatio_ [protected] |
If iterationRatio >0 use instead of maximumPasses_ test is iterations > ratio*(2*nrow+ncol).
Definition at line 171 of file CbcHeuristicFPump.hpp.
Referenced by iterationRatio(), and setIterationRatio().
int CbcHeuristicFPump::maximumPasses_ [protected] |
Maximum number of passes.
Definition at line 173 of file CbcHeuristicFPump.hpp.
Referenced by maximumPasses(), and setMaximumPasses().
int CbcHeuristicFPump::maximumRetries_ [protected] |
Maximum number of retries if we find a solution.
If negative we clean out used array
Definition at line 177 of file CbcHeuristicFPump.hpp.
Referenced by maximumRetries(), and setMaximumRetries().
int CbcHeuristicFPump::accumulate_ [protected] |
Set use of multiple solutions and solves 0 - do not reuse solves, do not accumulate integer solutions for local search 1 - do not reuse solves, accumulate integer solutions for local search 2 - reuse solves, do not accumulate integer solutions for local search 3 - reuse solves, accumulate integer solutions for local search If we add 4 then use second form of problem (with extra rows and variables for general integers) If we do not accumulate solutions then no mini branch and bounds will be done reuse - refers to initial solve after adding in new "cut".
Definition at line 187 of file CbcHeuristicFPump.hpp.
Referenced by accumulate(), and setAccumulate().
int CbcHeuristicFPump::fixOnReducedCosts_ [protected] |
Set whether to fix variables on known solution 0 - do not fix 1 - fix integers on reduced costs 2 - fix integers on reduced costs but only on entry.
Definition at line 193 of file CbcHeuristicFPump.hpp.
Referenced by fixOnReducedCosts(), and setFixOnReducedCosts().
bool CbcHeuristicFPump::roundExpensive_ [protected] |