![]() |
Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
|
Next id: 31. More...
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] |
Next id: 31.
Definition at line 5129 of file CpModel.pb.cs.
Enum of possible cases for the "constraint" oneof.
Definition at line 5700 of file CpModel.pb.cs.
|
inline |
Definition at line 5154 of file CpModel.pb.cs.
|
inline |
Definition at line 5162 of file CpModel.pb.cs.
|
inline |
Definition at line 6044 of file CpModel.pb.cs.
|
inline |
Definition at line 5735 of file CpModel.pb.cs.
|
inline |
Definition at line 5242 of file CpModel.pb.cs.
|
inline |
Definition at line 5748 of file CpModel.pb.cs.
|
inline |
Definition at line 5742 of file CpModel.pb.cs.
|
inline |
Definition at line 5786 of file CpModel.pb.cs.
|
inline |
Definition at line 6127 of file CpModel.pb.cs.
|
inline |
Definition at line 6281 of file CpModel.pb.cs.
|
inline |
Definition at line 5822 of file CpModel.pb.cs.
|
inline |
Definition at line 5828 of file CpModel.pb.cs.
|
static |
Field number for the "all_diff" field.
Definition at line 5491 of file CpModel.pb.cs.
|
static |
Field number for the "at_most_one" field.
Definition at line 5326 of file CpModel.pb.cs.
|
static |
Field number for the "automaton" field.
Definition at line 5569 of file CpModel.pb.cs.
|
static |
Field number for the "bool_and" field.
Definition at line 5306 of file CpModel.pb.cs.
|
static |
Field number for the "bool_or" field.
Definition at line 5291 of file CpModel.pb.cs.
|
static |
Field number for the "bool_xor" field.
Definition at line 5381 of file CpModel.pb.cs.
|
static |
Field number for the "circuit" field.
Definition at line 5522 of file CpModel.pb.cs.
|
static |
Field number for the "cumulative" field.
Definition at line 5666 of file CpModel.pb.cs.
|
static |
Field number for the "dummy_constraint" field.
Definition at line 5683 of file CpModel.pb.cs.
|
static |
Field number for the "element" field.
Definition at line 5506 of file CpModel.pb.cs.
|
static |
Field number for the "enforcement_literal" field.
Definition at line 5262 of file CpModel.pb.cs.
|
static |
Field number for the "exactly_one" field.
Definition at line 5353 of file CpModel.pb.cs.
|
static |
Field number for the "int_div" field.
Definition at line 5396 of file CpModel.pb.cs.
|
static |
Field number for the "interval" field.
Definition at line 5618 of file CpModel.pb.cs.
|
static |
Field number for the "int_mod" field.
Definition at line 5418 of file CpModel.pb.cs.
|
static |
Field number for the "int_prod" field.
Definition at line 5435 of file CpModel.pb.cs.
|
static |
Field number for the "inverse" field.
Definition at line 5585 of file CpModel.pb.cs.
|
static |
Field number for the "linear" field.
Definition at line 5475 of file CpModel.pb.cs.
|
static |
Field number for the "lin_max" field.
Definition at line 5458 of file CpModel.pb.cs.
|
static |
Field number for the "name" field.
Definition at line 5247 of file CpModel.pb.cs.
|
static |
Field number for the "no_overlap_2d" field.
Definition at line 5651 of file CpModel.pb.cs.
|
static |
Field number for the "no_overlap" field.
Definition at line 5634 of file CpModel.pb.cs.
|
static |
Field number for the "reservoir" field.
Definition at line 5601 of file CpModel.pb.cs.
|
static |
Field number for the "routes" field.
Definition at line 5538 of file CpModel.pb.cs.
|
static |
Field number for the "table" field.
Definition at line 5553 of file CpModel.pb.cs.
|
getset |
The all_diff constraint forces all variables to take different values.
Definition at line 5497 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 5344 of file CpModel.pb.cs.
|
getset |
The automaton constraint forces a sequence of variables to be accepted by an automaton.
Definition at line 5576 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 5317 of file CpModel.pb.cs.
|
getset |
The bool_or constraint forces at least one literal to be true.
Definition at line 5297 of file CpModel.pb.cs.
|
getset |
The bool_xor constraint forces an odd number of the literals to be true.
Definition at line 5387 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 5529 of file CpModel.pb.cs.
|
get |
Definition at line 5729 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 5674 of file CpModel.pb.cs.
|
staticget |
Definition at line 5142 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 5690 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 5513 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 5286 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 5372 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 5409 of file CpModel.pb.cs.
|
getset |
The interval constraint takes a start, end, and size, and forces start + size == end.
Definition at line 5625 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 5426 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 5449 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 5592 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 5482 of file CpModel.pb.cs.
|
getset |
The lin_max constraint forces the target to equal the maximum of all linear expressions.
Definition at line 5466 of file CpModel.pb.cs.
|
getset |
For debug/logging only. Can be empty.
Definition at line 5254 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 5642 of file CpModel.pb.cs.
|
getset |
The no_overlap_2d constraint prevents a set of boxes from overlapping.
Definition at line 5657 of file CpModel.pb.cs.
|
staticget |
Definition at line 5138 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 5609 of file CpModel.pb.cs.
|
getset |
The routes constraint implements the vehicle routing problem.
Definition at line 5544 of file CpModel.pb.cs.
|
getset |
The table constraint enforces what values a tuple of variables may take.
Definition at line 5560 of file CpModel.pb.cs.