24 typedef Engine* EnginePtr;
25 typedef LinearFunction* LinearFunctionPtr;
26 typedef LinearHandler* LinHandlerPtr;
27 typedef QGHandler* QGHandlerPtr;
75 const static std::string
me_;
126 double getSolGap_(
double f_nlp,
double f_feas);
Declare the class FeasibilityPump derived from base class Heuristic.
Declare important 'types' used in Minotaur.
The Constraint class is used to manage a constraint.
Definition: Constraint.h:61
Definition: Environment.h:28
Feasibility Pump for MINLPs.
Definition: FeasibilityPump.h:41
Linear Feasibility Pump for MINLPs.
Definition: LinFeasPump.h:45
RelaxationPtr r_
Relaxation Pointer.
Definition: LinFeasPump.h:100
~LinFeasPump()
Default destructor.
Definition: LinFeasPump.cpp:71
QGHandlerPtr qh_
QG Handler.
Definition: LinFeasPump.h:97
void writeStats(std::ostream &out) const
Write statistics to the logger.
Definition: LinFeasPump.cpp:357
bool shouldFP_()
Function to decide whether to use Linear Feasibility Pump.
Definition: LinFeasPump.cpp:306
static const std::string me_
Message name for the heuristic.
Definition: LinFeasPump.h:75
LinFeasPump(EnvPtr env, ProblemPtr p, EnginePtr e1, EnginePtr e2)
Default constructor.
Definition: LinFeasPump.cpp:46
LinearFunctionPtr olfClone_
clone of linear objective function
Definition: LinFeasPump.h:94
LinHandlerPtr lh_
Linear Handler pointer.
Definition: LinFeasPump.h:81
LinFeasStats * statsLFP_
Statistics.
Definition: LinFeasPump.h:103
EnginePtr lpE_
LP Engine to be used to solving linear relaxation.
Definition: LinFeasPump.h:84
void implementFP_(const double *x, SolutionPoolPtr s_pool)
Fucntion to implement the linear feasibility pump.
Definition: LinFeasPump.cpp:123
void solve(NodePtr node, RelaxationPtr rel, SolutionPoolPtr s_pool)
Call to the heuristic.
Definition: LinFeasPump.cpp:341
bool prepareLP_(SolutionPool *sp)
A function to prepare the linear relaxation.
Definition: LinFeasPump.cpp:241
double getSolGap_(double f_nlp, double f_feas)
Calculate the gap between the NLP relaxation solution and integer feasible solution.
Definition: LinFeasPump.cpp:235
void constructObj_(ProblemPtr prob, ConstSolutionPtr sol)
Function to construct/update the objective function.
Definition: LinFeasPump.cpp:80
void separatingCut_(double f_nlp, SolutionPoolPtr s_pool)
This function makes a cut by including the objective as constraint.
Definition: LinFeasPump.cpp:275
VariablePtr objVar_
Definition: LinFeasPump.h:91
double * gradientObj_
gradient of the objective function
Definition: LinFeasPump.h:78
ConstraintPtr objConstraint_
objective improvement constraint pointer
Definition: LinFeasPump.h:87
The base class linear function is of the form c'x.
Definition: LinearFunction.h:31
Definition: LinearHandler.h:60
Handler for convex constraints, based on quesada-grossmann algorithm.
Definition: QGHandler.h:45
Definition: Relaxation.h:53
Definition: SolutionPool.h:28
Definition: Solution.h:30
Definition: Variable.h:31
Definition: ActiveNodeStore.h:20
unsigned int UInt
Unsigned integer.
Definition: Types.h:30
statistics for Linear Feasibility Pump
Definition: LinFeasPump.h:30
UInt numLPs
Objective value for best feasible sol.
Definition: LinFeasPump.h:32