![]() |
MAiNGO
|
Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver. More...
#include <lbpDagObj.h>
Public Member Functions | |
DagObj (mc::FFGraph &DAG, const std::vector< mc::FFVar > &DAGvars, const std::vector< mc::FFVar > &DAGfunctions, const std::vector< babBase::OptimizationVariable > &variables, const unsigned nineq, const unsigned neq, const unsigned nineqRelaxationOnly, const unsigned neqRelaxationOnly, const unsigned nineqSquash, Settings *settings, std::vector< Constraint > *constraintPropertiesIn) | |
Constructor. More... | |
void | initialize_vMcCormick () |
Function for additional stuff neeeded when using vector McCormick. More... | |
Public Attributes | |
mc::FFGraph | DAG |
std::vector< mc::FFVar > | vars |
mc::FFSubgraph | subgraph |
std::vector< mc::FFVar > | functions |
std::vector< mc::FFVar > | resultVars |
std::vector< MC > | resultRelaxation |
std::vector< MC > | McPoint |
std::vector< MC > | MCarray |
bool | intervals_already_computed |
std::vector< I > | intervalArray |
std::vector< I > | constraintIntervals |
std::vector< I > | currentIntervals |
std::vector< std::vector< mc::FFVar > > | functionsObj |
std::vector< std::vector< mc::FFVar > > | functionsIneq |
std::vector< std::vector< mc::FFVar > > | functionsEq |
std::vector< std::vector< mc::FFVar > > | functionsIneqRelaxationOnly |
std::vector< std::vector< mc::FFVar > > | functionsEqRelaxationOnly |
std::vector< std::vector< mc::FFVar > > | functionsIneqSquash |
std::vector< mc::FFSubgraph > | subgraphObj |
std::vector< mc::FFSubgraph > | subgraphIneq |
std::vector< mc::FFSubgraph > | subgraphEq |
std::vector< mc::FFSubgraph > | subgraphIneqRelaxationOnly |
std::vector< mc::FFSubgraph > | subgraphEqRelaxationOnly |
std::vector< mc::FFSubgraph > | subgraphIneqSquash |
MC | infinityMC |
double | validIntervalLowerBound |
std::vector< std::vector< double > > | simplexPoints |
std::vector< std::vector< double > > | scaledPoints |
std::vector< vMC > | vMcPoint |
std::vector< vMC > | vMCarray |
mc::FFSubgraph | subgraphNonlinear |
mc::FFSubgraph | subgraphLinear |
std::vector< mc::FFVar > | functionsNonlinear |
std::vector< mc::FFVar > | functionsLinear |
std::vector< vMC > | resultRelaxationVMCNonlinear |
std::vector< MC > | resultRelaxationNonlinear |
std::vector< MC > | resultRelaxationLinear |
std::vector< unsigned > | chosenLinPoints |
std::vector< bool > | objRowFilled |
std::vector< Constraint > * | _constraintProperties |
Struct for storing all needed Directed acyclic Graph objects for the upper bounding solver.
Contains all objects, copies and variables for the usage of the DAG. Further information on DAG can be found in ffunc.hpp of MC++.
maingo::lbp::DagObj::DagObj | ( | mc::FFGraph & | DAG, |
const std::vector< mc::FFVar > & | DAGvars, | ||
const std::vector< mc::FFVar > & | DAGfunctions, | ||
const std::vector< babBase::OptimizationVariable > & | variables, | ||
const unsigned | nineq, | ||
const unsigned | neq, | ||
const unsigned | nineqRelaxationOnly, | ||
const unsigned | neqRelaxationOnly, | ||
const unsigned | nineqSquash, | ||
Settings * | settings, | ||
std::vector< Constraint > * | constraintPropertiesIn | ||
) |
Constructor.
void maingo::lbp::DagObj::initialize_vMcCormick | ( | ) |
Function for additional stuff neeeded when using vector McCormick.
std::vector<Constraint>* maingo::lbp::DagObj::_constraintProperties |
pointer to constraint properties determined by MAiNGO
std::vector<unsigned> maingo::lbp::DagObj::chosenLinPoints |
vector holding indices of linearization points chosen from simplexPoints
std::vector<I> maingo::lbp::DagObj::constraintIntervals |
vector holding the bounding intervals for objective (-1e51, UB), (rel only) ineq constraints (-1e51, 0), (rel only) eq constraints (0, 0)
std::vector<I> maingo::lbp::DagObj::currentIntervals |
vector holding the variable intervals
mc::FFGraph maingo::lbp::DagObj::DAG |
the actual DAG
std::vector<mc::FFVar> maingo::lbp::DagObj::functions |
vector of all functions in the DAG
std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsEq |
vector holding functions for the equalities
std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsEqRelaxationOnly |
vector holding functions for the relaxation only equalities
std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsIneq |
vector holding functions for the inequalities
std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsIneqRelaxationOnly |
vector holding functions for the relaxation only inequalities
std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsIneqSquash |
vector holding functions for the squash inequalities
std::vector<mc::FFVar> maingo::lbp::DagObj::functionsLinear |
vector of all linear functions in the DAG
std::vector<mc::FFVar> maingo::lbp::DagObj::functionsNonlinear |
vector of all nonlinear functions in the DAG
std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsObj |
vector holding function(s) for the objective
MC maingo::lbp::DagObj::infinityMC |
dummy MC object holding all zeros and infinity
std::vector<I> maingo::lbp::DagObj::intervalArray |
dummy interval vector for faster evaluation
bool maingo::lbp::DagObj::intervals_already_computed |
auxiliary bool to avoid multiple evaluation when more than one linearization point is computed
std::vector<MC> maingo::lbp::DagObj::MCarray |
dummy vector of MC objects for faster evaluation
std::vector<MC> maingo::lbp::DagObj::McPoint |
McCormick Point at the reference point given by the linearization heuristic used
std::vector<bool> maingo::lbp::DagObj::objRowFilled |
vector holding bools whether a LP row of an objective has been filled. This is needed for proper handling in OBBT
std::vector<MC> maingo::lbp::DagObj::resultRelaxation |
vector holding resulting McCormick relaxations of possibly not all functions at some linearization point
std::vector<MC> maingo::lbp::DagObj::resultRelaxationLinear |
vector holding resulting McCormick relaxations of all linear functions at some linearization point
std::vector<MC> maingo::lbp::DagObj::resultRelaxationNonlinear |
vector holding resulting McCormick relaxations of all linear functions at some linearization point
std::vector<vMC> maingo::lbp::DagObj::resultRelaxationVMCNonlinear |
vector holding resulting vector McCormick relaxations of all nonlinear functions at some linearization point
std::vector<mc::FFVar> maingo::lbp::DagObj::resultVars |
vector holding evaluated FFVar Objects to not lose pointers
std::vector<std::vector<double> > maingo::lbp::DagObj::scaledPoints |
vector used to hold points scaled from [-1,1] to [lowerBound,upperBound]
std::vector<std::vector<double> > maingo::lbp::DagObj::simplexPoints |
vector holding n+1 simplex points normalized to [-1,1] + the first point is always the mid point 0; the points are row-wise for later vMcCormick usage
mc::FFSubgraph maingo::lbp::DagObj::subgraph |
subgraph holding the list of operations in the DAG
std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphEq |
subgraph holding the list of operations of the equalities
std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphEqRelaxationOnly |
subgraph holding the list of operations of the relaxation only equalities
std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphIneq |
subgraph holding the list of operations of the inequalities
std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphIneqRelaxationOnly |
subgraph holding the list of operations of the relaxation only inequalities
std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphIneqSquash |
subgraph holding the list of operations of the squash inequalities
mc::FFSubgraph maingo::lbp::DagObj::subgraphLinear |
subgraph holding the list of operations of linear functions in the DAG
mc::FFSubgraph maingo::lbp::DagObj::subgraphNonlinear |
subgraph holding the list of operations of nonlinear functions in the DAG
std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphObj |
subgraph holding the list of operations of the objective function(s)
double maingo::lbp::DagObj::validIntervalLowerBound |
variable holding a valid interval lower bound of the objective function
std::vector<mc::FFVar> maingo::lbp::DagObj::vars |
DAG variables
std::vector<vMC> maingo::lbp::DagObj::vMCarray |
dummy vector of vMC objects for faster evaluation
std::vector<vMC> maingo::lbp::DagObj::vMcPoint |
vector McCormick Point at the reference point given by the linearization heuristic used