![]() |
MAiNGO
|
namespace holding all essentials of the lower bounding solver More...
Classes | |
struct | DagObj |
Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver. More... | |
class | LbpClp |
Wrapper for handling the lower bounding problems by interfacing CLP. More... | |
class | LbpCplex |
Wrapper for handling the lower bounding problems by interfacing CPLEX. More... | |
struct | LbpDualInfo |
Container for information from the LBP that is needed in DBBT and probing, used for communicating the results via bab. More... | |
class | LbpInterval |
Wrapper for handling the lower bounding problems by using interval arithmetics. We currently do a bit too much work, if the subgradient interval heuristic is not used, since we additionally compute the McCormick relaxations. More... | |
class | LowerBoundingSolver |
Wrapper for handling the lower bounding problems as well as optimization-based bounds tightening (OBBT) More... | |
Enumerations | |
enum | LINEARIZATION_RETCODE { LINEARIZATION_INFEASIBLE = 0, LINEARIZATION_OPTIMAL, LINEARIZATION_UNKNOWN } |
Enum for representing the return codes returned by the different linearization techniques. More... | |
enum | LP_RETCODE { LP_INFEASIBLE = 0, LP_OPTIMAL, LP_UNKNOWN } |
Enum for representing the return codes returned when a linear program is solved. More... | |
enum | LBP_SOLVER { SOLVER_MAiNGO = 0, SOLVER_INTERVAL = 1, SOLVER_CPLEX = 2, SOLVER_CLP = 3 } |
Enum for selecting the STRATegy so be used for solving the lower bounding problems. More... | |
enum | OBBT { OBBT_FEAS = 0, OBBT_FEASOPT } |
Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility or also optimality. More... | |
enum | LINP { LINP_MID = 0, LINP_INCUMBENT, LINP_KELLEY, LINP_SIMPLEX, LINP_RANDOM, LINP_KELLEY_SIMPLEX } |
Enum for selecting the Linearization Points to be used in constructing affine relaxations. More... | |
Functions | |
std::shared_ptr< LowerBoundingSolver > | make_lbp_solver (mc::FFGraph &DAG, const std::vector< mc::FFVar > &DAGvars, const std::vector< mc::FFVar > &DAGfunctions, const std::vector< babBase::OptimizationVariable > &variables, const unsigned nineqIn, const unsigned neqIn, const unsigned nineqRelaxationOnlyIn, const unsigned neqRelaxationOnlyIn, const unsigned nineqSquashIn, Settings *settingsIn, Logger *loggerIn, std::vector< Constraint > *constraintPropertiesIn) |
Factory function for initializing different lower bounding solver wrappers. More... | |
namespace holding all essentials of the lower bounding solver
Enum for selecting the STRATegy so be used for solving the lower bounding problems.
Enumerator | |
---|---|
SOLVER_MAiNGO | (=0): MAiNGO intern lower bounding solver consisting of linearizing the objective function at only 1 point and minimizing the linearization over box constraints |
SOLVER_INTERVAL | (=1): solution of lower bounding problems using only interval based relaxations |
SOLVER_CPLEX | (=2): solution of lower bounding linear programs using CPLEX |
SOLVER_CLP | (=3): solution of lower bounding linear programs using CLP |
Enum for representing the return codes returned by the different linearization techniques.
enum maingo::lbp::LINP |
Enum for selecting the Linearization Points to be used in constructing affine relaxations.
enum maingo::lbp::OBBT |
Enum for communicating whether Optimization-Based Bound Tightening should consider only feasibility or also optimality.
std::shared_ptr< LowerBoundingSolver > maingo::lbp::make_lbp_solver | ( | mc::FFGraph & | DAG, |
const std::vector< mc::FFVar > & | DAGvars, | ||
const std::vector< mc::FFVar > & | DAGfunctions, | ||
const std::vector< babBase::OptimizationVariable > & | variables, | ||
const unsigned | nineqIn, | ||
const unsigned | neqIn, | ||
const unsigned | nineqRelaxationOnlyIn, | ||
const unsigned | neqRelaxationOnlyIn, | ||
const unsigned | nineqSquashIn, | ||
Settings * | settingsIn, | ||
Logger * | loggerIn, | ||
std::vector< Constraint > * | constraintPropertiesIn | ||
) |
Factory function for initializing different lower bounding solver wrappers.
[in] | DAG | is the directed acyclic graph constructed in MAiNGO.cpp needed to construct an own DAG for the lower bounding solver |
[in] | DAGvars | are the variables corresponding to the DAG |
[in] | DAGfunctions | are the functions corresponding to the DAG |
[in] | variables | is a vector containing the initial optimization variables defined in problem.h |
[in] | nineqIn | is the number of inequality constraints |
[in] | neqIn | is the number of equality |
[in] | nineqRelaxationOnlyIn | is the number of inequality for use only in the relaxed problem |
[in] | neqRelaxationOnlyIn | is the number of equality constraints for use only in the relaxed problem |
[in] | nineqSquashIn | is the number of squash inequality constraints which are to be used only if the squash node has been used |
[in] | settingsIn | is a pointer to the MAiNGO settings |
[in] | loggerIn | is a pointer to the MAiNGO logger object |
[in] | constraintPropertiesIn | is a pointer to the constraint properties determined by MAiNGO |