|
| LinFeasPump (EnvPtr env, ProblemPtr p, EnginePtr e1, EnginePtr e2) |
| Default constructor. More...
|
|
| ~LinFeasPump () |
| Default destructor.
|
|
void | solve (NodePtr node, RelaxationPtr rel, SolutionPoolPtr s_pool) |
| Call to the heuristic. More...
|
|
void | writeStats (std::ostream &out) const |
| Write statistics to the logger. More...
|
|
| FeasibilityPump (EnvPtr env, ProblemPtr p, EnginePtr e) |
| default constructor
|
|
| FeasibilityPump (EnvPtr env, ProblemPtr p, EnginePtr nlpe, EnginePtr e) |
| constructor for derived class
|
|
virtual | ~FeasibilityPump () |
| default destructor
|
|
void | solve (NodePtr node, RelaxationPtr rel, SolutionPoolPtr s_pool) |
| call to the heuristic More...
|
|
void | writeStats (std::ostream &out) const |
| write statistic to the logger More...
|
|
| Heuristic () |
| Default constructor.
|
|
virtual | ~Heuristic () |
| Destroy.
|
|
virtual void | solve (NodePtr node, RelaxationPtr rel, SolutionPoolPtr s_pool)=0 |
| Use this heuristic. More...
|
|
virtual void | solveNode (ConstSolutionPtr, NodePtr, RelaxationPtr, SolutionPoolPtr) |
| Use this heuristic. More...
|
|
virtual void | writeStats (std::ostream &out) const =0 |
| Write statistics to the logger. More...
|
|
|
void | constructObj_ (ProblemPtr prob, ConstSolutionPtr sol) |
| Function to construct/update the objective function. More...
|
|
void | implementFP_ (const double *x, SolutionPoolPtr s_pool) |
| Fucntion to implement the linear feasibility pump. More...
|
|
double | getSolGap_ (double f_nlp, double f_feas) |
| Calculate the gap between the NLP relaxation solution and integer feasible solution. More...
|
|
bool | prepareLP_ (SolutionPool *sp) |
| A function to prepare the linear relaxation. More...
|
|
void | separatingCut_ (double f_nlp, SolutionPoolPtr s_pool) |
| This function makes a cut by including the objective as constraint. More...
|
|
bool | shouldFP_ () |
| Function to decide whether to use Linear Feasibility Pump. More...
|
|
virtual void | constructObj_ (ProblemPtr prob, ConstSolutionPtr sol) |
| Function to construct/update the objective function. More...
|
|
void | convertSol_ (SolutionPoolPtr s_pool, ConstSolutionPtr sol) |
| Function to convert a solution of the cloned problem to that of an original problem. More...
|
|
bool | cycle_ (double find_value) |
| A search function for detection of cycling. More...
|
|
double | hash_ () |
| A function to hash the solutions. More...
|
|
virtual void | implementFP_ (const double *x, SolutionPoolPtr s_pool) |
| Function to implement the Feasibility Pump method. More...
|
|
bool | isFrac_ (const double *x) |
| Function to check the integrality of a variable. More...
|
|
void | perturb_ (double hash_val, UInt n_to_flip) |
| A function to perturb the rounded solution in case of cycling. More...
|
|
void | restoreBounds_ (double *LB_copy, double *UB_copy, UInt vars) |
| A function to restore the upper and lower bounds of the problem. More...
|
|
void | saveBounds_ (double *LB_copy, double *UB_copy, UInt vars) |
| A function to save the upper and lower bounds of the problem. More...
|
|
VarVector | selectToFlip_ (UInt n_to_flip) |
| A funtion to randomly select "n" binary/integer variable to be flipped. More...
|
|
virtual bool | shouldFP_ () |
| Function to decide whether to use Feasibility Pump. More...
|
|
|
double * | gradientObj_ |
| gradient of the objective function
|
|
LinHandlerPtr | lh_ |
| Linear Handler pointer.
|
|
EnginePtr | lpE_ |
| LP Engine to be used to solving linear relaxation.
|
|
ConstraintPtr | objConstraint_ |
| objective improvement constraint pointer
|
|
VariablePtr | objVar_ |
|
LinearFunctionPtr | olfClone_ |
| clone of linear objective function
|
|
QGHandlerPtr | qh_ |
| QG Handler.
|
|
RelaxationPtr | r_ |
| Relaxation Pointer.
|
|
LinFeasStats * | statsLFP_ |
| Statistics.
|
|
VarVector | bins_ |
| Binary/integer variables present in the problem.
|
|
EnginePtr | e_ |
| Pointer to the engine to be used to solve the problem.
|
|
EnvPtr | env_ |
| Pointer to the environment.
|
|
DoubleVector | hashVal_ |
| Vector for hash value of solutions.
|
|
double | intTol_ |
| Tolerance for a number to be considered as an integer.
|
|
LoggerPtr | logger_ |
| Pointer to the logger.
|
|
UInt | nToFlip_ |
| Number of variables to be flipped if cycling is detected.
|
|
ProblemPtr | p_ |
| Pointer to the problem being solved.
|
|
DoubleVector | random_ |
| A random vector for inner product with the solution.
|
|
DoubleVector | roundedSol_ |
| Vector of rounded solution.
|
|
FeasPumpStats * | stats_ |
| Statistics for the Feasibility Pump heuristic.
|
|
Timer * | timer_ |
| Timer of the heuristic.
|
|
Linear Feasibility Pump for MINLPs.
A Linear Feasibility Pump heuristic used to find solutions for Mixed Integer NLPs by solving a linear relaxation of NLP using a LP engine. An NLP is solved after every "n" iterations and solution from NLP solve is used to construct a LP relaxation. This class is derived from the class FeasibilityPump.