DotNet Reference

.Net Reference

Detailed Description

Next id: 30

Definition at line 4562 of file CpModel.pb.cs.

Public Types

enum class  ConstraintOneofCase {
  None = 0 , BoolOr = 3 , BoolAnd = 4 , AtMostOne = 26 ,
  ExactlyOne = 29 , BoolXor = 5 , IntDiv = 7 , IntMod = 8 ,
  IntMax = 9 , LinMax = 27 , IntMin = 10 , LinMin = 28 ,
  IntProd = 11 , Linear = 12 , AllDiff = 13 , Element = 14 ,
  Circuit = 15 , Routes = 23 , Table = 16 , Automaton = 17 ,
  Inverse = 18 , Reservoir = 24 , Interval = 19 , NoOverlap = 20 ,
  NoOverlap2D = 21 , Cumulative = 22
}
 Enum of possible cases for the "constraint" oneof. More...
 

Public Member Functions

 ConstraintProto ()
 
 ConstraintProto (ConstraintProto other)
 
ConstraintProto Clone ()
 
void ClearConstraint ()
 
override bool Equals (object other)
 
bool Equals (ConstraintProto other)
 
override int GetHashCode ()
 
override string ToString ()
 
void WriteTo (pb::CodedOutputStream output)
 
int CalculateSize ()
 
void MergeFrom (ConstraintProto other)
 
void MergeFrom (pb::CodedInputStream input)
 

Static Public Attributes

const int NameFieldNumber = 1
 Field number for the "name" field. More...
 
const int EnforcementLiteralFieldNumber = 2
 Field number for the "enforcement_literal" field. More...
 
const int BoolOrFieldNumber = 3
 Field number for the "bool_or" field. More...
 
const int BoolAndFieldNumber = 4
 Field number for the "bool_and" field. More...
 
const int AtMostOneFieldNumber = 26
 Field number for the "at_most_one" field. More...
 
const int ExactlyOneFieldNumber = 29
 Field number for the "exactly_one" field. More...
 
const int BoolXorFieldNumber = 5
 Field number for the "bool_xor" field. More...
 
const int IntDivFieldNumber = 7
 Field number for the "int_div" field. More...
 
const int IntModFieldNumber = 8
 Field number for the "int_mod" field. More...
 
const int IntMaxFieldNumber = 9
 Field number for the "int_max" field. More...
 
const int LinMaxFieldNumber = 27
 Field number for the "lin_max" field. More...
 
const int IntMinFieldNumber = 10
 Field number for the "int_min" field. More...
 
const int LinMinFieldNumber = 28
 Field number for the "lin_min" field. More...
 
const int IntProdFieldNumber = 11
 Field number for the "int_prod" field. More...
 
const int LinearFieldNumber = 12
 Field number for the "linear" field. More...
 
const int AllDiffFieldNumber = 13
 Field number for the "all_diff" field. More...
 
const int ElementFieldNumber = 14
 Field number for the "element" field. More...
 
const int CircuitFieldNumber = 15
 Field number for the "circuit" field. More...
 
const int RoutesFieldNumber = 23
 Field number for the "routes" field. More...
 
const int TableFieldNumber = 16
 Field number for the "table" field. More...
 
const int AutomatonFieldNumber = 17
 Field number for the "automaton" field. More...
 
const int InverseFieldNumber = 18
 Field number for the "inverse" field. More...
 
const int ReservoirFieldNumber = 24
 Field number for the "reservoir" field. More...
 
const int IntervalFieldNumber = 19
 Field number for the "interval" field. More...
 
const int NoOverlapFieldNumber = 20
 Field number for the "no_overlap" field. More...
 
const int NoOverlap2DFieldNumber = 21
 Field number for the "no_overlap_2d" field. More...
 
const int CumulativeFieldNumber = 22
 Field number for the "cumulative" field. More...
 

Properties

static pb::MessageParser< ConstraintProtoParser [get]
 
static pbr::MessageDescriptor Descriptor [get]
 
