![]() |
MAiNGO
|
namespace holding all essentials of MAiNGO More...
Namespaces | |
bab | |
namespace holding everything related to the actual branch-and-bound algorithm | |
lbp | |
namespace holding all essentials of the lower bounding solver | |
ubp | |
namespace holding all essentials of the upper bounding solvers | |
Classes | |
class | AleModel |
This class provides the interface for a program composed of ALE expressions. More... | |
struct | Constraint |
Struct for storing information about constraints. More... | |
struct | ConstraintContainer |
Containter for constraint evaluation. More... | |
struct | EvaluationContainer |
Struct for storing the values returned by model evaluation at the given point "var". More... | |
class | Logger |
This class contains all logging and output information. More... | |
class | MAiNGO |
This class is the MAiNGO solver holding the B&B tree, upper bounding solver, lower bounding solver and settings. More... | |
class | MaingoEvaluator |
Evaluates ALE expressions to Var. More... | |
class | MAiNGOException |
This class defines the exceptions thrown by MAiNGO. More... | |
class | MAiNGOmodel |
This class is the base class for models to be solved by MAiNGO. More... | |
class | MAiNGOmodelEpsCon |
This class is the base class for implementing bi-objective problems. More... | |
struct | modelFunction |
Struct for making work with the EvaluationContainer easier for the user and also to ensure backward compatibility. More... | |
struct | OutputVariable |
Struct for storing additional output variables. More... | |
struct | Program |
Container Class for ALE expressions comprising an optimization problem. More... | |
class | ProgramParser |
Parser specialization for parsing a maingo::Program. More... | |
struct | Settings |
Struct for storing settings for MAiNGO. More... | |
class | SymbolFinder |
Visitor for finding all symbols used in an expression. More... | |
class | VariableLister |
Serializes a given symbol and lists it into a vector. More... | |
Typedefs | |
using | Var = mc::FFVar |
using | OptimizationVariable = babBase::OptimizationVariable |
using | Bounds = babBase::Bounds |
using | VT = babBase::enums::VT |
Functions | |
double | get_cpu_time () |
Function for querying CPU time of the process. More... | |
double | get_wall_time () |
Function for querying wall clock time of the process. More... | |
bool | larger_or_equal_within_tolerance (const double LBD, const double UBD, Settings *mySettings) |
Function for checking if LBD is larger than UBD, or smaller by not more than the specified tolerance (absolute or relative) More... | |
std::string | print_version () |
Function printing the current version number. More... | |
template<unsigned IDim> | |
std::string | var_indexes (size_t *indexes) |
Function for serializing index sequences. More... | |
template<> | |
std::string | var_indexes< 1 > (size_t *indexes) |
Function for serializing index sequences. More... | |
template<unsigned IDim> | |
std::string | var_name (std::string base, size_t *indexes) |
Function for flattening indexed symbol names. More... | |
Variables | |
constexpr VT | VT_CONTINUOUS = babBase::enums::VT_CONTINUOUS |
constexpr VT | VT_BINARY = babBase::enums::VT_BINARY |
constexpr VT | VT_INTEGER = babBase::enums::VT_INTEGER |
namespace holding all essentials of MAiNGO
using maingo::Bounds = typedef babBase::Bounds |
Redefine for easier usage
using maingo::OptimizationVariable = typedef babBase::OptimizationVariable |
Redefine for easier usage
using maingo::Var = typedef mc::FFVar |
using maingo::VT = typedef babBase::enums::VT |
Redefine for easier usage
Enum for representing the constraint dependency. Note that the dependency is increasing meaning that linear is a subset of bilinear which is a subset of quadratic etc.
Enumerator | |
---|---|
DEP_UNKNOWN | unknown dependency type |
LINEAR | linear |
BILINEAR | bilinear |
QUADRATIC | quadratic |
POLYNOMIAL | polynomial |
RATIONAL | rational |
NONLINEAR | nonlinear |
Enum for representing the constraint type.
Enum for controlling the output and writing level of MAiNGO (i.e., where should the output be written to, outstream and/or log)
Enum for representing possible modeling language for parsing a MAiNGO model to.
Enumerator | |
---|---|
LANG_NONE | A different parsing language is not set. |
AMPL | AMPL. |
ALE | ALE. |
BARON | BARON. |
GAMS | GAMS. |
PYOMO | PYOMO. |
NLP_LANG | NLP. |
enum maingo::RETCODE |
Enum for representing the return codes returned by MAiNGO after the solve() function was called.
Enum for representing the setting names and making the tracking of set settings easier.
Enumerator | |
---|---|
EPSILONA | absolute optimality tolerance |
EPSILONR | relative optimality tolerance |
DELTAINEQ | absolute inequality tolerance |
DELTAEQ | absolute equality tolerance |
RELNODETOL | relative minimal node size tolerance |
INFTY | infinity value |
TARGETLOWERBOUND | target value for LBD at which MAiNGO terminates |
TARGETUPPERBOUND | target value for UBD at which MAiNGO terminates |
BAB_MAXNODES | max number of nodes |
BAB_MAXITERATIONS | max number of iterations |
MAXTIME | max time |
CONFIRMTERMINATION | whether to confirm termination |
TERMINATEONFEASIBLEPOINT | whether to terminate once a feasible point was found |
PRE_MAXLOCALSEARCHES | max local searches in pre-processing |
PRE_OBBTMAXROUNDS | max number of obbt rounds in pre-processing |
PRE_PUREMULTISTART | whether to do a pure multistart |
BAB_NODESELECTION | node selection heuristic |
BAB_BRANCHVARIABLE | branching variable heuristic |
BAB_ALWAYSSOLVEOBBT | whether to always solve obbt |
BAB_PROBING | whether to do probing |
BAB_DBBT | whether to do dbbt |
BAB_CONSTRAINTPROPAGATION | whether to do constraint propagation |
LBP_SOLVER | lower bounding solver |
LBP_LINPOINTS | linearization point strategy |
LBP_SUBGRADIENTINTERVALS | whether to use subgradient intervals heuristic |
LBP_OBBTMINIMPROVEMENT | minimal obbt improvement |
LBP_ACTIVATEMORESCALING | number of consecutive iterations with no lbd imrovement needed to activate more aggressive scaling in LP solver (e.g., CPLEX) |
LBP_ADDAUXILIARYVARS | whether to add auxiliary variables for common factors in the lower bounding problem |
LBP_MINFACTORSFORAUX | minimum number of common factors to add an auxiliary variable |
LBP_MAXNUMBEROFADDEDFACTORS | maximum number of added factor as auxiliaries |
MC_MVCOMPUSE | whether to use multivariate mccormick |
MC_MVCOMPTOL | mccormick computational tolerance |
MC_ENVELTOL | mccormick envelope computation tolerance |
UBP_SOLVERPRE | upper bounding solver in pre-processing |
UBP_MAXSTEPSPRE | max steps for upper bounding solver in pre-processing |
UBP_MAXTIMEPRE | max time for upper bounding solver in pre-processing |
UBP_SOLVERBAB | upper bounding solver in B&B |
UBP_MAXSTEPSBAB | max steps for upper bounding solver in B&B |
UBP_MAXTIMEBAB | max time for upper bounding solver in B&B |
UBP_IGNORENODEBOUNDS | whether to ignore bounds in upper bounding |
EC_NPOINTS | number of points on the Pareto front in epsilon-constraint method |
LBP_VERBOSITY | lower bounding verbosity |
UBP_VERBOSITY | upper bounding verbosity |
BAB_VERBOSITY | b&b verbosity |
BAB_PRINTFREQ | frequency of printed b&b iterations |
BAB_LOGFREQ | frequency of written b&b iterations |
OUTSTREAMVERBOSITY | verbosity for outstream |
WRITELOG | whether to write log |
WRITECSV | whether to write csv |
WRITERESFILE | whether to write an additional log file containing non-standard information about the problem |
WRITETOLOGSEC | write to log/csv every x seconds |
PRE_PRINTEVERYLOCALSEARCH | whether to print every local search |
WRITETOOTHERLANGUAGE | write a file in a different modeling language |
UNKNOWN_SETTING | unknown setting |
Enum for representing the return codes returned by LowerBoundingSolvers when solving OBBT or constraint propagation.
enum maingo::VERB |
Enum for controlling the output level of solvers (i.e., how much should be printed on the screen and, possibly, to the log file).
double maingo::get_cpu_time | ( | ) |
Function for querying CPU time of the process.
double maingo::get_wall_time | ( | ) |
Function for querying wall clock time of the process.
|
inline |
Function for checking if LBD is larger than UBD, or smaller by not more than the specified tolerance (absolute or relative)
This function is declared here, since it is needed in bab.cpp, ubp.cpp, and in MAiNGO.cpp
[in] | LBD | is the global lower bound |
[in] | UBD | is the global upper bound |
[in] | mySettings | is a pointer to MAiNGO settings |
|
inline |
Function printing the current version number.
This function is declared here, since it is needed in MAiNGO.cpp, MAiNGOtoGAMS.cpp and lbp.cpp
std::string maingo::var_indexes | ( | size_t * | indexes | ) |
Function for serializing index sequences.
[in] | indexes | is the array of indexes to serialize |
|
inline |
Function for serializing index sequences.
[in] | indexes | is the array of indexes to serialize |
std::string maingo::var_name | ( | std::string | base, |
size_t * | indexes | ||
) |
Function for flattening indexed symbol names.
[in] | base | is the base name of the symbol |
[in] | indexes | is the array of indexes to flatten |
constexpr VT maingo::VT_BINARY = babBase::enums::VT_BINARY |
Redefine for easier usage
constexpr VT maingo::VT_CONTINUOUS = babBase::enums::VT_CONTINUOUS |
Redefine for easier usage
constexpr VT maingo::VT_INTEGER = babBase::enums::VT_INTEGER |
Redefine for easier usage