C++ Reference

C++ Reference: CP-SAT

Detailed Description

Wrapper class around the cp_model proto.

This class provides two types of methods:

  • NewXXX to create integer, boolean, or interval variables.
  • AddXXX to create new constraints and add them to the model.

Definition at line 730 of file cp_model.h.

Public Member Functions

void SetName (const std::string &name)
 Sets the name of the model. More...
 
IntVar NewIntVar (const Domain &domain)
 Creates an integer variable with the given domain. More...
 
BoolVar NewBoolVar ()
 Creates a Boolean variable. More...
 
IntVar NewConstant (int64_t value)
 Creates a constant variable. More...
 
BoolVar TrueVar ()
 Creates an always true Boolean variable. More...
 
BoolVar FalseVar ()
 Creates an always false Boolean variable. More...
 
IntervalVar NewIntervalVar (const LinearExpr &start, const LinearExpr &size, const LinearExpr &end)
 Creates an interval variable from 3 affine expressions. More...
 
IntervalVar NewFixedSizeIntervalVar (const LinearExpr &start, int64_t size)
 Creates an interval variable with a fixed size. More...
 
IntervalVar NewOptionalIntervalVar (const LinearExpr &start, const LinearExpr &size, const LinearExpr &end, BoolVar presence)
 Creates an optional interval variable from 3 affine expressions and a Boolean variable. More...
 
IntervalVar NewOptionalFixedSizeIntervalVar (const LinearExpr &start, int64_t size, BoolVar presence)
 Creates an optional interval variable with a fixed size. More...
 
void FixVariable (IntVar var, int64_t value)
 It is sometime convenient when building a model to create a bunch of variables that will later be fixed. More...
 
void FixVariable (BoolVar var, bool value)
 
Constraint AddBoolOr (absl::Span< const BoolVar > literals)
 Adds the constraint that at least one of the literals must be true. More...
 
Constraint AddAtLeastOne (absl::Span< const BoolVar > literals)
 Same as AddBoolOr(). Sum literals >= 1. More...
 
Constraint AddAtMostOne (absl::Span< const BoolVar > literals)
 At most one literal is true. Sum literals <= 1. More...
 
Constraint AddExactlyOne (absl::Span< const BoolVar > literals)
 Exactly one literal is true. Sum literals == 1. More...
 
Constraint AddBoolAnd (absl::Span< const BoolVar > literals)
 Adds the constraint that all literals must be true. More...
 
Constraint AddBoolXor (absl::Span< const BoolVar > literals)
 Adds the constraint that an odd number of literals is true. More...
 
Constraint AddImplication (BoolVar a, BoolVar b)
 Adds a => b. More...
 
Constraint AddImplication (absl::Span< const BoolVar > lhs, absl::Span< const BoolVar > rhs)
 Adds implication: if all lhs vars are true then all rhs vars must be true. More...
 
Constraint AddEquality (const LinearExpr &left, const LinearExpr &right)
 Adds left == right. More...
 
Constraint AddGreaterOrEqual (const LinearExpr &left, const LinearExpr &right)
 Adds left >= right. More...
 
Constraint AddGreaterThan (const LinearExpr &left, const LinearExpr &right)
 Adds left > right. More...
 
Constraint AddLessOrEqual (const LinearExpr &left, const LinearExpr &right)
 Adds left <= right. More...
 
Constraint AddLessThan (const LinearExpr &left, const LinearExpr &right)
 Adds left < right. More...
 
Constraint AddLinearConstraint (const LinearExpr &expr, const Domain &domain)
 Adds expr in domain. More...
 
Constraint AddNotEqual (const LinearExpr &left, const LinearExpr &right)
 Adds left != right. More...
 
Constraint AddAllDifferent (absl::Span< const IntVar > vars)
 This constraint forces all variables to have different values. More...
 
Constraint AddAllDifferent (absl::Span< const LinearExpr > exprs)
 This constraint forces all expressions to have different values. More...
 
Constraint AddAllDifferent (std::initializer_list< LinearExpr > exprs)
 This constraint forces all expressions to have different values. More...
 
Constraint AddVariableElement (IntVar index, absl::Span< const IntVar > variables, IntVar target)
 Adds the element constraint: variables[index] == target. More...
 
Constraint AddElement (IntVar index, absl::Span< const int64_t > values, IntVar target)
 Adds the element constraint: values[index] == target. More...
 
CircuitConstraint AddCircuitConstraint ()
 Adds a circuit constraint. More...
 
MultipleCircuitConstraint AddMultipleCircuitConstraint ()
 Adds a multiple circuit constraint, aka the "VRP" (Vehicle Routing Problem) constraint. More...
 
TableConstraint AddAllowedAssignments (absl::Span< const IntVar > vars)
 Adds an allowed assignments constraint. More...
 
TableConstraint AddForbiddenAssignments (absl::Span< const IntVar > vars)
 Adds an forbidden assignments constraint. More...
 
Constraint AddInverseConstraint (absl::Span< const IntVar > variables, absl::Span< const IntVar > inverse_variables)
 An inverse constraint. More...
 
ReservoirConstraint AddReservoirConstraint (int64_t min_level, int64_t max_level)
 Adds a reservoir constraint with optional refill/emptying events. More...
 
AutomatonConstraint AddAutomaton (absl::Span< const IntVar > transition_variables, int starting_state, absl::Span< const int > final_states)
 An automaton constraint. More...
 
Constraint AddMinEquality (const LinearExpr &target, absl::Span< const IntVar > vars)
 Adds target == min(vars). More...
 
Constraint AddMinEquality (const LinearExpr &target, absl::Span< const LinearExpr > exprs)
 Adds target == min(exprs). More...
 
Constraint AddMinEquality (const LinearExpr &target, std::initializer_list< LinearExpr > exprs)
 Adds target == min(exprs). More...
 
Constraint AddMaxEquality (const LinearExpr &target, absl::Span< const IntVar > vars)
 Adds target == max(vars). More...
 
Constraint AddMaxEquality (const LinearExpr &target, absl::Span< const LinearExpr > exprs)
 Adds target == max(exprs). More...
 
Constraint AddMaxEquality (const LinearExpr &target, std::initializer_list< LinearExpr > exprs)
 Adds target == max(exprs). More...
 
Constraint AddDivisionEquality (const LinearExpr &target, const LinearExpr &numerator, const LinearExpr &denominator)
 Adds target = num / denom (integer division rounded towards 0). More...
 
Constraint AddAbsEquality (const LinearExpr &target, const LinearExpr &expr)
 Adds target == abs(expr). More...
 
Constraint AddModuloEquality (const LinearExpr &target, const LinearExpr &var, const LinearExpr &mod)
 Adds target = var % mod. More...
 
Constraint AddMultiplicationEquality (const LinearExpr &target, absl::Span< const LinearExpr > exprs)
 Adds target == prod(exprs). More...
 
Constraint AddMultiplicationEquality (const LinearExpr &target, absl::Span< const IntVar > vars)
 Adds target == prod(vars). More...
 
Constraint AddMultiplicationEquality (const LinearExpr &target, std::initializer_list< LinearExpr > exprs)
 Adds target == prod(vars). More...
 
Constraint AddMultiplicationEquality (const LinearExpr &target, const LinearExpr &left, const LinearExpr &right)
 Adds target == left * right. More...
 
Constraint AddNoOverlap (absl::Span< const IntervalVar > vars)
 Adds a no-overlap constraint that ensures that all present intervals do not overlap in time. More...
 
NoOverlap2DConstraint AddNoOverlap2D ()
 The no_overlap_2d constraint prevents a set of boxes from overlapping. More...
 
CumulativeConstraint AddCumulative (LinearExpr capacity)
 The cumulative constraint. More...
 
void Minimize (const LinearExpr &expr)
 Adds a linear minimization objective. More...
 
void Minimize (const DoubleLinearExpr &expr)
 Adds a linear floating point minimization objective. More...
 
void Maximize (const LinearExpr &expr)
 Adds a linear maximization objective. More...
 
void Maximize (const DoubleLinearExpr &expr)
 Adds a linear floating point maximization objective. More...
 
void ClearObjective ()
 Removes the objective from the model. More...
 
bool HasObjective () const
 Checks whether the model contains an objective. More...
 
void AddDecisionStrategy (absl::Span< const IntVar > variables, DecisionStrategyProto::VariableSelectionStrategy var_strategy, DecisionStrategyProto::DomainReductionStrategy domain_strategy)
 Adds a decision strategy on a list of integer variables. More...
 