string Name [get, set]
 For debug/logging only. More...
 
pbc::RepeatedField< int > EnforcementLiteral [get]
 The constraint will be enforced iff all literals listed here are true. More...
 
global::Google.OrTools.Sat.BoolArgumentProto?? BoolOr [get, set]
 The bool_or constraint forces at least one literal to be true. More...
 
global::Google.OrTools.Sat.BoolArgumentProto?? BoolAnd [get, set]
 The bool_and constraint forces all of the literals to be true. More...
 
global::Google.OrTools.Sat.BoolArgumentProto?? AtMostOne [get, set]
 The at_most_one constraint enforces that no more than one literal is true at the same time. More...
 
global::Google.OrTools.Sat.BoolArgumentProto?? ExactlyOne [get, set]
 The exactly_one constraint force exactly one literal to true and no more. More...
 
global::Google.OrTools.Sat.BoolArgumentProto?? BoolXor [get, set]
 The bool_xor constraint forces an odd number of the literals to be true. More...
 
global::Google.OrTools.Sat.IntegerArgumentProto?? IntDiv [get, set]
 The int_div constraint forces the target to equal vars[0] / vars[1]. More...
 
global::Google.OrTools.Sat.IntegerArgumentProto?? IntMod [get, set]
 The int_mod constraint forces the target to equal vars[0] % vars[1]. More...
 
global::Google.OrTools.Sat.IntegerArgumentProto?? IntMax [get, set]
 The int_max constraint forces the target to equal the maximum of all variables. More...
 
global::Google.OrTools.Sat.LinearArgumentProto?? LinMax [get, set]
 
global::Google.OrTools.Sat.IntegerArgumentProto?? IntMin [get, set]
 The int_min constraint forces the target to equal the minimum of all variables. More...
 
global::Google.OrTools.Sat.LinearArgumentProto?? LinMin [get, set]
 
global::Google.OrTools.Sat.IntegerArgumentProto?? IntProd [get, set]
 The int_prod constraint forces the target to equal the product of all variables. More...
 
global::Google.OrTools.Sat.LinearConstraintProto?? Linear [get, set]
 The linear constraint enforces a linear inequality among the variables, such as 0 <= x + 2y <= 10. More...
 
global::Google.OrTools.Sat.AllDifferentConstraintProto?? AllDiff [get, set]
 The all_diff constraint forces all variables to take different values. More...
 
global::Google.OrTools.Sat.ElementConstraintProto?? Element [get, set]
 The element constraint forces the variable with the given index to be equal to the target. More...
 
global::Google.OrTools.Sat.CircuitConstraintProto?? Circuit [get, set]
 The circuit constraint takes a graph and forces the arcs present (with arc presence indicated by a literal) to form a unique cycle. More...
 
global::Google.OrTools.Sat.RoutesConstraintProto?? Routes [get, set]
 The routes constraint implements the vehicle routing problem. More...
 
global::Google.OrTools.Sat.TableConstraintProto?? Table [get, set]
 The table constraint enforces what values a tuple of variables may take. More...
 
global::Google.OrTools.Sat.AutomatonConstraintProto?? Automaton [get, set]
 The automaton constraint forces a sequence of variables to be accepted by an automaton. More...
 
global::Google.OrTools.Sat.InverseConstraintProto?? Inverse [get, set]
 The inverse constraint forces two arrays to be inverses of each other: the values of one are the indices of the other, and vice versa. More...
 
global::Google.OrTools.Sat.ReservoirConstraintProto?? Reservoir [get, set]
 The reservoir constraint forces the sum of a set of active demands to always be between a specified minimum and maximum value during specific times. More...
 
global::Google.OrTools.Sat.IntervalConstraintProto?? Interval [get, set]
 The interval constraint takes a start, end, and size, and forces start + size == end. More...
 
global::Google.OrTools.Sat.NoOverlapConstraintProto?? NoOverlap [get, set]
 The no_overlap constraint prevents a set of intervals from overlapping; in scheduling, this is called a disjunctive constraint. More...
 
