DotNet Reference

DotNet Reference

ConstraintProto

Detailed Description

Next id: 29

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

Public Types

enum  ConstraintOneofCase {
  None = 0, BoolOr = 3, BoolAnd = 4, AtMostOne = 26,
  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, CircuitCovering = 25, 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 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 CircuitCoveringFieldNumber = 25
 Field number for the "circuit_covering" 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?? 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]
 The lin_max constraint forces the target to equal the maximum of all linear expressions. More...
 
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]
 The lin_min constraint forces the target to equal the minimum of all linear expressions. More...
 
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.CircuitCoveringConstraintProto?? CircuitCovering [get, set]
 The circuit_covering constraint is similar to the circuit constraint, but allows multiple non-overlapping cycles instead of just one. 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 
BoolXor 
IntDiv 
IntMod 
IntMax 
LinMax 
IntMin 
LinMin 
IntProd 
Linear 
AllDiff 
Element 
Circuit 
Routes 
CircuitCovering 
Table 
Automaton 
Inverse 
Reservoir 
Interval 
NoOverlap 
NoOverlap2D 
Cumulative 

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

Constructor & Destructor Documentation

◆ ConstraintProto() [1/2]

ConstraintProto ( )
inline

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

◆ ConstraintProto() [2/2]

ConstraintProto ( ConstraintProto  other)
inline

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

Member Function Documentation

◆ CalculateSize()

int CalculateSize ( )
inline

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

◆ ClearConstraint()

void ClearConstraint ( )
inline

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

◆ Clone()

ConstraintProto Clone ( )
inline

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

◆ Equals() [1/2]

bool Equals ( ConstraintProto  other)
inline

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

◆ Equals() [2/2]

override bool Equals ( object  other)
inline

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

◆ GetHashCode()

override int GetHashCode ( )
inline

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

◆ MergeFrom() [1/2]

void MergeFrom ( ConstraintProto  other)
inline

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

◆ MergeFrom() [2/2]

void MergeFrom ( pb::CodedInputStream  input)
inline

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

◆ ToString()

override string ToString ( )
inline

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

◆ WriteTo()

void WriteTo ( pb::CodedOutputStream  output)
inline

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

Member Data Documentation

◆ AllDiffFieldNumber

const int AllDiffFieldNumber = 13
static

Field number for the "all_diff" field.

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

◆ AtMostOneFieldNumber

const int AtMostOneFieldNumber = 26
static

Field number for the "at_most_one" field.

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

◆ AutomatonFieldNumber

const int AutomatonFieldNumber = 17
static

Field number for the "automaton" field.

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

◆ BoolAndFieldNumber

const int BoolAndFieldNumber = 4
static

Field number for the "bool_and" field.

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

◆ BoolOrFieldNumber

const int BoolOrFieldNumber = 3
static

Field number for the "bool_or" field.

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

◆ BoolXorFieldNumber

const int BoolXorFieldNumber = 5
static

Field number for the "bool_xor" field.

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

◆ CircuitCoveringFieldNumber

const int CircuitCoveringFieldNumber = 25
static

Field number for the "circuit_covering" field.

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

◆ CircuitFieldNumber

const int CircuitFieldNumber = 15
static

Field number for the "circuit" field.

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

◆ CumulativeFieldNumber

const int CumulativeFieldNumber = 22
static

Field number for the "cumulative" field.

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

◆ ElementFieldNumber

const int ElementFieldNumber = 14
static

Field number for the "element" field.

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

◆ EnforcementLiteralFieldNumber

const int EnforcementLiteralFieldNumber = 2
static

Field number for the "enforcement_literal" field.

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

◆ IntDivFieldNumber

const int IntDivFieldNumber = 7
static

Field number for the "int_div" field.

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

◆ IntervalFieldNumber

const int IntervalFieldNumber = 19
static

Field number for the "interval" field.

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

◆ IntMaxFieldNumber

const int IntMaxFieldNumber = 9
static

Field number for the "int_max" field.

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

◆ IntMinFieldNumber

const int IntMinFieldNumber = 10
static

Field number for the "int_min" field.

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

◆ IntModFieldNumber

const int IntModFieldNumber = 8
static

Field number for the "int_mod" field.

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

◆ IntProdFieldNumber

const int IntProdFieldNumber = 11
static

Field number for the "int_prod" field.

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

◆ InverseFieldNumber

const int InverseFieldNumber = 18
static

Field number for the "inverse" field.

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

◆ LinearFieldNumber

const int LinearFieldNumber = 12
static

Field number for the "linear" field.

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

◆ LinMaxFieldNumber

const int LinMaxFieldNumber = 27
static

Field number for the "lin_max" field.

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

◆ LinMinFieldNumber

const int LinMinFieldNumber = 28
static

Field number for the "lin_min" field.

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

◆ NameFieldNumber

const int NameFieldNumber = 1
static

Field number for the "name" field.

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

◆ NoOverlap2DFieldNumber

const int NoOverlap2DFieldNumber = 21
static

Field number for the "no_overlap_2d" field.

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

◆ NoOverlapFieldNumber

const int NoOverlapFieldNumber = 20
static

Field number for the "no_overlap" field.

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

◆ ReservoirFieldNumber

const int ReservoirFieldNumber = 24
static

Field number for the "reservoir" field.

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

◆ RoutesFieldNumber

const int RoutesFieldNumber = 23
static

Field number for the "routes" field.

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

◆ TableFieldNumber

const int TableFieldNumber = 16
static

Field number for the "table" field.

Definition at line 3973 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 3905 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.

Definition at line 3757 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 3994 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. It is just more space efficient and handled slightly differently internally.

Definition at line 3739 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 3721 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 3771 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 3935 of file CpModel.pb.cs.

◆ CircuitCovering

global.Google.OrTools.Sat.CircuitCoveringConstraintProto?? CircuitCovering
getset

The circuit_covering constraint is similar to the circuit constraint, but allows multiple non-overlapping cycles instead of just one.

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

◆ ConstraintCase

ConstraintOneofCase ConstraintCase
get

Definition at line 4126 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 4086 of file CpModel.pb.cs.

◆ Descriptor

pbr.MessageDescriptor Descriptor
staticget

Definition at line 3569 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 3920 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 3711 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].

Definition at line 3785 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 4040 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.

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

Definition at line 3815 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.

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

Definition at line 3846 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].

Definition at line 3799 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.

Definition at line 3876 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 4009 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 3891 of file CpModel.pb.cs.

◆ LinMax

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

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

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

◆ LinMin

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

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

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

◆ Name

string Name
getset

For debug/logging only.

Can be empty.

Definition at line 3682 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 4056 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 4070 of file CpModel.pb.cs.

◆ Parser

pb.MessageParser<ConstraintProto> Parser
staticget

Definition at line 3566 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 4025 of file CpModel.pb.cs.

◆ Routes

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

The routes constraint implements the vehicle routing problem.

Definition at line 3949 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 3979 of file CpModel.pb.cs.


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