void AddDecisionStrategy (absl::Span< const BoolVar > variables, DecisionStrategyProto::VariableSelectionStrategy var_strategy, DecisionStrategyProto::DomainReductionStrategy domain_strategy)
 Adds a decision strategy on a list of boolean variables. More...
 
void AddHint (IntVar var, int64_t value)
 Adds hinting to a variable. More...
 
void AddHint (BoolVar var, bool value)
 Adds hinting to a Boolean variable. More...
 
void ClearHints ()
 Removes all hints. More...
 
void AddAssumption (BoolVar lit)
 Adds a literal to the model as assumptions. More...
 
void AddAssumptions (absl::Span< const BoolVar > literals)
 Adds multiple literals to the model as assumptions. More...
 
void ClearAssumptions ()
 Remove all assumptions from the model. More...
 
const CpModelProto & Build () const
 
const CpModelProto & Proto () const
 
CpModelProto * MutableProto ()
 
bool ExportToFile (const std::string &filename) const
 Export the model to file. More...
 
void CopyFrom (const CpModelProto &model_proto)
 Replaces the current model with the one from the given proto. More...
 
BoolVar GetBoolVarFromProtoIndex (int index)
 Returns the Boolean variable from its index in the proto. More...
 
IntVar GetIntVarFromProtoIndex (int index)
 Returns the integer variable from its index in the proto. More...
 
IntervalVar GetIntervalVarFromProtoIndex (int index)
 Returns the interval variable from its index in the proto. More...
 

Member Function Documentation

◆ AddAbsEquality()

Constraint AddAbsEquality ( const LinearExpr target,
const LinearExpr expr 
)

Adds target == abs(expr).

◆ AddAllDifferent() [1/3]

Constraint AddAllDifferent ( absl::Span< const IntVar vars)

This constraint forces all variables to have different values.

◆ AddAllDifferent() [2/3]

Constraint AddAllDifferent ( absl::Span< const LinearExpr exprs)

This constraint forces all expressions to have different values.

◆ AddAllDifferent() [3/3]

Constraint AddAllDifferent ( std::initializer_list< LinearExpr exprs)

This constraint forces all expressions to have different values.

◆ AddAllowedAssignments()

TableConstraint AddAllowedAssignments ( absl::Span< const IntVar vars)

Adds an allowed assignments constraint.

An AllowedAssignments constraint is a constraint on an array of variables that forces, when all variables are fixed to a single value, that the corresponding list of values is equal to one of the tuples added to the constraint.

It returns a table constraint that allows adding tuples incrementally after construction.

◆ AddAssumption()

void AddAssumption ( BoolVar  lit)

Adds a literal to the model as assumptions.

◆ AddAssumptions()

void AddAssumptions ( absl::Span< const BoolVar literals)

Adds multiple literals to the model as assumptions.

◆ AddAtLeastOne()

Constraint AddAtLeastOne ( absl::Span< const BoolVar literals)

Same as AddBoolOr(). Sum literals >= 1.

◆ AddAtMostOne()

Constraint AddAtMostOne ( absl::Span< const BoolVar literals)

At most one literal is true. Sum literals <= 1.

◆ AddAutomaton()

AutomatonConstraint AddAutomaton ( absl::Span< const IntVar transition_variables,
int  starting_state,
absl::Span< const int >  final_states 
)

An automaton constraint.

An automaton constraint takes a list of variables (of size n), an initial state, a set of final states, and a set of transitions. A transition is a triplet ('tail', 'head', 'label'), where 'tail' and 'head' are states, and 'label' is the label of an arc from 'head' to 'tail', corresponding to the value of one variable in the list of variables.

This automaton will be unrolled into a flow with n + 1 phases. Each phase contains the possible states of the automaton. The first state contains the initial state. The last phase contains the final states.

Between two consecutive phases i and i + 1, the automaton creates a set of arcs. For each transition (tail, head, label), it will add an arc from the state 'tail' of phase i and the state 'head' of phase i + 1. This arc labeled by the value 'label' of the variables 'variables[i]'. That is, this arc can only be selected if 'variables[i]' is assigned the value 'label'. A feasible solution of this constraint is an assignment of variables such that, starting from the initial state in phase 0, there is a path labeled by the values of the variables that ends in one of the final states in the final phase.

It returns an AutomatonConstraint that allows adding transition incrementally after construction.

◆ AddBoolAnd()

