Google OR-Tools v9.11
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 4777 of file CpModel.pb.cs.
Enum of possible cases for the "constraint" oneof.
Definition at line 5348 of file CpModel.pb.cs.
|
inline |
Definition at line 4802 of file CpModel.pb.cs.
|
inline |
Definition at line 4810 of file CpModel.pb.cs.
|
inline |
Definition at line 5692 of file CpModel.pb.cs.
|
inline |
Definition at line 5383 of file CpModel.pb.cs.
|
inline |
Definition at line 4890 of file CpModel.pb.cs.
|
inline |
Definition at line 5396 of file CpModel.pb.cs.
|
inline |
Definition at line 5390 of file CpModel.pb.cs.
|
inline |
Definition at line 5434 of file CpModel.pb.cs.
|
inline |
Definition at line 5775 of file CpModel.pb.cs.
|
inline |
Definition at line 5929 of file CpModel.pb.cs.
|
inline |
Definition at line 5470 of file CpModel.pb.cs.
|
inline |
Definition at line 5476 of file CpModel.pb.cs.
|
static |
Field number for the "all_diff" field.
Definition at line 5139 of file CpModel.pb.cs.
|
static |
Field number for the "at_most_one" field.
Definition at line 4974 of file CpModel.pb.cs.
|
static |
Field number for the "automaton" field.
Definition at line 5217 of file CpModel.pb.cs.
|
static |
Field number for the "bool_and" field.
Definition at line 4954 of file CpModel.pb.cs.
|
static |
Field number for the "bool_or" field.
Definition at line 4939 of file CpModel.pb.cs.
|
static |
Field number for the "bool_xor" field.
Definition at line 5029 of file CpModel.pb.cs.
|
static |
Field number for the "circuit" field.
Definition at line 5170 of file CpModel.pb.cs.
|
static |
Field number for the "cumulative" field.
Definition at line 5314 of file CpModel.pb.cs.
|
static |
Field number for the "dummy_constraint" field.
Definition at line 5331 of file CpModel.pb.cs.
|
static |
Field number for the "element" field.
Definition at line 5154 of file CpModel.pb.cs.
|
static |
Field number for the "enforcement_literal" field.
Definition at line 4910 of file CpModel.pb.cs.
|
static |
Field number for the "exactly_one" field.
Definition at line 5001 of file CpModel.pb.cs.
|
static |
Field number for the "int_div" field.
Definition at line 5044 of file CpModel.pb.cs.
|
static |
Field number for the "interval" field.
Definition at line 5266 of file CpModel.pb.cs.
|
static |
Field number for the "int_mod" field.
Definition at line 5066 of file CpModel.pb.cs.
|
static |
Field number for the "int_prod" field.
Definition at line 5083 of file CpModel.pb.cs.
|
static |
Field number for the "inverse" field.
Definition at line 5233 of file CpModel.pb.cs.
|
static |
Field number for the "linear" field.
Definition at line 5123 of file CpModel.pb.cs.
|
static |
Field number for the "lin_max" field.
Definition at line 5106 of file CpModel.pb.cs.
|
static |
Field number for the "name" field.
Definition at line 4895 of file CpModel.pb.cs.
|
static |
Field number for the "no_overlap_2d" field.
Definition at line 5299 of file CpModel.pb.cs.
|
static |
Field number for the "no_overlap" field.
Definition at line 5282 of file CpModel.pb.cs.
|
static |
Field number for the "reservoir" field.
Definition at line 5249 of file CpModel.pb.cs.
|
static |
Field number for the "routes" field.
Definition at line 5186 of file CpModel.pb.cs.
|
static |
Field number for the "table" field.
Definition at line 5201 of file CpModel.pb.cs.
|
getset |
The all_diff constraint forces all variables to take different values.
Definition at line 5145 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 4992 of file CpModel.pb.cs.
|
getset |
The automaton constraint forces a sequence of variables to be accepted by an automaton.
Definition at line 5224 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 4965 of file CpModel.pb.cs.
|
getset |
The bool_or constraint forces at least one literal to be true.
Definition at line 4945 of file CpModel.pb.cs.
|
getset |
The bool_xor constraint forces an odd number of the literals to be true.
Definition at line 5035 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 5177 of file CpModel.pb.cs.
|
get |
Definition at line 5377 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 5322 of file CpModel.pb.cs.
|
staticget |
Definition at line 4790 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 5338 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 5161 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 4934 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 5020 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 5057 of file CpModel.pb.cs.
|
getset |
The interval constraint takes a start, end, and size, and forces start + size == end.
Definition at line 5273 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 5074 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 5097 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 5240 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 5130 of file CpModel.pb.cs.
|
getset |
The lin_max constraint forces the target to equal the maximum of all linear expressions.
Definition at line 5114 of file CpModel.pb.cs.
|
getset |
For debug/logging only. Can be empty.
Definition at line 4902 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 5290 of file CpModel.pb.cs.
|
getset |
The no_overlap_2d constraint prevents a set of boxes from overlapping.
Definition at line 5305 of file CpModel.pb.cs.
|
staticget |
Definition at line 4786 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 5257 of file CpModel.pb.cs.
|
getset |
The routes constraint implements the vehicle routing problem.
Definition at line 5192 of file CpModel.pb.cs.
|
getset |
The table constraint enforces what values a tuple of variables may take.
Definition at line 5208 of file CpModel.pb.cs.