Package com.google.ortools.sat
Class RoutesConstraintProto
- java.lang.Object
-
- com.google.protobuf.AbstractMessageLite
-
- com.google.protobuf.AbstractMessage
-
- com.google.protobuf.GeneratedMessageV3
-
- com.google.ortools.sat.RoutesConstraintProto
-
- All Implemented Interfaces:
RoutesConstraintProtoOrBuilder,com.google.protobuf.Message,com.google.protobuf.MessageLite,com.google.protobuf.MessageLiteOrBuilder,com.google.protobuf.MessageOrBuilder,java.io.Serializable
public final class RoutesConstraintProto extends com.google.protobuf.GeneratedMessageV3 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- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRoutesConstraintProto.BuilderThe "VRP" (Vehicle Routing Problem) constraint.-
Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3
com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>,BuilderT extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageT,BuilderT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageT>>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
-
-
Field Summary
Fields Modifier and Type Field Description static intCAPACITY_FIELD_NUMBERstatic intDEMANDS_FIELD_NUMBERstatic intHEADS_FIELD_NUMBERstatic intLITERALS_FIELD_NUMBERstatic intTAILS_FIELD_NUMBER
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)longgetCapacity()int64 capacity = 5;static RoutesConstraintProtogetDefaultInstance()RoutesConstraintProtogetDefaultInstanceForType()intgetDemands(int index)EXPERIMENTAL.intgetDemandsCount()EXPERIMENTAL.java.util.List<java.lang.Integer>getDemandsList()EXPERIMENTAL.static com.google.protobuf.Descriptors.DescriptorgetDescriptor()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;com.google.protobuf.Parser<RoutesConstraintProto>getParserForType()intgetSerializedSize()intgetTails(int index)repeated int32 tails = 1;intgetTailsCount()repeated int32 tails = 1;java.util.List<java.lang.Integer>getTailsList()repeated int32 tails = 1;inthashCode()protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTableinternalGetFieldAccessorTable()booleanisInitialized()static RoutesConstraintProto.BuildernewBuilder()static RoutesConstraintProto.BuildernewBuilder(RoutesConstraintProto prototype)RoutesConstraintProto.BuildernewBuilderForType()protected RoutesConstraintProto.BuildernewBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)protected java.lang.ObjectnewInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)static RoutesConstraintProtoparseDelimitedFrom(java.io.InputStream input)static RoutesConstraintProtoparseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static RoutesConstraintProtoparseFrom(byte[] data)static RoutesConstraintProtoparseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static RoutesConstraintProtoparseFrom(com.google.protobuf.ByteString data)static RoutesConstraintProtoparseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static RoutesConstraintProtoparseFrom(com.google.protobuf.CodedInputStream input)static RoutesConstraintProtoparseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static RoutesConstraintProtoparseFrom(java.io.InputStream input)static RoutesConstraintProtoparseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static RoutesConstraintProtoparseFrom(java.nio.ByteBuffer data)static RoutesConstraintProtoparseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static com.google.protobuf.Parser<RoutesConstraintProto>parser()RoutesConstraintProto.BuildertoBuilder()voidwriteTo(com.google.protobuf.CodedOutputStream output)-
Methods inherited from class com.google.protobuf.GeneratedMessageV3
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, internalGetMapField, internalGetMapFieldReflection, isStringEmpty, makeExtensionsImmutable, makeMutableCopy, makeMutableCopy, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
-
Methods inherited from class com.google.protobuf.AbstractMessage
findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
-
Methods inherited from class com.google.protobuf.AbstractMessageLite
addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
TAILS_FIELD_NUMBER
public static final int TAILS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
HEADS_FIELD_NUMBER
public static final int HEADS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
LITERALS_FIELD_NUMBER
public static final int LITERALS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
DEMANDS_FIELD_NUMBER
public static final int DEMANDS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
CAPACITY_FIELD_NUMBER
public static final int CAPACITY_FIELD_NUMBER
- See Also:
- Constant Field Values
-
-
Method Detail
-
newInstance
protected java.lang.Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
- Overrides:
newInstancein classcom.google.protobuf.GeneratedMessageV3
-
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
-
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.
-
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.
-
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.
-
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.
-
getCapacity
public long getCapacity()
int64 capacity = 5;- Specified by:
getCapacityin interfaceRoutesConstraintProtoOrBuilder- Returns:
- The capacity.
-
isInitialized
public final boolean isInitialized()
- Specified by:
isInitializedin interfacecom.google.protobuf.MessageLiteOrBuilder- Overrides:
isInitializedin classcom.google.protobuf.GeneratedMessageV3
-
writeTo
public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException- Specified by:
writeToin interfacecom.google.protobuf.MessageLite- Overrides:
writeToin classcom.google.protobuf.GeneratedMessageV3- Throws:
java.io.IOException
-
getSerializedSize
public int getSerializedSize()
- Specified by:
getSerializedSizein interfacecom.google.protobuf.MessageLite- Overrides:
getSerializedSizein classcom.google.protobuf.GeneratedMessageV3
-
equals
public boolean equals(java.lang.Object obj)
- Specified by:
equalsin interfacecom.google.protobuf.Message- Overrides:
equalsin classcom.google.protobuf.AbstractMessage
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacecom.google.protobuf.Message- Overrides:
hashCodein classcom.google.protobuf.AbstractMessage
-
parseFrom
public static RoutesConstraintProto parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RoutesConstraintProto parseFrom(java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RoutesConstraintProto parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RoutesConstraintProto parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RoutesConstraintProto parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RoutesConstraintProto parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static RoutesConstraintProto parseFrom(java.io.InputStream input) throws java.io.IOException
- Throws:
java.io.IOException
-
parseFrom
public static RoutesConstraintProto parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Throws:
java.io.IOException
-
parseDelimitedFrom
public static RoutesConstraintProto parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException
- Throws:
java.io.IOException
-
parseDelimitedFrom
public static RoutesConstraintProto parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Throws:
java.io.IOException
-
parseFrom
public static RoutesConstraintProto parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException
- Throws:
java.io.IOException
-
parseFrom
public static RoutesConstraintProto parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException
- Throws:
java.io.IOException
-
newBuilderForType
public RoutesConstraintProto.Builder newBuilderForType()
- Specified by:
newBuilderForTypein interfacecom.google.protobuf.Message- Specified by:
newBuilderForTypein interfacecom.google.protobuf.MessageLite
-
newBuilder
public static RoutesConstraintProto.Builder newBuilder()
-
newBuilder
public static RoutesConstraintProto.Builder newBuilder(RoutesConstraintProto prototype)
-
toBuilder
public RoutesConstraintProto.Builder toBuilder()
- Specified by:
toBuilderin interfacecom.google.protobuf.Message- Specified by:
toBuilderin interfacecom.google.protobuf.MessageLite
-
newBuilderForType
protected RoutesConstraintProto.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
- Specified by:
newBuilderForTypein classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstance
public static RoutesConstraintProto getDefaultInstance()
-
parser
public static com.google.protobuf.Parser<RoutesConstraintProto> parser()
-
getParserForType
public com.google.protobuf.Parser<RoutesConstraintProto> getParserForType()
- Specified by:
getParserForTypein interfacecom.google.protobuf.Message- Specified by:
getParserForTypein interfacecom.google.protobuf.MessageLite- Overrides:
getParserForTypein classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstanceForType
public RoutesConstraintProto getDefaultInstanceForType()
- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageLiteOrBuilder- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageOrBuilder
-
-