MAiNGO
maingo::lbp::DagObj Struct Reference

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< MCresultRelaxation
 
std::vector< MCMcPoint
 
std::vector< MCMCarray
 
bool intervals_already_computed
 
std::vector< IintervalArray
 
std::vector< IconstraintIntervals
 
std::vector< IcurrentIntervals
 
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< vMCvMcPoint
 
std::vector< vMCvMCarray
 
mc::FFSubgraph subgraphNonlinear
 
mc::FFSubgraph subgraphLinear
 
std::vector< mc::FFVar > functionsNonlinear
 
std::vector< mc::FFVar > functionsLinear
 
std::vector< vMCresultRelaxationVMCNonlinear
 
std::vector< MCresultRelaxationNonlinear
 
std::vector< MCresultRelaxationLinear
 
std::vector< unsigned > chosenLinPoints
 
std::vector< bool > objRowFilled
 
std::vector< Constraint > * _constraintProperties
 

Detailed Description

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++.

Constructor & Destructor Documentation

◆ DagObj()

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.

Member Function Documentation

◆ initialize_vMcCormick()

void maingo::lbp::DagObj::initialize_vMcCormick ( )

Function for additional stuff neeeded when using vector McCormick.

Member Data Documentation

◆ _constraintProperties

std::vector<Constraint>* maingo::lbp::DagObj::_constraintProperties

pointer to constraint properties determined by MAiNGO

◆ chosenLinPoints

std::vector<unsigned> maingo::lbp::DagObj::chosenLinPoints

vector holding indices of linearization points chosen from simplexPoints

◆ constraintIntervals

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)

◆ currentIntervals

std::vector<I> maingo::lbp::DagObj::currentIntervals

vector holding the variable intervals

◆ DAG

mc::FFGraph maingo::lbp::DagObj::DAG

the actual DAG

◆ functions

std::vector<mc::FFVar> maingo::lbp::DagObj::functions

vector of all functions in the DAG

◆ functionsEq

std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsEq

vector holding functions for the equalities

◆ functionsEqRelaxationOnly

std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsEqRelaxationOnly

vector holding functions for the relaxation only equalities

◆ functionsIneq

std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsIneq

vector holding functions for the inequalities

◆ functionsIneqRelaxationOnly

std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsIneqRelaxationOnly

vector holding functions for the relaxation only inequalities

◆ functionsIneqSquash

std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsIneqSquash

vector holding functions for the squash inequalities

◆ functionsLinear

std::vector<mc::FFVar> maingo::lbp::DagObj::functionsLinear

vector of all linear functions in the DAG

◆ functionsNonlinear

std::vector<mc::FFVar> maingo::lbp::DagObj::functionsNonlinear

vector of all nonlinear functions in the DAG

◆ functionsObj

std::vector<std::vector<mc::FFVar> > maingo::lbp::DagObj::functionsObj

vector holding function(s) for the objective

◆ infinityMC

MC maingo::lbp::DagObj::infinityMC

dummy MC object holding all zeros and infinity

◆ intervalArray

std::vector<I> maingo::lbp::DagObj::intervalArray

dummy interval vector for faster evaluation

◆ intervals_already_computed

bool maingo::lbp::DagObj::intervals_already_computed

auxiliary bool to avoid multiple evaluation when more than one linearization point is computed

◆ MCarray

std::vector<MC> maingo::lbp::DagObj::MCarray

dummy vector of MC objects for faster evaluation

◆ McPoint

std::vector<MC> maingo::lbp::DagObj::McPoint

McCormick Point at the reference point given by the linearization heuristic used

◆ objRowFilled

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

◆ resultRelaxation

std::vector<MC> maingo::lbp::DagObj::resultRelaxation

vector holding resulting McCormick relaxations of possibly not all functions at some linearization point

◆ resultRelaxationLinear

std::vector<MC> maingo::lbp::DagObj::resultRelaxationLinear

vector holding resulting McCormick relaxations of all linear functions at some linearization point

◆ resultRelaxationNonlinear

std::vector<MC> maingo::lbp::DagObj::resultRelaxationNonlinear

vector holding resulting McCormick relaxations of all linear functions at some linearization point

◆ resultRelaxationVMCNonlinear

std::vector<vMC> maingo::lbp::DagObj::resultRelaxationVMCNonlinear

vector holding resulting vector McCormick relaxations of all nonlinear functions at some linearization point

◆ resultVars

std::vector<mc::FFVar> maingo::lbp::DagObj::resultVars

vector holding evaluated FFVar Objects to not lose pointers

◆ scaledPoints

std::vector<std::vector<double> > maingo::lbp::DagObj::scaledPoints

vector used to hold points scaled from [-1,1] to [lowerBound,upperBound]

◆ simplexPoints

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

◆ subgraph

mc::FFSubgraph maingo::lbp::DagObj::subgraph

subgraph holding the list of operations in the DAG

◆ subgraphEq

std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphEq

subgraph holding the list of operations of the equalities

◆ subgraphEqRelaxationOnly

std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphEqRelaxationOnly

subgraph holding the list of operations of the relaxation only equalities

◆ subgraphIneq

std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphIneq

subgraph holding the list of operations of the inequalities

◆ subgraphIneqRelaxationOnly

std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphIneqRelaxationOnly

subgraph holding the list of operations of the relaxation only inequalities

◆ subgraphIneqSquash

std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphIneqSquash

subgraph holding the list of operations of the squash inequalities

◆ subgraphLinear

mc::FFSubgraph maingo::lbp::DagObj::subgraphLinear

subgraph holding the list of operations of linear functions in the DAG

◆ subgraphNonlinear

mc::FFSubgraph maingo::lbp::DagObj::subgraphNonlinear

subgraph holding the list of operations of nonlinear functions in the DAG

◆ subgraphObj

std::vector<mc::FFSubgraph> maingo::lbp::DagObj::subgraphObj

subgraph holding the list of operations of the objective function(s)

◆ validIntervalLowerBound

double maingo::lbp::DagObj::validIntervalLowerBound

variable holding a valid interval lower bound of the objective function

◆ vars

std::vector<mc::FFVar> maingo::lbp::DagObj::vars

DAG variables

◆ vMCarray

std::vector<vMC> maingo::lbp::DagObj::vMCarray

dummy vector of vMC objects for faster evaluation

◆ vMcPoint

std::vector<vMC> maingo::lbp::DagObj::vMcPoint

vector McCormick Point at the reference point given by the linearization heuristic used


The documentation for this struct was generated from the following files: