OR-Tools  8.2
ModelCacheabstract

Detailed Description

Implements a complete cache for model elements: expressions and constraints.

Caching is based on the signatures of the elements, as well as their types. This class is used internally to avoid creating duplicate objects.

Definition at line 2073 of file constraint_solveri.h.

Public Types

enum  VoidConstraintType { VOID_FALSE_CONSTRAINT = 0 , VOID_TRUE_CONSTRAINT , VOID_CONSTRAINT_MAX }
 
enum  VarConstantConstraintType {
  VAR_CONSTANT_EQUALITY = 0 , VAR_CONSTANT_GREATER_OR_EQUAL , VAR_CONSTANT_LESS_OR_EQUAL , VAR_CONSTANT_NON_EQUALITY ,
  VAR_CONSTANT_CONSTRAINT_MAX
}
 
enum  VarConstantConstantConstraintType { VAR_CONSTANT_CONSTANT_BETWEEN = 0 , VAR_CONSTANT_CONSTANT_CONSTRAINT_MAX }
 
enum  ExprExprConstraintType {
  EXPR_EXPR_EQUALITY = 0 , EXPR_EXPR_GREATER , EXPR_EXPR_GREATER_OR_EQUAL , EXPR_EXPR_LESS ,
  EXPR_EXPR_LESS_OR_EQUAL , EXPR_EXPR_NON_EQUALITY , EXPR_EXPR_CONSTRAINT_MAX
}
 
enum  ExprExpressionType { EXPR_OPPOSITE = 0 , EXPR_ABS , EXPR_SQUARE , EXPR_EXPRESSION_MAX }
 
enum  ExprExprExpressionType {
  EXPR_EXPR_DIFFERENCE = 0 , EXPR_EXPR_PROD , EXPR_EXPR_DIV , EXPR_EXPR_MAX ,
  EXPR_EXPR_MIN , EXPR_EXPR_SUM , EXPR_EXPR_IS_LESS , EXPR_EXPR_IS_LESS_OR_EQUAL ,
  EXPR_EXPR_IS_EQUAL , EXPR_EXPR_IS_NOT_EQUAL , EXPR_EXPR_EXPRESSION_MAX
}
 
enum  ExprExprConstantExpressionType { EXPR_EXPR_CONSTANT_CONDITIONAL = 0 , EXPR_EXPR_CONSTANT_EXPRESSION_MAX }
 
enum  ExprConstantExpressionType {
  EXPR_CONSTANT_DIFFERENCE = 0 , EXPR_CONSTANT_DIVIDE , EXPR_CONSTANT_PROD , EXPR_CONSTANT_MAX ,
  EXPR_CONSTANT_MIN , EXPR_CONSTANT_SUM , EXPR_CONSTANT_IS_EQUAL , EXPR_CONSTANT_IS_NOT_EQUAL ,
  EXPR_CONSTANT_IS_GREATER_OR_EQUAL , EXPR_CONSTANT_IS_LESS_OR_EQUAL , EXPR_CONSTANT_EXPRESSION_MAX
}
 
enum  VarConstantConstantExpressionType { VAR_CONSTANT_CONSTANT_SEMI_CONTINUOUS = 0 , VAR_CONSTANT_CONSTANT_EXPRESSION_MAX }
 
enum  VarConstantArrayExpressionType { VAR_CONSTANT_ARRAY_ELEMENT = 0 , VAR_CONSTANT_ARRAY_EXPRESSION_MAX }
 
enum  VarArrayConstantArrayExpressionType { VAR_ARRAY_CONSTANT_ARRAY_SCAL_PROD = 0 , VAR_ARRAY_CONSTANT_ARRAY_EXPRESSION_MAX }
 
enum  VarArrayExpressionType { VAR_ARRAY_MAX = 0 , VAR_ARRAY_MIN , VAR_ARRAY_SUM , VAR_ARRAY_EXPRESSION_MAX }
 
enum  VarArrayConstantExpressionType { VAR_ARRAY_CONSTANT_INDEX = 0 , VAR_ARRAY_CONSTANT_EXPRESSION_MAX }
 

Public Member Functions

 ModelCache (Solver *const solver)
 
virtual ~ModelCache ()
 
virtual void Clear ()=0
 
virtual ConstraintFindVoidConstraint (VoidConstraintType type) const =0
 Void constraints. More...
 
virtual void InsertVoidConstraint (Constraint *const ct, VoidConstraintType type)=0
 
virtual ConstraintFindVarConstantConstraint (IntVar *const var, int64 value, VarConstantConstraintType type) const =0
 Var Constant Constraints. More...
 
virtual void InsertVarConstantConstraint (Constraint *const ct, IntVar *const var, int64 value, VarConstantConstraintType type)=0
 
virtual ConstraintFindVarConstantConstantConstraint (IntVar *const var, int64 value1, int64 value2, VarConstantConstantConstraintType type) const =0
 Var Constant Constant Constraints. More...
 
virtual void InsertVarConstantConstantConstraint (Constraint *const ct, IntVar *const var, int64 value1, int64 value2, VarConstantConstantConstraintType type)=0
 
virtual ConstraintFindExprExprConstraint (IntExpr *const expr1, IntExpr *const expr2, ExprExprConstraintType type) const =0
 Expr Expr Constraints. More...
 
virtual void InsertExprExprConstraint (Constraint *const ct, IntExpr *const expr1, IntExpr *const expr2, ExprExprConstraintType type)=0
 
virtual IntExprFindExprExpression (IntExpr *const expr, ExprExpressionType type) const =0
 Expr Expressions. More...
 
virtual void InsertExprExpression (IntExpr *const expression, IntExpr *const expr, ExprExpressionType type)=0
 
virtual IntExprFindExprConstantExpression (IntExpr *const expr, int64 value, ExprConstantExpressionType type) const =0
 Expr Constant Expressions. More...
 
virtual void InsertExprConstantExpression (IntExpr *const expression, IntExpr *const var, int64 value, ExprConstantExpressionType type)=0
 
virtual IntExprFindExprExprExpression (IntExpr *const var1, IntExpr *const var2, ExprExprExpressionType type) const =0
 Expr Expr Expressions. More...
 
virtual void InsertExprExprExpression (IntExpr *const expression, IntExpr *const var1, IntExpr *const var2, ExprExprExpressionType type)=0
 
virtual IntExprFindExprExprConstantExpression (IntExpr *const var1, IntExpr *const var2, int64 constant, ExprExprConstantExpressionType type) const =0
 Expr Expr Constant Expressions. More...
 
virtual void InsertExprExprConstantExpression (IntExpr *const expression, IntExpr *const var1, IntExpr *const var2, int64 constant, ExprExprConstantExpressionType type)=0
 
virtual IntExprFindVarConstantConstantExpression (IntVar *const var, int64 value1, int64 value2, VarConstantConstantExpressionType type) const =0
 Var Constant Constant Expressions. More...
 
virtual void InsertVarConstantConstantExpression (IntExpr *const expression, IntVar *const var, int64 value1, int64 value2, VarConstantConstantExpressionType type)=0
 
virtual IntExprFindVarConstantArrayExpression (IntVar *const var, const std::vector< int64 > &values, VarConstantArrayExpressionType type) const =0
 Var Constant Array Expressions. More...
 
virtual void InsertVarConstantArrayExpression (IntExpr *const expression, IntVar *const var, const std::vector< int64 > &values, VarConstantArrayExpressionType type)=0
 
virtual IntExprFindVarArrayExpression (const std::vector< IntVar * > &vars, VarArrayExpressionType type) const =0
 Var Array Expressions. More...
 
virtual void InsertVarArrayExpression (IntExpr *const expression, const std::vector< IntVar * > &vars, VarArrayExpressionType type)=0
 
virtual IntExprFindVarArrayConstantArrayExpression (const std::vector< IntVar * > &vars, const std::vector< int64 > &values, VarArrayConstantArrayExpressionType type) const =0
 Var Array Constant Array Expressions. More...
 
virtual void InsertVarArrayConstantArrayExpression (IntExpr *const expression, const std::vector< IntVar * > &var, const std::vector< int64 > &values, VarArrayConstantArrayExpressionType type)=0
 
virtual IntExprFindVarArrayConstantExpression (const std::vector< IntVar * > &vars, int64 value, VarArrayConstantExpressionType type) const =0
 Var Array Constant Expressions. More...
 
virtual void InsertVarArrayConstantExpression (IntExpr *const expression, const std::vector< IntVar * > &var, int64 value, VarArrayConstantExpressionType type)=0
 
Solversolver () const
 

Member Enumeration Documentation

◆ ExprConstantExpressionType

Enumerator
EXPR_CONSTANT_DIFFERENCE 
EXPR_CONSTANT_DIVIDE 
EXPR_CONSTANT_PROD 
EXPR_CONSTANT_MAX 
EXPR_CONSTANT_MIN 
EXPR_CONSTANT_SUM 
EXPR_CONSTANT_IS_EQUAL 
EXPR_CONSTANT_IS_NOT_EQUAL 
EXPR_CONSTANT_IS_GREATER_OR_EQUAL 
EXPR_CONSTANT_IS_LESS_OR_EQUAL 
EXPR_CONSTANT_EXPRESSION_MAX 

Definition at line 2130 of file constraint_solveri.h.

◆ ExprExprConstantExpressionType

Enumerator
EXPR_EXPR_CONSTANT_CONDITIONAL 
EXPR_EXPR_CONSTANT_EXPRESSION_MAX 

Definition at line 2125 of file constraint_solveri.h.

◆ ExprExprConstraintType

Enumerator
EXPR_EXPR_EQUALITY 
EXPR_EXPR_GREATER 
EXPR_EXPR_GREATER_OR_EQUAL 
EXPR_EXPR_LESS 
EXPR_EXPR_LESS_OR_EQUAL 
EXPR_EXPR_NON_EQUALITY 
EXPR_EXPR_CONSTRAINT_MAX 

Definition at line 2094 of file constraint_solveri.h.

◆ ExprExpressionType

Enumerator
EXPR_OPPOSITE 
EXPR_ABS 
EXPR_SQUARE 
EXPR_EXPRESSION_MAX 

Definition at line 2104 of file constraint_solveri.h.

◆ ExprExprExpressionType

Enumerator
EXPR_EXPR_DIFFERENCE 
EXPR_EXPR_PROD 
EXPR_EXPR_DIV 
EXPR_EXPR_MAX 
EXPR_EXPR_MIN 
EXPR_EXPR_SUM 
EXPR_EXPR_IS_LESS 
EXPR_EXPR_IS_LESS_OR_EQUAL 
EXPR_EXPR_IS_EQUAL 
EXPR_EXPR_IS_NOT_EQUAL 
EXPR_EXPR_EXPRESSION_MAX 

Definition at line 2111 of file constraint_solveri.h.

◆ VarArrayConstantArrayExpressionType

Enumerator
VAR_ARRAY_CONSTANT_ARRAY_SCAL_PROD 
VAR_ARRAY_CONSTANT_ARRAY_EXPRESSION_MAX 

Definition at line 2153 of file constraint_solveri.h.

◆ VarArrayConstantExpressionType

Enumerator
VAR_ARRAY_CONSTANT_INDEX 
VAR_ARRAY_CONSTANT_EXPRESSION_MAX 

Definition at line 2165 of file constraint_solveri.h.

◆ VarArrayExpressionType

Enumerator
VAR_ARRAY_MAX 
VAR_ARRAY_MIN 
VAR_ARRAY_SUM 
VAR_ARRAY_EXPRESSION_MAX 

Definition at line 2158 of file constraint_solveri.h.

◆ VarConstantArrayExpressionType

Enumerator
VAR_CONSTANT_ARRAY_ELEMENT 
VAR_CONSTANT_ARRAY_EXPRESSION_MAX 

Definition at line 2148 of file constraint_solveri.h.

◆ VarConstantConstantConstraintType

Enumerator
VAR_CONSTANT_CONSTANT_BETWEEN 
VAR_CONSTANT_CONSTANT_CONSTRAINT_MAX 

Definition at line 2089 of file constraint_solveri.h.

◆ VarConstantConstantExpressionType

Enumerator
VAR_CONSTANT_CONSTANT_SEMI_CONTINUOUS 
VAR_CONSTANT_CONSTANT_EXPRESSION_MAX 

Definition at line 2143 of file constraint_solveri.h.

◆ VarConstantConstraintType

Enumerator
VAR_CONSTANT_EQUALITY 
VAR_CONSTANT_GREATER_OR_EQUAL 
VAR_CONSTANT_LESS_OR_EQUAL 
VAR_CONSTANT_NON_EQUALITY 
VAR_CONSTANT_CONSTRAINT_MAX 

Definition at line 2081 of file constraint_solveri.h.

◆ VoidConstraintType

Enumerator
VOID_FALSE_CONSTRAINT 
VOID_TRUE_CONSTRAINT 
VOID_CONSTRAINT_MAX 

Definition at line 2075 of file constraint_solveri.h.

Constructor & Destructor Documentation

◆ ModelCache()

ModelCache ( Solver *const  solver)
explicit

Definition at line 30 of file model_cache.cc.

◆ ~ModelCache()

~ModelCache ( )
virtual

Definition at line 32 of file model_cache.cc.

Member Function Documentation

◆ Clear()

virtual void Clear ( )
pure virtual

◆ FindExprConstantExpression()

virtual IntExpr* FindExprConstantExpression ( IntExpr *const  expr,
int64  value,
ExprConstantExpressionType  type 
) const
pure virtual

Expr Constant Expressions.

◆ FindExprExprConstantExpression()

virtual IntExpr* FindExprExprConstantExpression ( IntExpr *const  var1,
IntExpr *const  var2,
int64  constant,
ExprExprConstantExpressionType  type 
) const
pure virtual

Expr Expr Constant Expressions.

◆ FindExprExprConstraint()

virtual Constraint* FindExprExprConstraint ( IntExpr *const  expr1,
IntExpr *const  expr2,
ExprExprConstraintType  type 
) const
pure virtual

Expr Expr Constraints.

◆ FindExprExpression()

virtual IntExpr* FindExprExpression ( IntExpr *const  expr,
ExprExpressionType  type 
) const
pure virtual

Expr Expressions.

◆ FindExprExprExpression()

virtual IntExpr* FindExprExprExpression ( IntExpr *const  var1,
IntExpr *const  var2,
ExprExprExpressionType  type 
) const
pure virtual

Expr Expr Expressions.

◆ FindVarArrayConstantArrayExpression()

virtual IntExpr* FindVarArrayConstantArrayExpression ( const std::vector< IntVar * > &  vars,
const std::vector< int64 > &  values,
VarArrayConstantArrayExpressionType  type 
) const
pure virtual

Var Array Constant Array Expressions.

◆ FindVarArrayConstantExpression()

virtual IntExpr* FindVarArrayConstantExpression ( const std::vector< IntVar * > &  vars,
int64  value,
VarArrayConstantExpressionType  type 
) const
pure virtual

Var Array Constant Expressions.

◆ FindVarArrayExpression()

virtual IntExpr* FindVarArrayExpression ( const std::vector< IntVar * > &  vars,
VarArrayExpressionType  type 
) const
pure virtual

Var Array Expressions.

◆ FindVarConstantArrayExpression()

virtual IntExpr* FindVarConstantArrayExpression ( IntVar *const  var,
const std::vector< int64 > &  values,
VarConstantArrayExpressionType  type 
) const
pure virtual

Var Constant Array Expressions.

◆ FindVarConstantConstantConstraint()

