![]() |
Google OR-Tools v9.15
a fast and portable software suite for combinatorial optimization
|
Next id: 31. More...
Next id: 31.
Definition at line 5346 of file CpModel.pb.cs.
Public Types | |
| enum | ConstraintOneofCase { None = 0 , BoolOr = 3 , BoolAnd = 4 , AtMostOne = 26 , ExactlyOne = 29 , BoolXor = 5 , IntDiv = 7 , IntMod = 8 , IntProd = 11 , LinMax = 27 , 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 , DummyConstraint = 30 } |
| 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. | |
| const int | EnforcementLiteralFieldNumber = 2 |
| Field number for the "enforcement_literal" field. | |
| const int | BoolOrFieldNumber = 3 |
| Field number for the "bool_or" field. | |
| const int | BoolAndFieldNumber = 4 |
| Field number for the "bool_and" field. | |
| const int | AtMostOneFieldNumber = 26 |
| Field number for the "at_most_one" field. | |
| const int | ExactlyOneFieldNumber = 29 |
| Field number for the "exactly_one" field. | |
| const int | BoolXorFieldNumber = 5 |
| Field number for the "bool_xor" field. | |
| const int | IntDivFieldNumber = 7 |
| Field number for the "int_div" field. | |
| const int | IntModFieldNumber = 8 |
| Field number for the "int_mod" field. | |
| const int | IntProdFieldNumber = 11 |
| Field number for the "int_prod" field. | |
| const int | LinMaxFieldNumber = 27 |
| Field number for the "lin_max" field. | |
| const int | LinearFieldNumber = 12 |
| Field number for the "linear" field. | |
| const int | AllDiffFieldNumber = 13 |
| Field number for the "all_diff" field. | |
| const int | ElementFieldNumber = 14 |
| Field number for the "element" field. | |
| const int | CircuitFieldNumber = 15 |
| Field number for the "circuit" field. | |
| const int | RoutesFieldNumber = 23 |
| Field number for the "routes" field. | |
| const int | TableFieldNumber = 16 |
| Field number for the "table" field. | |
| const int | AutomatonFieldNumber = 17 |
| Field number for the "automaton" field. | |
| const int | InverseFieldNumber = 18 |
| Field number for the "inverse" field. | |
| const int | ReservoirFieldNumber = 24 |
| Field number for the "reservoir" field. | |
| const int | IntervalFieldNumber = 19 |
| Field number for the "interval" field. | |
| const int | NoOverlapFieldNumber = 20 |
| Field number for the "no_overlap" field. | |
| const int | NoOverlap2DFieldNumber = 21 |
| Field number for the "no_overlap_2d" field. | |
| const int | CumulativeFieldNumber = 22 |
| Field number for the "cumulative" field. | |
| const int | DummyConstraintFieldNumber = 30 |
| Field number for the "dummy_constraint" field. | |
Properties | |
| static pb::MessageParser< ConstraintProto > | Parser [get] |
| static pbr::MessageDescriptor | Descriptor [get] |
| string | Name [get, set] |
| For debug/logging only. Can be empty. | |
| 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. | |
| global::Google.OrTools.Sat.BoolArgumentProto | BoolOr [get, set] |
| The bool_or constraint forces at least one literal to be true. | |
| global::Google.OrTools.Sat.BoolArgumentProto | BoolAnd [get, set] |
| The bool_and constraint forces all of the literals to be true. | |
| 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. | |
| global::Google.OrTools.Sat.BoolArgumentProto | ExactlyOne [get, set] |
| The exactly_one constraint force exactly one literal to true and no more. | |
| global::Google.OrTools.Sat.BoolArgumentProto | BoolXor [get, set] |
| The bool_xor constraint forces an odd number of the literals to be true. | |
| global::Google.OrTools.Sat.LinearArgumentProto | IntDiv [get, set] |
| The int_div constraint forces the target to equal exprs[0] / exprs[1]. The division is "rounded" towards zero, so we can have for instance (2 = 12 / 5) or (-3 = -10 / 3). If you only want exact integer division, then you should use instead of t = a / b, the int_prod constraint a = b * t. | |
| global::Google.OrTools.Sat.LinearArgumentProto | IntMod [get, set] |
| The int_mod constraint forces the target to equal exprs[0] % exprs[1]. The domain of exprs[1] must be strictly positive. The sign of the target is the same as the sign of exprs[0]. | |
| global::Google.OrTools.Sat.LinearArgumentProto | IntProd [get, set] |
| 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. | |
| global::Google.OrTools.Sat.LinearArgumentProto | LinMax [get, set] |
| The lin_max constraint forces the target to equal the maximum of all linear expressions. | |
| global::Google.OrTools.Sat.LinearConstraintProto | Linear [get, set] |
| The linear constraint enforces a linear inequality among the variables, such as 0 <= x + 2y <= 10. | |
| global::Google.OrTools.Sat.AllDifferentConstraintProto | AllDiff [get, set] |
| The all_diff constraint forces all variables to take different values. | |
| global::Google.OrTools.Sat.ElementConstraintProto | Element [get, set] |
| The element constraint forces the variable with the given index to be equal to the target. | |
| 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. | |
| global::Google.OrTools.Sat.RoutesConstraintProto | Routes [get, set] |
| The routes constraint implements the vehicle routing problem. | |
| global::Google.OrTools.Sat.TableConstraintProto | Table [get, set] |
| The table constraint enforces what values a tuple of variables may take. | |
| global::Google.OrTools.Sat.AutomatonConstraintProto | Automaton [get, set] |
| The automaton constraint forces a sequence of variables to be accepted by an automaton. | |
| 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. | |
| 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. | |
| global::Google.OrTools.Sat.IntervalConstraintProto | Interval [get, set] |
| The interval constraint takes a start, end, and size, and forces start + size == end. | |
| 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. | |
| global::Google.OrTools.Sat.NoOverlap2DConstraintProto | NoOverlap2D [get, set] |
| The no_overlap_2d constraint prevents a set of boxes from overlapping. | |
| 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. | |
| global::Google.OrTools.Sat.ListOfVariablesProto | DummyConstraint [get, set] |
| This constraint is not meant to be used and will be rejected by the solver. It is meant to mark variable when testing the presolve code. | |
| ConstraintOneofCase | ConstraintCase [get] |
Enum of possible cases for the "constraint" oneof.
Definition at line 5907 of file CpModel.pb.cs.
|
inline |
Definition at line 5371 of file CpModel.pb.cs.
|
inline |
Definition at line 5379 of file CpModel.pb.cs.
|
inline |
Definition at line 6251 of file CpModel.pb.cs.
|
inline |
Definition at line 5942 of file CpModel.pb.cs.
|
inline |
Definition at line 5459 of file CpModel.pb.cs.
|
inline |
Definition at line 5955 of file CpModel.pb.cs.
|
inline |
Definition at line 5949 of file CpModel.pb.cs.
|
inline |
Definition at line 5993 of file CpModel.pb.cs.
|
inline |
Definition at line 6334 of file CpModel.pb.cs.
|
inline |
Definition at line 6488 of file CpModel.pb.cs.
|
inline |
Definition at line 6029 of file CpModel.pb.cs.
|
inline |
Definition at line 6035 of file CpModel.pb.cs.
|
static |
Field number for the "all_diff" field.
Definition at line 5698 of file CpModel.pb.cs.
|
static |
Field number for the "at_most_one" field.
Definition at line 5543 of file CpModel.pb.cs.
|
static |
Field number for the "automaton" field.
Definition at line 5776 of file CpModel.pb.cs.
|
static |
Field number for the "bool_and" field.
Definition at line 5523 of file CpModel.pb.cs.
|
static |
Field number for the "bool_or" field.
Definition at line 5508 of file CpModel.pb.cs.
|
static |
Field number for the "bool_xor" field.
Definition at line 5588 of file CpModel.pb.cs.
|
static |
Field number for the "circuit" field.
Definition at line 5729 of file CpModel.pb.cs.
|
static |
Field number for the "cumulative" field.
Definition at line 5873 of file CpModel.pb.cs.
|
static |
Field number for the "dummy_constraint" field.
Definition at line 5890 of file CpModel.pb.cs.
|
static |
Field number for the "element" field.
Definition at line 5713 of file CpModel.pb.cs.
|
static |
Field number for the "enforcement_literal" field.
Definition at line 5479 of file CpModel.pb.cs.
|
static |
Field number for the "exactly_one" field.
Definition at line 5565 of file CpModel.pb.cs.
|
static |
Field number for the "int_div" field.
Definition at line 5603 of file CpModel.pb.cs.
|
static |
Field number for the "interval" field.
Definition at line 5825 of file CpModel.pb.cs.
|
static |
Field number for the "int_mod" field.
Definition at line 5625 of file CpModel.pb.cs.
|
static |
Field number for the "int_prod" field.
Definition at line 5642 of file CpModel.pb.cs.
|
static |
Field number for the "inverse" field.
Definition at line 5792 of file CpModel.pb.cs.
|
static |
Field number for the "linear" field.
Definition at line 5682 of file CpModel.pb.cs.
|
static |
Field number for the "lin_max" field.
Definition at line 5665 of file CpModel.pb.cs.
|
static |
Field number for the "name" field.
Definition at line 5464 of file CpModel.pb.cs.
|
static |
Field number for the "no_overlap_2d" field.
Definition at line 5858 of file CpModel.pb.cs.
|
static |
Field number for the "no_overlap" field.
Definition at line 5841 of file CpModel.pb.cs.
|
static |
Field number for the "reservoir" field.
Definition at line 5808 of file CpModel.pb.cs.
|
static |
Field number for the "routes" field.
Definition at line 5745 of file CpModel.pb.cs.
|
static |
Field number for the "table" field.
Definition at line 5760 of file CpModel.pb.cs.
|
getset |
The all_diff constraint forces all variables to take different values.
Definition at line 5704 of file CpModel.pb.cs.
|
getset |
The at_most_one constraint enforces that no more than one literal is true at the same time.
Definition at line 5556 of file CpModel.pb.cs.
|
getset |
The automaton constraint forces a sequence of variables to be accepted by an automaton.
Definition at line 5783 of file CpModel.pb.cs.
|
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 5534 of file CpModel.pb.cs.
|
getset |
The bool_or constraint forces at least one literal to be true.
Definition at line 5514 of file CpModel.pb.cs.
|
getset |
The bool_xor constraint forces an odd number of the literals to be true.
Definition at line 5594 of file CpModel.pb.cs.
|
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 5736 of file CpModel.pb.cs.
|
get |
Definition at line 5936 of file CpModel.pb.cs.
|
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 5881 of file CpModel.pb.cs.
|
staticget |
Definition at line 5359 of file CpModel.pb.cs.
|
getset |
This constraint is not meant to be used and will be rejected by the solver. It is meant to mark variable when testing the presolve code.
Definition at line 5897 of file CpModel.pb.cs.
|
getset |
The element constraint forces the variable with the given index to be equal to the target.
Definition at line 5720 of file CpModel.pb.cs.
|
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 2025, some constraints might be less efficient with enforcement than without: circuit, routes, no_overlap, no_overlap_2d, and cumulative. If performance is not great, consider using a model without these constraints enforced.
Definition at line 5503 of file CpModel.pb.cs.
|
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.
Definition at line 5579 of file CpModel.pb.cs.
|
getset |
The int_div constraint forces the target to equal exprs[0] / exprs[1]. The division is "rounded" towards zero, so we can have for instance (2 = 12 / 5) or (-3 = -10 / 3). If you only want exact integer division, then you should use instead of t = a / b, the int_prod constraint a = b * t.
If 0 belongs to the domain of exprs[1], then the model is deemed invalid.
Definition at line 5616 of file CpModel.pb.cs.
|
getset |
The interval constraint takes a start, end, and size, and forces start + size == end.
Definition at line 5832 of file CpModel.pb.cs.
|
getset |
The int_mod constraint forces the target to equal exprs[0] % exprs[1]. The domain of exprs[1] must be strictly positive. The sign of the target is the same as the sign of exprs[0].
Definition at line 5633 of file CpModel.pb.cs.
|
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.
Definition at line 5656 of file CpModel.pb.cs.
|
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 5799 of file CpModel.pb.cs.
|
getset |
The linear constraint enforces a linear inequality among the variables, such as 0 <= x + 2y <= 10.
Definition at line 5689 of file CpModel.pb.cs.
|
getset |
The lin_max constraint forces the target to equal the maximum of all linear expressions.
Definition at line 5673 of file CpModel.pb.cs.
|
getset |
For debug/logging only. Can be empty.
Definition at line 5471 of file CpModel.pb.cs.
|
getset |
The no_overlap constraint prevents a set of intervals from overlapping; in scheduling, this is called a disjunctive constraint.
Definition at line 5849 of file CpModel.pb.cs.
|
getset |
The no_overlap_2d constraint prevents a set of boxes from overlapping.
Definition at line 5864 of file CpModel.pb.cs.
|
staticget |
Definition at line 5355 of file CpModel.pb.cs.
|
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 5816 of file CpModel.pb.cs.
|
getset |
The routes constraint implements the vehicle routing problem.
Definition at line 5751 of file CpModel.pb.cs.
|
getset |
The table constraint enforces what values a tuple of variables may take.
Definition at line 5767 of file CpModel.pb.cs.