global::Google.OrTools.Sat.NoOverlap2DConstraintProto?? NoOverlap2D [get, set]
 The no_overlap_2d constraint prevents a set of boxes from overlapping. More...
 
global::Google.OrTools.Sat.CumulativeConstraintProto?? Cumulative [get, set]
 The cumulative constraint ensures that for any integer point, the sum of the demands of the intervals containing that point does not exceed the capacity. More...
 
ConstraintOneofCase ConstraintCase [get]
 

Member Enumeration Documentation

◆ ConstraintOneofCase

enum ConstraintOneofCase
strong

Enum of possible cases for the "constraint" oneof.

Enumerator
None 
BoolOr 
BoolAnd 
AtMostOne 
ExactlyOne 
BoolXor 
IntDiv 
IntMod 
IntMax 
LinMax 
IntMin 
LinMin 
IntProd 
Linear 
AllDiff 
Element 
Circuit 
Routes 
Table 
Automaton 
Inverse 
Reservoir 
Interval 
NoOverlap 
NoOverlap2D 
Cumulative 

Definition at line 5121 of file CpModel.pb.cs.

Constructor & Destructor Documentation

◆ ConstraintProto() [1/2]

ConstraintProto ( )
inline

Definition at line 4583 of file CpModel.pb.cs.

◆ ConstraintProto() [2/2]

ConstraintProto ( ConstraintProto  other)
inline

Definition at line 4590 of file CpModel.pb.cs.

Member Function Documentation

◆ CalculateSize()

int CalculateSize ( )
inline

Definition at line 5478 of file CpModel.pb.cs.

◆ ClearConstraint()

void ClearConstraint ( )
inline

Definition at line 5156 of file CpModel.pb.cs.

◆ Clone()

ConstraintProto Clone ( )
inline

Definition at line 4675 of file CpModel.pb.cs.

◆ Equals() [1/2]

bool Equals ( ConstraintProto  other)
inline

Definition at line 5167 of file CpModel.pb.cs.

◆ Equals() [2/2]

override bool Equals ( object  other)
inline

Definition at line 5162 of file CpModel.pb.cs.

◆ GetHashCode()

override int GetHashCode ( )
inline

Definition at line 5206 of file CpModel.pb.cs.

◆ MergeFrom() [1/2]

void MergeFrom ( ConstraintProto  other)
inline

Definition at line 5566 of file CpModel.pb.cs.

◆ MergeFrom() [2/2]

void MergeFrom ( pb::CodedInputStream  input)
inline

Definition at line 5731 of file CpModel.pb.cs.

◆ ToString()

override string ToString ( )
inline

Definition at line 5243 of file CpModel.pb.cs.

◆ WriteTo()

void WriteTo ( pb::CodedOutputStream  output)
inline

Definition at line 5248 of file CpModel.pb.cs.

Member Data Documentation

◆ AllDiffFieldNumber

const int AllDiffFieldNumber = 13
static

Field number for the "all_diff" field.

Definition at line 4940 of file CpModel.pb.cs.

◆ AtMostOneFieldNumber

const int AtMostOneFieldNumber = 26
static

Field number for the "at_most_one" field.

Definition at line 4752 of file CpModel.pb.cs.

◆ AutomatonFieldNumber

const int AutomatonFieldNumber = 17
static

Field number for the "automaton" field.

Definition at line 5013 of file CpModel.pb.cs.

◆ BoolAndFieldNumber

const int BoolAndFieldNumber = 4
static

Field number for the "bool_and" field.

Definition at line 4734 of file CpModel.pb.cs.

◆ BoolOrFieldNumber

const int BoolOrFieldNumber = 3
static

Field number for the "bool_or" field.

Definition at line 4720 of file CpModel.pb.cs.

◆ BoolXorFieldNumber

const int BoolXorFieldNumber = 5
static

Field number for the "bool_xor" field.

Definition at line 4801 of file CpModel.pb.cs.

◆ CircuitFieldNumber