virtual Constraint* FindVarConstantConstantConstraint ( IntVar *const  var,
int64  value1,
int64  value2,
VarConstantConstantConstraintType  type 
) const
pure virtual

Var Constant Constant Constraints.

◆ FindVarConstantConstantExpression()

virtual IntExpr* FindVarConstantConstantExpression ( IntVar *const  var,
int64  value1,
int64  value2,
VarConstantConstantExpressionType  type 
) const
pure virtual

Var Constant Constant Expressions.

◆ FindVarConstantConstraint()

virtual Constraint* FindVarConstantConstraint ( IntVar *const  var,
int64  value,
VarConstantConstraintType  type 
) const
pure virtual

Var Constant Constraints.

◆ FindVoidConstraint()

virtual Constraint* FindVoidConstraint ( VoidConstraintType  type) const
pure virtual

Void constraints.

◆ InsertExprConstantExpression()

virtual void InsertExprConstantExpression ( IntExpr *const  expression,
IntExpr *const  var,
int64  value,
ExprConstantExpressionType  type 
)
pure virtual

◆ InsertExprExprConstantExpression()

virtual void InsertExprExprConstantExpression ( IntExpr *const  expression,
IntExpr *const  var1,
IntExpr *const  var2,
int64  constant,
ExprExprConstantExpressionType  type 
)
pure virtual

◆ InsertExprExprConstraint()

virtual void InsertExprExprConstraint ( Constraint *const  ct,
IntExpr *const  expr1,
IntExpr *const  expr2,
ExprExprConstraintType  type 
)
pure virtual

◆ InsertExprExpression()

virtual void InsertExprExpression ( IntExpr *const  expression,
IntExpr *const  expr,
ExprExpressionType  type 
)
pure virtual

◆ InsertExprExprExpression()

virtual void InsertExprExprExpression ( IntExpr *const  expression,
IntExpr *const  var1,
IntExpr *const  var2,
ExprExprExpressionType  type 
)
pure virtual

◆ InsertVarArrayConstantArrayExpression()

virtual void InsertVarArrayConstantArrayExpression ( IntExpr *const  expression,
const std::vector< IntVar * > &  var,
const std::vector< int64 > &  values,
VarArrayConstantArrayExpressionType  type 
)
pure virtual

◆ InsertVarArrayConstantExpression()

virtual void InsertVarArrayConstantExpression ( IntExpr *const  expression,
const std::vector< IntVar * > &  var,
int64  value,
VarArrayConstantExpressionType  type 
)
pure virtual

◆ InsertVarArrayExpression()

virtual void InsertVarArrayExpression ( IntExpr *const  expression,
const std::vector< IntVar * > &  vars,
VarArrayExpressionType  type 
)
pure virtual

◆ InsertVarConstantArrayExpression()

virtual void InsertVarConstantArrayExpression ( IntExpr *const  expression,
IntVar *const  var,
const std::vector< int64 > &  values,
VarConstantArrayExpressionType  type 
)
pure virtual

◆ InsertVarConstantConstantConstraint()

virtual void InsertVarConstantConstantConstraint ( Constraint *const  ct,
IntVar *const  var,
int64  value1,
int64  value2,
VarConstantConstantConstraintType  type 
)
pure virtual

◆ InsertVarConstantConstantExpression()

virtual void InsertVarConstantConstantExpression ( IntExpr *const  expression,
IntVar *const  var,
int64  value1,
int64  value2,
VarConstantConstantExpressionType  type 
)
pure virtual

◆ InsertVarConstantConstraint()

virtual void InsertVarConstantConstraint ( Constraint *const  ct,
IntVar *const  var,
int64  value,
VarConstantConstraintType  type 
)
pure virtual

◆ InsertVoidConstraint()

virtual void InsertVoidConstraint ( Constraint *const  ct,
VoidConstraintType  type 
)
pure virtual

◆ solver()

Solver * solver ( ) const

Definition at line 34 of file model_cache.cc.


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