13#ifndef MINOTAURPERSPCON_H
14#define MINOTAURPERSPCON_H
19#include <forward_list>
20#include <unordered_map>
33typedef PerspCon* PerspConPtr;
34typedef const PerspCon* ConstPerspConPtr;
38 std::vector<double> fixedVal;
96 std::vector<prCons>
getPRCons()
const {
return prConsVec_;}
98 prObj getPRObj()
const {
return prObj_;}
104 std::unordered_map<VariablePtr, std::forward_list<impliVar>> getImplications0()
107 std::unordered_map<VariablePtr, std::forward_list<impliVar>> getImplications1()
115 bool boundBinVar_(
bool &isBinFixed);
119 bool isControlled_(std::vector<VariablePtr> binaries);
137 void removeSingleton_();
140 double checkVarBounds_(VariablePtr var,
bool* varbounded);
146 void findBinVarsInFunc_(std::vector<VariablePtr>* binaries);
152 void deriveImpli_(VariablePtr var);
182 bool twoTermsFunc_(ConstraintPtr c, VariablePtr var,
183 std::forward_list<impliVar> *varList,
bool z);
187 bool multiTermsFunc_(ConstraintPtr c, VariablePtr var,
188 std::forward_list<impliVar> *varList,
191 void fixBinaryVar_(VariablePtr var,
bool z);
193 bool isBinary_(VariablePtr var);
195 void addImplications_(ConstraintPtr c,
bool z0);
197 bool addImplications_(std::forward_list<impliVar> *varList);
228 static const std::string me_;
267 std::vector<prCons> prConsVec_;
272 std::unordered_map<VariablePtr, std::forward_list<impliVar>> impli0_;
273 std::unordered_map<VariablePtr, std::forward_list<impliVar>> impli1_;
275 std::forward_list<ConstraintPtr > gubList0_;
276 std::forward_list<ConstraintPtr > gubList1_;
280 std::unordered_map<VariablePtr, std::forward_list<impliVar>>::iterator
Get information about a constraint in a given Problem.
Define the Environment class.
Declare the base class Modification.
Declare the class Relaxation for storing and manipulating relaxations.
Define the TimerFactory and varios Timer classes.
Declare important 'types' used in Minotaur.
Define the Variable class.
The Constraint class is used to manage a constraint.
Definition: Constraint.h:61
Definition: Environment.h:28
Definition: PerspCon.h:81
PerspCon()
Default constructor.
Definition: PerspCon.cpp:34
~PerspCon()
Destructor.
Definition: PerspCon.cpp:87
std::vector< prCons > getPRCons() const
Returns a vector containing constraints amenable to PR.
Definition: PerspCon.h:96
void findPRCons()
Generates list of constraints amenable to PR.
Definition: PerspCon.cpp:1819
Definition: Variable.h:31
Definition: ActiveNodeStore.h:20
std::map< ConstVariablePtr, double, CompareVariablePtr > VariableGroup
Variables should always be constant within a group.
Definition: Types.h:511
unsigned int UInt
Unsigned integer.
Definition: Types.h:30
Definition: PerspCon.h:36
Definition: PerspCon.h:41
VariableGroup nNonzeroVar
Vector of variables in the nonlinear and linear parts that are fixed to non-zero values.
Definition: PerspCon.h:51
Definition: PerspCon.h:72
VariableGroup nNonzeroVar
Vector of variables in the nonlinear parts that are fixed to non-zero values.
Definition: PerspCon.h:78