const int CircuitFieldNumber = 15
static

Field number for the "circuit" field.

Definition at line 4969 of file CpModel.pb.cs.

◆ CumulativeFieldNumber

const int CumulativeFieldNumber = 22
static

Field number for the "cumulative" field.

Definition at line 5104 of file CpModel.pb.cs.

◆ ElementFieldNumber

const int ElementFieldNumber = 14
static

Field number for the "element" field.

Definition at line 4954 of file CpModel.pb.cs.

◆ EnforcementLiteralFieldNumber

const int EnforcementLiteralFieldNumber = 2
static

Field number for the "enforcement_literal" field.

Definition at line 4694 of file CpModel.pb.cs.

◆ ExactlyOneFieldNumber

const int ExactlyOneFieldNumber = 29
static

Field number for the "exactly_one" field.

Definition at line 4776 of file CpModel.pb.cs.

◆ IntDivFieldNumber

const int IntDivFieldNumber = 7
static

Field number for the "int_div" field.

Definition at line 4815 of file CpModel.pb.cs.

◆ IntervalFieldNumber

const int IntervalFieldNumber = 19
static

Field number for the "interval" field.

Definition at line 5059 of file CpModel.pb.cs.

◆ IntMaxFieldNumber

const int IntMaxFieldNumber = 9
static

Field number for the "int_max" field.

Definition at line 4845 of file CpModel.pb.cs.

◆ IntMinFieldNumber

const int IntMinFieldNumber = 10
static

Field number for the "int_min" field.

Definition at line 4876 of file CpModel.pb.cs.

◆ IntModFieldNumber

const int IntModFieldNumber = 8
static

Field number for the "int_mod" field.

Definition at line 4830 of file CpModel.pb.cs.

◆ IntProdFieldNumber

const int IntProdFieldNumber = 11
static

Field number for the "int_prod" field.

Definition at line 4907 of file CpModel.pb.cs.

◆ InverseFieldNumber

const int InverseFieldNumber = 18
static

Field number for the "inverse" field.

Definition at line 5028 of file CpModel.pb.cs.

◆ LinearFieldNumber

const int LinearFieldNumber = 12
static

Field number for the "linear" field.

Definition at line 4925 of file CpModel.pb.cs.

◆ LinMaxFieldNumber

const int LinMaxFieldNumber = 27
static

Field number for the "lin_max" field.

Definition at line 4865 of file CpModel.pb.cs.

◆ LinMinFieldNumber

const int LinMinFieldNumber = 28
static

Field number for the "lin_min" field.

Definition at line 4896 of file CpModel.pb.cs.

◆ NameFieldNumber

const int NameFieldNumber = 1
static

Field number for the "name" field.

Definition at line 4680 of file CpModel.pb.cs.

◆ NoOverlap2DFieldNumber

const int NoOverlap2DFieldNumber = 21
static

Field number for the "no_overlap_2d" field.

Definition at line 5090 of file CpModel.pb.cs.

◆ NoOverlapFieldNumber

const int NoOverlapFieldNumber = 20
static

Field number for the "no_overlap" field.

Definition at line 5074 of file CpModel.pb.cs.

◆ ReservoirFieldNumber

const int ReservoirFieldNumber = 24
static

Field number for the "reservoir" field.

Definition at line 5043 of file CpModel.pb.cs.

◆ RoutesFieldNumber

const int RoutesFieldNumber = 23
static

Field number for the "routes" field.

Definition at line 4984 of file CpModel.pb.cs.

◆ TableFieldNumber

const int TableFieldNumber = 16
static

Field number for the "table" field.

Definition at line 4998 of file CpModel.pb.cs.

Property Documentation

◆ AllDiff

global.Google.OrTools.Sat.AllDifferentConstraintProto?? AllDiff
getset

The all_diff constraint forces all variables to take different values.

Definition at line 4945 of file CpModel.pb.cs.

◆ AtMostOne

global.Google.OrTools.Sat.BoolArgumentProto?? AtMostOne
getset

