![]() |
Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
|
Next id: 31. More...
Next id: 31.
Definition at line 5363 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 5934 of file CpModel.pb.cs.
|
inline |
Definition at line 5388 of file CpModel.pb.cs.
|
inline |
Definition at line 5396 of file CpModel.pb.cs.
|
inline |
Definition at line 6278 of file CpModel.pb.cs.
|
inline |
Definition at line 5969 of file CpModel.pb.cs.
|
inline |
Definition at line 5476 of file CpModel.pb.cs.
|
inline |
Definition at line 5982 of file CpModel.pb.cs.
|
inline |
Definition at line 5976 of file CpModel.pb.cs.
|
inline |
Definition at line 6020 of file CpModel.pb.cs.
|
inline |
Definition at line 6361 of file CpModel.pb.cs.
|
inline |
Definition at line 6515 of file CpModel.pb.cs.
|
inline |
Definition at line 6056 of file CpModel.pb.cs.
|
inline |
Definition at line 6062 of file CpModel.pb.cs.
|
static |
Field number for the "all_diff" field.
Definition at line 5725 of file CpModel.pb.cs.
|
static |
Field number for the "at_most_one" field.
Definition at line 5560 of file CpModel.pb.cs.
|
static |
Field number for the "automaton" field.
Definition at line 5803 of file CpModel.pb.cs.
|
static |
Field number for the "bool_and" field.
Definition at line 5540 of file CpModel.pb.cs.
|
static |
Field number for the "bool_or" field.
Definition at line 5525 of file CpModel.pb.cs.
|
static |
Field number for the "bool_xor" field.
Definition at line 5615 of file CpModel.pb.cs.
|
static |
Field number for the "circuit" field.
Definition at line 5756 of file CpModel.pb.cs.
|
static |
Field number for the "cumulative" field.
Definition at line 5900 of file CpModel.pb.cs.
|
static |
Field number for the "dummy_constraint" field.
Definition at line 5917 of file CpModel.pb.cs.
|
static |
Field number for the "element" field.
Definition at line 5740 of file CpModel.pb.cs.
|
static |
Field number for the "enforcement_literal" field.
Definition at line 5496 of file CpModel.pb.cs.
|
static |
Field number for the "exactly_one" field.
Definition at line 5587 of file CpModel.pb.cs.
|
static |
Field number for the "int_div" field.
Definition at line 5630 of file CpModel.pb.cs.
|
static |
Field number for the "interval" field.
Definition at line 5852 of file CpModel.pb.cs.
|
static |
Field number for the "int_mod" field.
Definition at line 5652 of file CpModel.pb.cs.
|
static |
Field number for the "int_prod" field.
Definition at line 5669 of file CpModel.pb.cs.
|
static |
Field number for the "inverse" field.
Definition at line 5819 of file CpModel.pb.cs.
|
static |
Field number for the "linear" field.
Definition at line 5709 of file CpModel.pb.cs.
|
static |
Field number for the "lin_max" field.
Definition at line 5692 of file CpModel.pb.cs.
|
static |
Field number for the "name" field.
Definition at line 5481 of file CpModel.pb.cs.
|
static |
Field number for the "no_overlap_2d" field.
Definition at line 5885 of file CpModel.pb.cs.
|
static |
Field number for the "no_overlap" field.
Definition at line 5868 of file CpModel.pb.cs.
|
static |
Field number for the "reservoir" field.
Definition at line 5835 of file CpModel.pb.cs.
|
static |
Field number for the "routes" field.
Definition at line 5772 of file CpModel.pb.cs.
|
static |
Field number for the "table" field.
Definition at line 5787 of file CpModel.pb.cs.
|
getset |
The all_diff constraint forces all variables to take different values.
Definition at line 5731 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 5578 of file CpModel.pb.cs.
|
getset |
The automaton constraint forces a sequence of variables to be accepted by an automaton.
Definition at line 5810 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 5551 of file CpModel.pb.cs.
|
getset |
The bool_or constraint forces at least one literal to be true.
Definition at line 5531 of file CpModel.pb.cs.
|
getset |
The bool_xor constraint forces an odd number of the literals to be true.
Definition at line 5621 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 5763 of file CpModel.pb.cs.
|
get |
Definition at line 5963 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 5908 of file CpModel.pb.cs.
|
staticget |
Definition at line 5376 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 5924 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 5747 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 2018, only a few constraint support enforcement:
Definition at line 5520 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. 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 5606 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 5643 of file CpModel.pb.cs.
|
getset |
The interval constraint takes a start, end, and size, and forces start + size == end.
Definition at line 5859 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 5660 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 5683 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 5826 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 5716 of file CpModel.pb.cs.
|
getset |
The lin_max constraint forces the target to equal the maximum of all linear expressions.
Definition at line 5700 of file CpModel.pb.cs.
|
getset |
For debug/logging only. Can be empty.
Definition at line 5488 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 5876 of file CpModel.pb.cs.
|
getset |
The no_overlap_2d constraint prevents a set of boxes from overlapping.
Definition at line 5891 of file CpModel.pb.cs.
|
staticget |
Definition at line 5372 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 5843 of file CpModel.pb.cs.
|
getset |
The routes constraint implements the vehicle routing problem.
Definition at line 5778 of file CpModel.pb.cs.
|
getset |
The table constraint enforces what values a tuple of variables may take.
Definition at line 5794 of file CpModel.pb.cs.