Constraint AddBoolAnd ( absl::Span< const BoolVar literals)

Adds the constraint that all literals must be true.

◆ AddBoolOr()

Constraint AddBoolOr ( absl::Span< const BoolVar literals)

Adds the constraint that at least one of the literals must be true.

◆ AddBoolXor()

Constraint AddBoolXor ( absl::Span< const BoolVar literals)

Adds the constraint that an odd number of literals is true.

◆ AddCircuitConstraint()

CircuitConstraint AddCircuitConstraint ( )

Adds a circuit constraint.

The circuit constraint is defined on a graph where the arc presence is controlled by literals. That is the arc is part of the circuit of its corresponding literal is assigned to true.

For now, we ignore node indices with no incident arc. All the other nodes must have exactly one incoming and one outgoing selected arc (i.e. literal at true). All the selected arcs that are not self-loops must form a single circuit.

It returns a circuit constraint that allows adding arcs incrementally after construction.

◆ AddCumulative()

CumulativeConstraint AddCumulative ( LinearExpr  capacity)

The cumulative constraint.

It ensures that for any integer point, the sum of the demands of the intervals containing that point does not exceed the capacity.

◆ AddDecisionStrategy() [1/2]

void AddDecisionStrategy ( absl::Span< const BoolVar variables,
DecisionStrategyProto::VariableSelectionStrategy  var_strategy,
DecisionStrategyProto::DomainReductionStrategy  domain_strategy 
)

Adds a decision strategy on a list of boolean variables.

◆ AddDecisionStrategy() [2/2]

void AddDecisionStrategy ( absl::Span< const IntVar variables,
DecisionStrategyProto::VariableSelectionStrategy  var_strategy,
DecisionStrategyProto::DomainReductionStrategy  domain_strategy 
)

Adds a decision strategy on a list of integer variables.

◆ AddDivisionEquality()

Constraint AddDivisionEquality ( const LinearExpr target,
const LinearExpr numerator,
const LinearExpr denominator 
)

Adds target = num / denom (integer division rounded towards 0).

◆ AddElement()

Constraint AddElement ( IntVar  index,
absl::Span< const int64_t >  values,
IntVar  target 
)

Adds the element constraint: values[index] == target.

◆ AddEquality()

Constraint AddEquality ( const LinearExpr left,
const LinearExpr right 
)

Adds left == right.

◆ AddExactlyOne()

Constraint AddExactlyOne ( absl::Span< const BoolVar literals)

Exactly one literal is true. Sum literals == 1.

◆ AddForbiddenAssignments()

TableConstraint AddForbiddenAssignments ( absl::Span< const IntVar vars)

Adds an forbidden assignments constraint.

A ForbiddenAssignments constraint is a constraint on an array of variables where the list of impossible combinations is provided in the tuples added to the constraint.

It returns a table constraint that allows adding tuples incrementally after construction.

◆ AddGreaterOrEqual()

Constraint AddGreaterOrEqual ( const LinearExpr left,
const LinearExpr right 
)

Adds left >= right.

◆ AddGreaterThan()

Constraint AddGreaterThan ( const LinearExpr left,
const LinearExpr right 
)

Adds left > right.

◆ AddHint() [1/2]

void AddHint ( BoolVar  var,
bool  value 
)

Adds hinting to a Boolean variable.

◆ AddHint() [2/2]

void AddHint ( IntVar  var,
int64_t  value 
)

Adds hinting to a variable.

◆ AddImplication() [1/2]

Constraint AddImplication ( absl::Span< const BoolVar lhs,
absl::Span< const BoolVar rhs 
)
inline

Adds implication: if all lhs vars are true then all rhs vars must be true.

Definition at line 809 of file cp_model.h.

◆ AddImplication() [2/2]

Constraint AddImplication ( BoolVar  a,
BoolVar  b 
)
inline

Adds a => b.

Definition at line 804 of file cp_model.h.

◆ AddInverseConstraint()

Constraint AddInverseConstraint ( absl::Span< const IntVar variables,
absl::Span< const IntVar inverse_variables 
)

An inverse constraint.

It enforces that if 'variables[i]' is assigned a value 'j', then inverse_variables[j] is assigned a value 'i'. And vice versa.

◆ AddLessOrEqual()

Constraint AddLessOrEqual ( const LinearExpr left,
const LinearExpr right 
)

Adds left <= right.