The at_most_one constraint enforces that no more than one literal is true at the same time.

Note that an at most one constraint of length n could be encoded with n bool_and constraint with n-1 term on the right hand side. So in a sense, this constraint contribute directly to the "implication-graph" or the 2-SAT part of the model.

This constraint does not support enforcement_literal. Just use a linear constraint if you need to enforce it. You also do not need to use it directly, we will extract it from the model in most situations.

Definition at line 4767 of file CpModel.pb.cs.

◆ Automaton

global.Google.OrTools.Sat.AutomatonConstraintProto?? Automaton
getset

The automaton constraint forces a sequence of variables to be accepted by an automaton.

Definition at line 5019 of file CpModel.pb.cs.

◆ BoolAnd

global.Google.OrTools.Sat.BoolArgumentProto?? BoolAnd
getset

The bool_and constraint forces all of the literals to be true.

This is a "redundant" constraint in the sense that this can easily be encoded with many bool_or or at_most_one. It is just more space efficient and handled slightly differently internally.

Definition at line 4743 of file CpModel.pb.cs.

◆ BoolOr

global.Google.OrTools.Sat.BoolArgumentProto?? BoolOr
getset

The bool_or constraint forces at least one literal to be true.

Definition at line 4725 of file CpModel.pb.cs.

◆ BoolXor

global.Google.OrTools.Sat.BoolArgumentProto?? BoolXor
getset

The bool_xor constraint forces an odd number of the literals to be true.

Definition at line 4806 of file CpModel.pb.cs.

◆ Circuit

global.Google.OrTools.Sat.CircuitConstraintProto?? Circuit
getset

The circuit constraint takes a graph and forces the arcs present (with arc presence indicated by a literal) to form a unique cycle.

Definition at line 4975 of file CpModel.pb.cs.

◆ ConstraintCase

ConstraintOneofCase ConstraintCase
get

Definition at line 5151 of file CpModel.pb.cs.

◆ Cumulative

global.Google.OrTools.Sat.CumulativeConstraintProto?? Cumulative
getset

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

Definition at line 5111 of file CpModel.pb.cs.

◆ Descriptor

pbr.MessageDescriptor Descriptor
staticget

Definition at line 4573 of file CpModel.pb.cs.

◆ Element

global.Google.OrTools.Sat.ElementConstraintProto?? Element
getset

The element constraint forces the variable with the given index to be equal to the target.

Definition at line 4960 of file CpModel.pb.cs.

◆ EnforcementLiteral

pbc.RepeatedField<int> EnforcementLiteral
get

The constraint will be enforced iff all literals listed here are true.

If this is empty, then the constraint will always be enforced. An enforced constraint must be satisfied, and an un-enforced one will simply be ignored.

This is also called half-reification. To have an equivalence between a literal and a constraint (full reification), one must add both a constraint (controlled by a literal l) and its negation (controlled by the negation of l).

Important: as of September 2018, only a few constraint support enforcement:

  • bool_or, bool_and, linear: fully supported.
  • interval: only support a single enforcement literal.
  • other: no support (but can be added on a per-demand basis).

Definition at line 4715 of file CpModel.pb.cs.

◆ ExactlyOne

global.Google.OrTools.Sat.BoolArgumentProto?? ExactlyOne
getset

The exactly_one constraint force exactly one literal to true and no more.

Anytime a bool_or (it could have been called at_least_one) is included into an at_most_one, then the bool_or is actually an exactly one constraint, and the extra literal in the at_most_one can be set to false. So in this sense, this constraint is not really needed. it is just here for a better description of the problem structure and to facilitate some algorithm.

This constraint does not support enforcement_literal. Just use a linear constraint if you need to enforce it. You also do not need to use it directly, we will extract it from the model in most situations.

Definition at line 4792 of file CpModel.pb.cs.

◆ IntDiv

global.Google.OrTools.Sat.IntegerArgumentProto?? IntDiv
getset

The int_div constraint forces the target to equal vars[0] / vars[1].

