Package com.google.ortools.sat
Class RoutesConstraintProto.Builder
- java.lang.Object
-
- com.google.protobuf.AbstractMessageLite.Builder
-
- com.google.protobuf.AbstractMessage.Builder<BuilderT>
-
- com.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
- com.google.ortools.sat.RoutesConstraintProto.Builder
-
- All Implemented Interfaces:
RoutesConstraintProtoOrBuilder,com.google.protobuf.Message.Builder,com.google.protobuf.MessageLite.Builder,com.google.protobuf.MessageLiteOrBuilder,com.google.protobuf.MessageOrBuilder,java.lang.Cloneable
- Enclosing class:
- RoutesConstraintProto
public static final class RoutesConstraintProto.Builder extends com.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder> implements RoutesConstraintProtoOrBuilder
The "VRP" (Vehicle Routing Problem) constraint. The direct graph where arc #i (from tails[i] to head[i]) is present iff literals[i] is true must satisfy this set of properties: - #incoming arcs == 1 except for node 0. - #outgoing arcs == 1 except for node 0. - for node zero, #incoming arcs == #outgoing arcs. - There are no duplicate arcs. - Self-arcs are allowed except for node 0. - There is no cycle in this graph, except through node 0. Note: Currently this constraint expect all the nodes in [0, num_nodes) to have at least one incident arc. The model will be considered invalid if it is not the case. You can add self-arc fixed to one to ignore some nodes if needed. TODO(user): It is probably possible to generalize this constraint to a no-cycle in a general graph, or a no-cycle with sum incoming <= 1 and sum outgoing <= 1 (more efficient implementation). On the other hand, having this specific constraint allow us to add specific "cuts" to a VRP problem.
Protobuf typeoperations_research.sat.RoutesConstraintProto
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description RoutesConstraintProto.BuilderaddAllDemands(java.lang.Iterable<? extends java.lang.Integer> values)EXPERIMENTAL.RoutesConstraintProto.BuilderaddAllHeads(java.lang.Iterable<? extends java.lang.Integer> values)repeated int32 heads = 2;RoutesConstraintProto.BuilderaddAllLiterals(java.lang.Iterable<? extends java.lang.Integer> values)repeated int32 literals = 3;RoutesConstraintProto.BuilderaddAllTails(java.lang.Iterable<? extends java.lang.Integer> values)repeated int32 tails = 1;RoutesConstraintProto.BuilderaddDemands(int value)EXPERIMENTAL.RoutesConstraintProto.BuilderaddHeads(int value)repeated int32 heads = 2;RoutesConstraintProto.BuilderaddLiterals(int value)repeated int32 literals = 3;RoutesConstraintProto.BuilderaddRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)RoutesConstraintProto.BuilderaddTails(int value)repeated int32 tails = 1;RoutesConstraintProtobuild()RoutesConstraintProtobuildPartial()RoutesConstraintProto.Builderclear()RoutesConstraintProto.BuilderclearCapacity()int64 capacity = 5;RoutesConstraintProto.BuilderclearDemands()EXPERIMENTAL.RoutesConstraintProto.BuilderclearField(com.google.protobuf.Descriptors.FieldDescriptor field)RoutesConstraintProto.BuilderclearHeads()repeated int32 heads = 2;RoutesConstraintProto.BuilderclearLiterals()repeated int32 literals = 3;RoutesConstraintProto.BuilderclearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)RoutesConstraintProto.BuilderclearTails()repeated int32 tails = 1;RoutesConstraintProto.Builderclone()longgetCapacity()int64 capacity = 5;RoutesConstraintProtogetDefaultInstanceForType()intgetDemands(int index)EXPERIMENTAL.intgetDemandsCount()EXPERIMENTAL.java.util.List<java.lang.Integer>getDemandsList()EXPERIMENTAL.static com.google.protobuf.Descriptors.DescriptorgetDescriptor()com.google.protobuf.Descriptors.DescriptorgetDescriptorForType()intgetHeads(int index)repeated int32 heads = 2;intgetHeadsCount()repeated int32 heads = 2;java.util.List<java.lang.Integer>getHeadsList()repeated int32 heads = 2;intgetLiterals(int index)repeated int32 literals = 3;intgetLiteralsCount()repeated int32 literals = 3;java.util.List<java.lang.Integer>getLiteralsList()repeated int32 literals = 3;intgetTails(int index)repeated int32 tails = 1;intgetTailsCount()repeated int32 tails = 1;java.util.List<java.lang.Integer>getTailsList()repeated int32 tails = 1;protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTableinternalGetFieldAccessorTable()booleanisInitialized()RoutesConstraintProto.BuildermergeFrom(RoutesConstraintProto other)RoutesConstraintProto.BuildermergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)RoutesConstraintProto.BuildermergeFrom(com.google.protobuf.Message other)RoutesConstraintProto.BuildermergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)RoutesConstraintProto.BuildersetCapacity(long value)int64 capacity = 5;RoutesConstraintProto.BuildersetDemands(int index, int value)EXPERIMENTAL.RoutesConstraintProto.BuildersetField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)RoutesConstraintProto.BuildersetHeads(int index, int value)repeated int32 heads = 2;RoutesConstraintProto.BuildersetLiterals(int index, int value)repeated int32 literals = 3;RoutesConstraintProto.BuildersetRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)RoutesConstraintProto.BuildersetTails(int index, int value)repeated int32 tails = 1;RoutesConstraintProto.BuildersetUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)-
Methods inherited from class com.google.protobuf.GeneratedMessageV3.Builder
getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldBuilder, getRepeatedFieldCount, getUnknownFields, getUnknownFieldSetBuilder, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, internalGetMutableMapField, internalGetMutableMapFieldReflection, isClean, markClean, mergeUnknownLengthDelimitedField, mergeUnknownVarintField, newBuilderForField, onBuilt, onChanged, parseUnknownField, setUnknownFieldSetBuilder, setUnknownFieldsProto3
-
Methods inherited from class com.google.protobuf.AbstractMessage.Builder
findInitializationErrors, getInitializationErrorString, internalMergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString
-
Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder
addAll, addAll, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, newUninitializedMessageException
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Method Detail
-
getDescriptor
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
-
internalGetFieldAccessorTable
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
- Specified by:
internalGetFieldAccessorTablein classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
clear
public RoutesConstraintProto.Builder clear()
- Specified by:
clearin interfacecom.google.protobuf.Message.Builder- Specified by:
clearin interfacecom.google.protobuf.MessageLite.Builder- Overrides:
clearin classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
getDescriptorForType
public com.google.protobuf.Descriptors.Descriptor getDescriptorForType()
- Specified by:
getDescriptorForTypein interfacecom.google.protobuf.Message.Builder- Specified by:
getDescriptorForTypein interfacecom.google.protobuf.MessageOrBuilder- Overrides:
getDescriptorForTypein classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
getDefaultInstanceForType
public RoutesConstraintProto getDefaultInstanceForType()
- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageLiteOrBuilder- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageOrBuilder
-
build
public RoutesConstraintProto build()
- Specified by:
buildin interfacecom.google.protobuf.Message.Builder- Specified by:
buildin interfacecom.google.protobuf.MessageLite.Builder
-
buildPartial
public RoutesConstraintProto buildPartial()
- Specified by:
buildPartialin interfacecom.google.protobuf.Message.Builder- Specified by:
buildPartialin interfacecom.google.protobuf.MessageLite.Builder
-
clone
public RoutesConstraintProto.Builder clone()
- Specified by:
clonein interfacecom.google.protobuf.Message.Builder- Specified by:
clonein interfacecom.google.protobuf.MessageLite.Builder- Overrides:
clonein classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
setField
public RoutesConstraintProto.Builder setField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
- Specified by:
setFieldin interfacecom.google.protobuf.Message.Builder- Overrides:
setFieldin classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
clearField
public RoutesConstraintProto.Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field)
- Specified by:
clearFieldin interfacecom.google.protobuf.Message.Builder- Overrides:
clearFieldin classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
clearOneof
public RoutesConstraintProto.Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof)
- Specified by:
clearOneofin interfacecom.google.protobuf.Message.Builder- Overrides:
clearOneofin classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
setRepeatedField
public RoutesConstraintProto.Builder setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value)
- Specified by:
setRepeatedFieldin interfacecom.google.protobuf.Message.Builder- Overrides:
setRepeatedFieldin classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
addRepeatedField
public RoutesConstraintProto.Builder addRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value)
- Specified by:
addRepeatedFieldin interfacecom.google.protobuf.Message.Builder- Overrides:
addRepeatedFieldin classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
mergeFrom
public RoutesConstraintProto.Builder mergeFrom(com.google.protobuf.Message other)
- Specified by:
mergeFromin interfacecom.google.protobuf.Message.Builder- Overrides:
mergeFromin classcom.google.protobuf.AbstractMessage.Builder<RoutesConstraintProto.Builder>
-
mergeFrom
public RoutesConstraintProto.Builder mergeFrom(RoutesConstraintProto other)
-
isInitialized
public final boolean isInitialized()
- Specified by:
isInitializedin interfacecom.google.protobuf.MessageLiteOrBuilder- Overrides:
isInitializedin classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
mergeFrom
public RoutesConstraintProto.Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Specified by:
mergeFromin interfacecom.google.protobuf.Message.Builder- Specified by:
mergeFromin interfacecom.google.protobuf.MessageLite.Builder- Overrides:
mergeFromin classcom.google.protobuf.AbstractMessage.Builder<RoutesConstraintProto.Builder>- Throws:
java.io.IOException
-
getTailsList
public java.util.List<java.lang.Integer> getTailsList()
repeated int32 tails = 1;- Specified by:
getTailsListin interfaceRoutesConstraintProtoOrBuilder- Returns:
- A list containing the tails.
-
getTailsCount
public int getTailsCount()
repeated int32 tails = 1;- Specified by:
getTailsCountin interfaceRoutesConstraintProtoOrBuilder- Returns:
- The count of tails.
-
getTails
public int getTails(int index)
repeated int32 tails = 1;- Specified by:
getTailsin interfaceRoutesConstraintProtoOrBuilder- Parameters:
index- The index of the element to return.- Returns:
- The tails at the given index.
-
setTails
public RoutesConstraintProto.Builder setTails(int index, int value)
repeated int32 tails = 1;- Parameters:
index- The index to set the value at.value- The tails to set.- Returns:
- This builder for chaining.
-
addTails
public RoutesConstraintProto.Builder addTails(int value)
repeated int32 tails = 1;- Parameters:
value- The tails to add.- Returns:
- This builder for chaining.
-
addAllTails
public RoutesConstraintProto.Builder addAllTails(java.lang.Iterable<? extends java.lang.Integer> values)
repeated int32 tails = 1;- Parameters:
values- The tails to add.- Returns:
- This builder for chaining.
-
clearTails
public RoutesConstraintProto.Builder clearTails()
repeated int32 tails = 1;- Returns:
- This builder for chaining.
-
getHeadsList
public java.util.List<java.lang.Integer> getHeadsList()
repeated int32 heads = 2;- Specified by:
getHeadsListin interfaceRoutesConstraintProtoOrBuilder- Returns:
- A list containing the heads.
-
getHeadsCount
public int getHeadsCount()
repeated int32 heads = 2;- Specified by:
getHeadsCountin interfaceRoutesConstraintProtoOrBuilder- Returns:
- The count of heads.
-
getHeads
public int getHeads(int index)
repeated int32 heads = 2;- Specified by:
getHeadsin interfaceRoutesConstraintProtoOrBuilder- Parameters:
index- The index of the element to return.- Returns:
- The heads at the given index.
-
setHeads
public RoutesConstraintProto.Builder setHeads(int index, int value)
repeated int32 heads = 2;- Parameters:
index- The index to set the value at.value- The heads to set.- Returns:
- This builder for chaining.
-
addHeads
public RoutesConstraintProto.Builder addHeads(int value)
repeated int32 heads = 2;- Parameters:
value- The heads to add.- Returns:
- This builder for chaining.
-
addAllHeads
public RoutesConstraintProto.Builder addAllHeads(java.lang.Iterable<? extends java.lang.Integer> values)
repeated int32 heads = 2;- Parameters:
values- The heads to add.- Returns:
- This builder for chaining.
-
clearHeads
public RoutesConstraintProto.Builder clearHeads()
repeated int32 heads = 2;- Returns:
- This builder for chaining.
-
getLiteralsList
public java.util.List<java.lang.Integer> getLiteralsList()
repeated int32 literals = 3;- Specified by:
getLiteralsListin interfaceRoutesConstraintProtoOrBuilder- Returns:
- A list containing the literals.
-
getLiteralsCount
public int getLiteralsCount()
repeated int32 literals = 3;- Specified by:
getLiteralsCountin interfaceRoutesConstraintProtoOrBuilder- Returns:
- The count of literals.
-
getLiterals
public int getLiterals(int index)
repeated int32 literals = 3;- Specified by:
getLiteralsin interfaceRoutesConstraintProtoOrBuilder- Parameters:
index- The index of the element to return.- Returns:
- The literals at the given index.
-
setLiterals
public RoutesConstraintProto.Builder setLiterals(int index, int value)
repeated int32 literals = 3;- Parameters:
index- The index to set the value at.value- The literals to set.- Returns:
- This builder for chaining.
-
addLiterals
public RoutesConstraintProto.Builder addLiterals(int value)
repeated int32 literals = 3;- Parameters:
value- The literals to add.- Returns:
- This builder for chaining.
-
addAllLiterals
public RoutesConstraintProto.Builder addAllLiterals(java.lang.Iterable<? extends java.lang.Integer> values)
repeated int32 literals = 3;- Parameters:
values- The literals to add.- Returns:
- This builder for chaining.
-
clearLiterals
public RoutesConstraintProto.Builder clearLiterals()
repeated int32 literals = 3;- Returns:
- This builder for chaining.
-
getDemandsList
public java.util.List<java.lang.Integer> getDemandsList()
EXPERIMENTAL. The demands for each node, and the maximum capacity for each route. Note that this is currently only used for the LP relaxation and one need to add the corresponding constraint to enforce this outside of the LP. TODO(user): Ideally, we should be able to extract any dimension like these (i.e. capacity, route_length, etc..) automatically from the encoding. The classical way to encode that is to have "current_capacity" variables along the route and linear equations of the form: arc_literal => (current_capacity_tail + demand <= current_capacity_head)
repeated int32 demands = 4;- Specified by:
getDemandsListin interfaceRoutesConstraintProtoOrBuilder- Returns:
- A list containing the demands.
-
getDemandsCount
public int getDemandsCount()
EXPERIMENTAL. The demands for each node, and the maximum capacity for each route. Note that this is currently only used for the LP relaxation and one need to add the corresponding constraint to enforce this outside of the LP. TODO(user): Ideally, we should be able to extract any dimension like these (i.e. capacity, route_length, etc..) automatically from the encoding. The classical way to encode that is to have "current_capacity" variables along the route and linear equations of the form: arc_literal => (current_capacity_tail + demand <= current_capacity_head)
repeated int32 demands = 4;- Specified by:
getDemandsCountin interfaceRoutesConstraintProtoOrBuilder- Returns:
- The count of demands.
-
getDemands
public int getDemands(int index)
EXPERIMENTAL. The demands for each node, and the maximum capacity for each route. Note that this is currently only used for the LP relaxation and one need to add the corresponding constraint to enforce this outside of the LP. TODO(user): Ideally, we should be able to extract any dimension like these (i.e. capacity, route_length, etc..) automatically from the encoding. The classical way to encode that is to have "current_capacity" variables along the route and linear equations of the form: arc_literal => (current_capacity_tail + demand <= current_capacity_head)
repeated int32 demands = 4;- Specified by:
getDemandsin interfaceRoutesConstraintProtoOrBuilder- Parameters:
index- The index of the element to return.- Returns:
- The demands at the given index.
-
setDemands
public RoutesConstraintProto.Builder setDemands(int index, int value)
EXPERIMENTAL. The demands for each node, and the maximum capacity for each route. Note that this is currently only used for the LP relaxation and one need to add the corresponding constraint to enforce this outside of the LP. TODO(user): Ideally, we should be able to extract any dimension like these (i.e. capacity, route_length, etc..) automatically from the encoding. The classical way to encode that is to have "current_capacity" variables along the route and linear equations of the form: arc_literal => (current_capacity_tail + demand <= current_capacity_head)
repeated int32 demands = 4;- Parameters:
index- The index to set the value at.value- The demands to set.- Returns:
- This builder for chaining.
-
addDemands
public RoutesConstraintProto.Builder addDemands(int value)
EXPERIMENTAL. The demands for each node, and the maximum capacity for each route. Note that this is currently only used for the LP relaxation and one need to add the corresponding constraint to enforce this outside of the LP. TODO(user): Ideally, we should be able to extract any dimension like these (i.e. capacity, route_length, etc..) automatically from the encoding. The classical way to encode that is to have "current_capacity" variables along the route and linear equations of the form: arc_literal => (current_capacity_tail + demand <= current_capacity_head)
repeated int32 demands = 4;- Parameters:
value- The demands to add.- Returns:
- This builder for chaining.
-
addAllDemands
public RoutesConstraintProto.Builder addAllDemands(java.lang.Iterable<? extends java.lang.Integer> values)
EXPERIMENTAL. The demands for each node, and the maximum capacity for each route. Note that this is currently only used for the LP relaxation and one need to add the corresponding constraint to enforce this outside of the LP. TODO(user): Ideally, we should be able to extract any dimension like these (i.e. capacity, route_length, etc..) automatically from the encoding. The classical way to encode that is to have "current_capacity" variables along the route and linear equations of the form: arc_literal => (current_capacity_tail + demand <= current_capacity_head)
repeated int32 demands = 4;- Parameters:
values- The demands to add.- Returns:
- This builder for chaining.
-
clearDemands
public RoutesConstraintProto.Builder clearDemands()
EXPERIMENTAL. The demands for each node, and the maximum capacity for each route. Note that this is currently only used for the LP relaxation and one need to add the corresponding constraint to enforce this outside of the LP. TODO(user): Ideally, we should be able to extract any dimension like these (i.e. capacity, route_length, etc..) automatically from the encoding. The classical way to encode that is to have "current_capacity" variables along the route and linear equations of the form: arc_literal => (current_capacity_tail + demand <= current_capacity_head)
repeated int32 demands = 4;- Returns:
- This builder for chaining.
-
getCapacity
public long getCapacity()
int64 capacity = 5;- Specified by:
getCapacityin interfaceRoutesConstraintProtoOrBuilder- Returns:
- The capacity.
-
setCapacity
public RoutesConstraintProto.Builder setCapacity(long value)
int64 capacity = 5;- Parameters:
value- The capacity to set.- Returns:
- This builder for chaining.
-
clearCapacity
public RoutesConstraintProto.Builder clearCapacity()
int64 capacity = 5;- Returns:
- This builder for chaining.
-
setUnknownFields
public final RoutesConstraintProto.Builder setUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
- Specified by:
setUnknownFieldsin interfacecom.google.protobuf.Message.Builder- Overrides:
setUnknownFieldsin classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
mergeUnknownFields
public final RoutesConstraintProto.Builder mergeUnknownFields(com.google.protobuf.UnknownFieldSet unknownFields)
- Specified by:
mergeUnknownFieldsin interfacecom.google.protobuf.Message.Builder- Overrides:
mergeUnknownFieldsin classcom.google.protobuf.GeneratedMessageV3.Builder<RoutesConstraintProto.Builder>
-
-