◆ AddLessThan()

Constraint AddLessThan ( const LinearExpr left,
const LinearExpr right 
)

Adds left < right.

◆ AddLinearConstraint()

Constraint AddLinearConstraint ( const LinearExpr expr,
const Domain domain 
)

Adds expr in domain.

◆ AddMaxEquality() [1/3]

Constraint AddMaxEquality ( const LinearExpr target,
absl::Span< const IntVar vars 
)

Adds target == max(vars).

◆ AddMaxEquality() [2/3]

Constraint AddMaxEquality ( const LinearExpr target,
absl::Span< const LinearExpr exprs 
)

Adds target == max(exprs).

◆ AddMaxEquality() [3/3]

Constraint AddMaxEquality ( const LinearExpr target,
std::initializer_list< LinearExpr exprs 
)

Adds target == max(exprs).

◆ AddMinEquality() [1/3]

Constraint AddMinEquality ( const LinearExpr target,
absl::Span< const IntVar vars 
)

Adds target == min(vars).

◆ AddMinEquality() [2/3]

Constraint AddMinEquality ( const LinearExpr target,
absl::Span< const LinearExpr exprs 
)

Adds target == min(exprs).

◆ AddMinEquality() [3/3]

Constraint AddMinEquality ( const LinearExpr target,
std::initializer_list< LinearExpr exprs 
)

Adds target == min(exprs).

◆ AddModuloEquality()

Constraint AddModuloEquality ( const LinearExpr target,
const LinearExpr var,
const LinearExpr mod 
)

Adds target = var % mod.

◆ AddMultipleCircuitConstraint()

MultipleCircuitConstraint AddMultipleCircuitConstraint ( )

Adds a multiple circuit constraint, aka the "VRP" (Vehicle Routing Problem) constraint.

The direct graph where arc #i (from tails[i] to head[i]) is present iff literals[i] is true must satisfy this set of properties:

  • #incoming arcs == 1 except for node 0.
  • #outgoing arcs == 1 except for node 0.
  • for node zero, #incoming arcs == #outgoing arcs.
  • There are no duplicate arcs.
  • Self-arcs are allowed except for node 0.
  • There is no cycle in this graph, except through node 0.

◆ AddMultiplicationEquality() [1/4]

Constraint AddMultiplicationEquality ( const LinearExpr target,
absl::Span< const IntVar vars 
)

Adds target == prod(vars).

◆ AddMultiplicationEquality() [2/4]

Constraint AddMultiplicationEquality ( const LinearExpr target,
absl::Span< const LinearExpr exprs 
)

Adds target == prod(exprs).

◆ AddMultiplicationEquality() [3/4]

Constraint AddMultiplicationEquality ( const LinearExpr target,
const LinearExpr left,
const LinearExpr right 
)

Adds target == left * right.

◆ AddMultiplicationEquality() [4/4]

Constraint AddMultiplicationEquality ( const LinearExpr target,
std::initializer_list< LinearExpr exprs 
)

Adds target == prod(vars).

◆ AddNoOverlap()

Constraint AddNoOverlap ( absl::Span< const IntervalVar vars)

Adds a no-overlap constraint that ensures that all present intervals do not overlap in time.

◆ AddNoOverlap2D()

NoOverlap2DConstraint AddNoOverlap2D ( )

The no_overlap_2d constraint prevents a set of boxes from overlapping.

◆ AddNotEqual()

Constraint AddNotEqual ( const LinearExpr left,
const LinearExpr right 
)

Adds left != right.

◆ AddReservoirConstraint()

ReservoirConstraint AddReservoirConstraint ( int64_t  min_level,
int64_t  max_level 
)

Adds a reservoir constraint with optional refill/emptying events.

Maintain a reservoir level within bounds. The water level starts at 0, and at any time, it must be within [min_level, max_level].

Given an event (time, level_change, active), if active is true, and if time is assigned a value t, then the level of the reservoir changes by level_change (which is constant) at time t. Therefore, at any time t:

sum(level_changes[i] * actives[i] if times[i] <= t)
    in [min_level, max_level]

Note that min level must be <= 0, and the max level must be >= 0. Please use fixed level_changes to simulate an initial state.

It returns a ReservoirConstraint that allows adding optional and non optional events incrementally after construction.

◆ AddVariableElement()

Constraint AddVariableElement ( IntVar  index,
absl::Span< const IntVar variables,
IntVar  target 
)