In particular, vars[1] can never take the value 0.

Definition at line 4821 of file CpModel.pb.cs.

◆ Interval

global.Google.OrTools.Sat.IntervalConstraintProto?? Interval
getset

The interval constraint takes a start, end, and size, and forces start + size == end.

Definition at line 5065 of file CpModel.pb.cs.

◆ IntMax

global.Google.OrTools.Sat.IntegerArgumentProto?? IntMax
getset

The int_max constraint forces the target to equal the maximum of all variables.

The lin_max constraint forces the target to equal the maximum of all linear expressions.

TODO(user): Remove int_max in favor of lin_max.

Definition at line 4856 of file CpModel.pb.cs.

◆ IntMin

global.Google.OrTools.Sat.IntegerArgumentProto?? IntMin
getset

The int_min constraint forces the target to equal the minimum of all variables.

The lin_min constraint forces the target to equal the minimum of all linear expressions.

TODO(user): Remove int_min in favor of lin_min.

Definition at line 4887 of file CpModel.pb.cs.

◆ IntMod

global.Google.OrTools.Sat.IntegerArgumentProto?? IntMod
getset

The int_mod constraint forces the target to equal vars[0] % vars[1].

The domain of vars[1] must be strictly positive.

Definition at line 4836 of file CpModel.pb.cs.

◆ IntProd

global.Google.OrTools.Sat.IntegerArgumentProto?? IntProd
getset

The int_prod constraint forces the target to equal the product of all variables.

By convention, because we can just remove term equal to one, the empty product forces the target to be one.

TODO(user): Support more than two terms in the product.

Definition at line 4916 of file CpModel.pb.cs.

◆ Inverse

global.Google.OrTools.Sat.InverseConstraintProto?? Inverse
getset

The inverse constraint forces two arrays to be inverses of each other: the values of one are the indices of the other, and vice versa.

Definition at line 5034 of file CpModel.pb.cs.

◆ Linear

global.Google.OrTools.Sat.LinearConstraintProto?? Linear
getset

The linear constraint enforces a linear inequality among the variables, such as 0 <= x + 2y <= 10.

Definition at line 4931 of file CpModel.pb.cs.

◆ LinMax

global.Google.OrTools.Sat.LinearArgumentProto?? LinMax
getset

Definition at line 4867 of file CpModel.pb.cs.

◆ LinMin

global.Google.OrTools.Sat.LinearArgumentProto?? LinMin
getset

Definition at line 4898 of file CpModel.pb.cs.

◆ Name

string Name
getset

For debug/logging only.

Can be empty.

Definition at line 4686 of file CpModel.pb.cs.

◆ NoOverlap

global.Google.OrTools.Sat.NoOverlapConstraintProto?? NoOverlap
getset

The no_overlap constraint prevents a set of intervals from overlapping; in scheduling, this is called a disjunctive constraint.

Definition at line 5081 of file CpModel.pb.cs.

◆ NoOverlap2D

global.Google.OrTools.Sat.NoOverlap2DConstraintProto?? NoOverlap2D
getset

The no_overlap_2d constraint prevents a set of boxes from overlapping.

Definition at line 5095 of file CpModel.pb.cs.

◆ Parser

pb.MessageParser<ConstraintProto> Parser
staticget

Definition at line 4570 of file CpModel.pb.cs.

◆ Reservoir

global.Google.OrTools.Sat.ReservoirConstraintProto?? Reservoir
getset

The reservoir constraint forces the sum of a set of active demands to always be between a specified minimum and maximum value during specific times.

Definition at line 5050 of file CpModel.pb.cs.

◆ Routes

global.Google.OrTools.Sat.RoutesConstraintProto?? Routes
getset

The routes constraint implements the vehicle routing problem.

Definition at line 4989 of file CpModel.pb.cs.

◆ Table

global.Google.OrTools.Sat.TableConstraintProto?? Table
getset

The table constraint enforces what values a tuple of variables may take.

Definition at line 5004 of file CpModel.pb.cs.


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