Adds the element constraint: variables[index] == target.

◆ Build()

const CpModelProto& Build ( ) const
inline

Definition at line 1093 of file cp_model.h.

◆ ClearAssumptions()

void ClearAssumptions ( )

Remove all assumptions from the model.

◆ ClearHints()

void ClearHints ( )

Removes all hints.

◆ ClearObjective()

void ClearObjective ( )

Removes the objective from the model.

◆ CopyFrom()

void CopyFrom ( const CpModelProto &  model_proto)

Replaces the current model with the one from the given proto.

◆ ExportToFile()

bool ExportToFile ( const std::string &  filename) const

Export the model to file.

◆ FalseVar()

BoolVar FalseVar ( )

Creates an always false Boolean variable.

If this is called multiple times, the same variable will always be returned.

◆ FixVariable() [1/2]

void FixVariable ( BoolVar  var,
bool  value 
)

◆ FixVariable() [2/2]

void FixVariable ( IntVar  var,
int64_t  value 
)

It is sometime convenient when building a model to create a bunch of variables that will later be fixed.

Instead of doing AddEquality(var, value) which add a constraint, these functions modify directly the underlying variable domain.

Note that this ignore completely the original variable domain and just fix the given variable to the given value, even if it was outside the given variable domain. You can still use AddEquality() if this is not what you want.

◆ GetBoolVarFromProtoIndex()

BoolVar GetBoolVarFromProtoIndex ( int  index)

Returns the Boolean variable from its index in the proto.

◆ GetIntervalVarFromProtoIndex()

IntervalVar GetIntervalVarFromProtoIndex ( int  index)

Returns the interval variable from its index in the proto.

◆ GetIntVarFromProtoIndex()

IntVar GetIntVarFromProtoIndex ( int  index)

Returns the integer variable from its index in the proto.

◆ HasObjective()

bool HasObjective ( ) const

Checks whether the model contains an objective.

◆ Maximize() [1/2]

void Maximize ( const DoubleLinearExpr expr)

Adds a linear floating point maximization objective.

Note that the coefficients will be internally scaled to integer.

◆ Maximize() [2/2]

void Maximize ( const LinearExpr expr)

Adds a linear maximization objective.

◆ Minimize() [1/2]

void Minimize ( const DoubleLinearExpr expr)

Adds a linear floating point minimization objective.

Note that the coefficients will be internally scaled to integer.

◆ Minimize() [2/2]

void Minimize ( const LinearExpr expr)

Adds a linear minimization objective.

◆ MutableProto()

CpModelProto* MutableProto ( )
inline

Definition at line 1095 of file cp_model.h.

◆ NewBoolVar()

BoolVar NewBoolVar ( )

Creates a Boolean variable.

◆ NewConstant()

IntVar NewConstant ( int64_t  value)

Creates a constant variable.

This is a shortcut for NewVariable(Domain(value)).but it will return the same variable if used twice with the same constant.

◆ NewFixedSizeIntervalVar()

IntervalVar NewFixedSizeIntervalVar ( const LinearExpr start,
int64_t  size 
)

Creates an interval variable with a fixed size.

◆ NewIntervalVar()

IntervalVar NewIntervalVar ( const LinearExpr start,
const LinearExpr size,
const LinearExpr end 
)

Creates an interval variable from 3 affine expressions.

◆ NewIntVar()

IntVar NewIntVar ( const Domain domain)

Creates an integer variable with the given domain.

◆ NewOptionalFixedSizeIntervalVar()

IntervalVar NewOptionalFixedSizeIntervalVar ( const LinearExpr start,
int64_t  size,
BoolVar  presence 
)

Creates an optional interval variable with a fixed size.

◆ NewOptionalIntervalVar()

IntervalVar NewOptionalIntervalVar ( const LinearExpr start,
const LinearExpr size,
const LinearExpr end,
BoolVar  presence 
)

Creates an optional interval variable from 3 affine expressions and a Boolean variable.

◆ Proto()

const CpModelProto& Proto ( ) const
inline

Definition at line 1094 of file cp_model.h.

◆ SetName()

void SetName ( const std::string &  name)

Sets the name of the model.

◆ TrueVar()

BoolVar TrueVar ( )

Creates an always true Boolean variable.

If this is called multiple times, the same variable will always be returned.


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