Class ShipmentModel (1.17.0)

public final class ShipmentModel extends GeneratedMessageV3 implements ShipmentModelOrBuilder

A shipment model contains a set of shipments which must be performed by a set of vehicles, while minimizing the overall cost, which is the sum of:

  • the cost of routing the vehicles (sum of cost per total time, cost per travel time, and fixed cost over all vehicles).
  • the unperformed shipment penalties.
  • the cost of the global duration of the shipments

Protobuf type google.cloud.optimization.v1.ShipmentModel

Static Fields

BREAK_RULES_FIELD_NUMBER

public static final int BREAK_RULES_FIELD_NUMBER
Field Value
TypeDescription
int

DURATION_DISTANCE_MATRICES_FIELD_NUMBER

public static final int DURATION_DISTANCE_MATRICES_FIELD_NUMBER
Field Value
TypeDescription
int

DURATION_DISTANCE_MATRIX_DST_TAGS_FIELD_NUMBER

public static final int DURATION_DISTANCE_MATRIX_DST_TAGS_FIELD_NUMBER
Field Value
TypeDescription
int

DURATION_DISTANCE_MATRIX_SRC_TAGS_FIELD_NUMBER

public static final int DURATION_DISTANCE_MATRIX_SRC_TAGS_FIELD_NUMBER
Field Value
TypeDescription
int

GLOBAL_DURATION_COST_PER_HOUR_FIELD_NUMBER

public static final int GLOBAL_DURATION_COST_PER_HOUR_FIELD_NUMBER
Field Value
TypeDescription
int

GLOBAL_END_TIME_FIELD_NUMBER

public static final int GLOBAL_END_TIME_FIELD_NUMBER
Field Value
TypeDescription
int

GLOBAL_START_TIME_FIELD_NUMBER

public static final int GLOBAL_START_TIME_FIELD_NUMBER
Field Value
TypeDescription
int

MAX_ACTIVE_VEHICLES_FIELD_NUMBER

public static final int MAX_ACTIVE_VEHICLES_FIELD_NUMBER
Field Value
TypeDescription
int

PRECEDENCE_RULES_FIELD_NUMBER

public static final int PRECEDENCE_RULES_FIELD_NUMBER
Field Value
TypeDescription
int

SHIPMENTS_FIELD_NUMBER

public static final int SHIPMENTS_FIELD_NUMBER
Field Value
TypeDescription
int

SHIPMENT_TYPE_INCOMPATIBILITIES_FIELD_NUMBER

public static final int SHIPMENT_TYPE_INCOMPATIBILITIES_FIELD_NUMBER
Field Value
TypeDescription
int

SHIPMENT_TYPE_REQUIREMENTS_FIELD_NUMBER

public static final int SHIPMENT_TYPE_REQUIREMENTS_FIELD_NUMBER
Field Value
TypeDescription
int

TRANSITION_ATTRIBUTES_FIELD_NUMBER

public static final int TRANSITION_ATTRIBUTES_FIELD_NUMBER
Field Value
TypeDescription
int

VEHICLES_FIELD_NUMBER

public static final int VEHICLES_FIELD_NUMBER
Field Value
TypeDescription
int

Static Methods

getDefaultInstance()

public static ShipmentModel getDefaultInstance()
Returns
TypeDescription
ShipmentModel

getDescriptor()

public static final Descriptors.Descriptor getDescriptor()
Returns
TypeDescription
Descriptor

newBuilder()

public static ShipmentModel.Builder newBuilder()
Returns
TypeDescription
ShipmentModel.Builder

newBuilder(ShipmentModel prototype)

public static ShipmentModel.Builder newBuilder(ShipmentModel prototype)
Parameter
NameDescription
prototypeShipmentModel
Returns
TypeDescription
ShipmentModel.Builder

parseDelimitedFrom(InputStream input)

public static ShipmentModel parseDelimitedFrom(InputStream input)
Parameter
NameDescription
inputInputStream
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
IOException

parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static ShipmentModel parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
IOException

parseFrom(byte[] data)

public static ShipmentModel parseFrom(byte[] data)
Parameter
NameDescription
databyte[]
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)

public static ShipmentModel parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
databyte[]
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteString data)

public static ShipmentModel parseFrom(ByteString data)
Parameter
NameDescription
dataByteString
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)

public static ShipmentModel parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
dataByteString
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(CodedInputStream input)

public static ShipmentModel parseFrom(CodedInputStream input)
Parameter
NameDescription
inputCodedInputStream
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
IOException

parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

public static ShipmentModel parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputCodedInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
IOException

parseFrom(InputStream input)

public static ShipmentModel parseFrom(InputStream input)
Parameter
NameDescription
inputInputStream
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
IOException

parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static ShipmentModel parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
IOException

parseFrom(ByteBuffer data)

public static ShipmentModel parseFrom(ByteBuffer data)
Parameter
NameDescription
dataByteBuffer
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)

public static ShipmentModel parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
dataByteBuffer
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
ShipmentModel
Exceptions
TypeDescription
InvalidProtocolBufferException

parser()

public static Parser<ShipmentModel> parser()
Returns
TypeDescription
Parser<ShipmentModel>

Methods

equals(Object obj)

public boolean equals(Object obj)
Parameter
NameDescription
objObject
Returns
TypeDescription
boolean
Overrides

getBreakRules(int index)

public ShipmentModel.BreakRule getBreakRules(int index)

Deprecated: No longer used. Set of break rules used in the model. Each vehicle specifies the BreakRule that applies to it via the Vehicle.break_rule_indices field (which must be a singleton).

repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentModel.BreakRule

getBreakRulesCount()

public int getBreakRulesCount()

Deprecated: No longer used. Set of break rules used in the model. Each vehicle specifies the BreakRule that applies to it via the Vehicle.break_rule_indices field (which must be a singleton).

repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];

Returns
TypeDescription
int

getBreakRulesList()

public List<ShipmentModel.BreakRule> getBreakRulesList()

Deprecated: No longer used. Set of break rules used in the model. Each vehicle specifies the BreakRule that applies to it via the Vehicle.break_rule_indices field (which must be a singleton).

repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];

Returns
TypeDescription
List<BreakRule>

getBreakRulesOrBuilder(int index)

public ShipmentModel.BreakRuleOrBuilder getBreakRulesOrBuilder(int index)

Deprecated: No longer used. Set of break rules used in the model. Each vehicle specifies the BreakRule that applies to it via the Vehicle.break_rule_indices field (which must be a singleton).

repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentModel.BreakRuleOrBuilder

getBreakRulesOrBuilderList()

public List<? extends ShipmentModel.BreakRuleOrBuilder> getBreakRulesOrBuilderList()

Deprecated: No longer used. Set of break rules used in the model. Each vehicle specifies the BreakRule that applies to it via the Vehicle.break_rule_indices field (which must be a singleton).

repeated .google.cloud.optimization.v1.ShipmentModel.BreakRule break_rules = 15 [deprecated = true];

Returns
TypeDescription
List<? extends com.google.cloud.optimization.v1.ShipmentModel.BreakRuleOrBuilder>

getDefaultInstanceForType()

public ShipmentModel getDefaultInstanceForType()
Returns
TypeDescription
ShipmentModel

getDurationDistanceMatrices(int index)

public ShipmentModel.DurationDistanceMatrix getDurationDistanceMatrices(int index)

Specifies duration and distance matrices used in the model. If this field is empty, Google Maps or geodesic distances will be used instead, depending on the value of the use_geodesic_distances field. If it is not empty, use_geodesic_distances cannot be true and neither duration_distance_matrix_src_tags nor duration_distance_matrix_dst_tags can be empty.

Usage examples:

  • There are two locations: locA and locB.
  • 1 vehicle starting its route at locA and ending it at locA.
  • 1 pickup visit request at locB.

    ` model { vehicles { start_tags: "locA" end_tags: "locA" } shipments { pickups { tags: "locB" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_dst_tags: "locA" duration_distance_matrix_dst_tags: "locB" duration_distance_matrices { rows { # from: locA durations { seconds: 0 } meters: 0 # to: locA durations { seconds: 100 } meters: 1000 # to: locB } rows { # from: locB durations { seconds: 102 } meters: 990 # to: locA durations { seconds: 0 } meters: 0 # to: locB } } }

  • There are three locations: locA, locB and locC.

  • 1 vehicle starting its route at locA and ending it at locB, using matrix "fast".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "slow".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "fast".
  • 1 pickup visit request at locC.

    model { vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" } shipments { pickups { tags: "locC" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_src_tags: "locC" duration_distance_matrix_dst_tags: "locB" duration_distance_matrix_dst_tags: "locC" duration_distance_matrices { vehicle_start_tag: "fast" rows { # from: locA durations { seconds: 1000 } meters: 2000 # to: locB durations { seconds: 600 } meters: 1000 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 700 } meters: 1200 # to: locC } rows { # from: locC durations { seconds: 702 } meters: 1190 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } duration_distance_matrices { vehicle_start_tag: "slow" rows { # from: locA durations { seconds: 1800 } meters: 2001 # to: locB durations { seconds: 900 } meters: 1002 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 1000 } meters: 1202 # to: locC } rows { # from: locC durations { seconds: 1001 } meters: 1195 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } } `

repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentModel.DurationDistanceMatrix

getDurationDistanceMatricesCount()

public int getDurationDistanceMatricesCount()

Specifies duration and distance matrices used in the model. If this field is empty, Google Maps or geodesic distances will be used instead, depending on the value of the use_geodesic_distances field. If it is not empty, use_geodesic_distances cannot be true and neither duration_distance_matrix_src_tags nor duration_distance_matrix_dst_tags can be empty.

Usage examples:

  • There are two locations: locA and locB.
  • 1 vehicle starting its route at locA and ending it at locA.
  • 1 pickup visit request at locB.

    ` model { vehicles { start_tags: "locA" end_tags: "locA" } shipments { pickups { tags: "locB" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_dst_tags: "locA" duration_distance_matrix_dst_tags: "locB" duration_distance_matrices { rows { # from: locA durations { seconds: 0 } meters: 0 # to: locA durations { seconds: 100 } meters: 1000 # to: locB } rows { # from: locB durations { seconds: 102 } meters: 990 # to: locA durations { seconds: 0 } meters: 0 # to: locB } } }

  • There are three locations: locA, locB and locC.

  • 1 vehicle starting its route at locA and ending it at locB, using matrix "fast".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "slow".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "fast".
  • 1 pickup visit request at locC.

    model { vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" } shipments { pickups { tags: "locC" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_src_tags: "locC" duration_distance_matrix_dst_tags: "locB" duration_distance_matrix_dst_tags: "locC" duration_distance_matrices { vehicle_start_tag: "fast" rows { # from: locA durations { seconds: 1000 } meters: 2000 # to: locB durations { seconds: 600 } meters: 1000 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 700 } meters: 1200 # to: locC } rows { # from: locC durations { seconds: 702 } meters: 1190 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } duration_distance_matrices { vehicle_start_tag: "slow" rows { # from: locA durations { seconds: 1800 } meters: 2001 # to: locB durations { seconds: 900 } meters: 1002 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 1000 } meters: 1202 # to: locC } rows { # from: locC durations { seconds: 1001 } meters: 1195 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } } `

repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;

Returns
TypeDescription
int

getDurationDistanceMatricesList()

public List<ShipmentModel.DurationDistanceMatrix> getDurationDistanceMatricesList()

Specifies duration and distance matrices used in the model. If this field is empty, Google Maps or geodesic distances will be used instead, depending on the value of the use_geodesic_distances field. If it is not empty, use_geodesic_distances cannot be true and neither duration_distance_matrix_src_tags nor duration_distance_matrix_dst_tags can be empty.

Usage examples:

  • There are two locations: locA and locB.
  • 1 vehicle starting its route at locA and ending it at locA.
  • 1 pickup visit request at locB.

    ` model { vehicles { start_tags: "locA" end_tags: "locA" } shipments { pickups { tags: "locB" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_dst_tags: "locA" duration_distance_matrix_dst_tags: "locB" duration_distance_matrices { rows { # from: locA durations { seconds: 0 } meters: 0 # to: locA durations { seconds: 100 } meters: 1000 # to: locB } rows { # from: locB durations { seconds: 102 } meters: 990 # to: locA durations { seconds: 0 } meters: 0 # to: locB } } }

  • There are three locations: locA, locB and locC.

  • 1 vehicle starting its route at locA and ending it at locB, using matrix "fast".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "slow".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "fast".
  • 1 pickup visit request at locC.

    model { vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" } shipments { pickups { tags: "locC" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_src_tags: "locC" duration_distance_matrix_dst_tags: "locB" duration_distance_matrix_dst_tags: "locC" duration_distance_matrices { vehicle_start_tag: "fast" rows { # from: locA durations { seconds: 1000 } meters: 2000 # to: locB durations { seconds: 600 } meters: 1000 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 700 } meters: 1200 # to: locC } rows { # from: locC durations { seconds: 702 } meters: 1190 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } duration_distance_matrices { vehicle_start_tag: "slow" rows { # from: locA durations { seconds: 1800 } meters: 2001 # to: locB durations { seconds: 900 } meters: 1002 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 1000 } meters: 1202 # to: locC } rows { # from: locC durations { seconds: 1001 } meters: 1195 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } } `

repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;

Returns
TypeDescription
List<DurationDistanceMatrix>

getDurationDistanceMatricesOrBuilder(int index)

public ShipmentModel.DurationDistanceMatrixOrBuilder getDurationDistanceMatricesOrBuilder(int index)

Specifies duration and distance matrices used in the model. If this field is empty, Google Maps or geodesic distances will be used instead, depending on the value of the use_geodesic_distances field. If it is not empty, use_geodesic_distances cannot be true and neither duration_distance_matrix_src_tags nor duration_distance_matrix_dst_tags can be empty.

Usage examples:

  • There are two locations: locA and locB.
  • 1 vehicle starting its route at locA and ending it at locA.
  • 1 pickup visit request at locB.

    ` model { vehicles { start_tags: "locA" end_tags: "locA" } shipments { pickups { tags: "locB" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_dst_tags: "locA" duration_distance_matrix_dst_tags: "locB" duration_distance_matrices { rows { # from: locA durations { seconds: 0 } meters: 0 # to: locA durations { seconds: 100 } meters: 1000 # to: locB } rows { # from: locB durations { seconds: 102 } meters: 990 # to: locA durations { seconds: 0 } meters: 0 # to: locB } } }

  • There are three locations: locA, locB and locC.

  • 1 vehicle starting its route at locA and ending it at locB, using matrix "fast".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "slow".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "fast".
  • 1 pickup visit request at locC.

    model { vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" } shipments { pickups { tags: "locC" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_src_tags: "locC" duration_distance_matrix_dst_tags: "locB" duration_distance_matrix_dst_tags: "locC" duration_distance_matrices { vehicle_start_tag: "fast" rows { # from: locA durations { seconds: 1000 } meters: 2000 # to: locB durations { seconds: 600 } meters: 1000 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 700 } meters: 1200 # to: locC } rows { # from: locC durations { seconds: 702 } meters: 1190 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } duration_distance_matrices { vehicle_start_tag: "slow" rows { # from: locA durations { seconds: 1800 } meters: 2001 # to: locB durations { seconds: 900 } meters: 1002 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 1000 } meters: 1202 # to: locC } rows { # from: locC durations { seconds: 1001 } meters: 1195 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } } `

repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentModel.DurationDistanceMatrixOrBuilder

getDurationDistanceMatricesOrBuilderList()

public List<? extends ShipmentModel.DurationDistanceMatrixOrBuilder> getDurationDistanceMatricesOrBuilderList()

Specifies duration and distance matrices used in the model. If this field is empty, Google Maps or geodesic distances will be used instead, depending on the value of the use_geodesic_distances field. If it is not empty, use_geodesic_distances cannot be true and neither duration_distance_matrix_src_tags nor duration_distance_matrix_dst_tags can be empty.

Usage examples:

  • There are two locations: locA and locB.
  • 1 vehicle starting its route at locA and ending it at locA.
  • 1 pickup visit request at locB.

    ` model { vehicles { start_tags: "locA" end_tags: "locA" } shipments { pickups { tags: "locB" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_dst_tags: "locA" duration_distance_matrix_dst_tags: "locB" duration_distance_matrices { rows { # from: locA durations { seconds: 0 } meters: 0 # to: locA durations { seconds: 100 } meters: 1000 # to: locB } rows { # from: locB durations { seconds: 102 } meters: 990 # to: locA durations { seconds: 0 } meters: 0 # to: locB } } }

  • There are three locations: locA, locB and locC.

  • 1 vehicle starting its route at locA and ending it at locB, using matrix "fast".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "slow".
  • 1 vehicle starting its route at locB and ending it at locB, using matrix "fast".
  • 1 pickup visit request at locC.

    model { vehicles { start_tags: "locA" end_tags: "locB" start_tags: "fast" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "slow" } vehicles { start_tags: "locB" end_tags: "locB" start_tags: "fast" } shipments { pickups { tags: "locC" } } duration_distance_matrix_src_tags: "locA" duration_distance_matrix_src_tags: "locB" duration_distance_matrix_src_tags: "locC" duration_distance_matrix_dst_tags: "locB" duration_distance_matrix_dst_tags: "locC" duration_distance_matrices { vehicle_start_tag: "fast" rows { # from: locA durations { seconds: 1000 } meters: 2000 # to: locB durations { seconds: 600 } meters: 1000 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 700 } meters: 1200 # to: locC } rows { # from: locC durations { seconds: 702 } meters: 1190 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } duration_distance_matrices { vehicle_start_tag: "slow" rows { # from: locA durations { seconds: 1800 } meters: 2001 # to: locB durations { seconds: 900 } meters: 1002 # to: locC } rows { # from: locB durations { seconds: 0 } meters: 0 # to: locB durations { seconds: 1000 } meters: 1202 # to: locC } rows { # from: locC durations { seconds: 1001 } meters: 1195 # to: locB durations { seconds: 0 } meters: 0 # to: locC } } } `

repeated .google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrix duration_distance_matrices = 8;

Returns
TypeDescription
List<? extends com.google.cloud.optimization.v1.ShipmentModel.DurationDistanceMatrixOrBuilder>

getDurationDistanceMatrixDstTags(int index)

public String getDurationDistanceMatrixDstTags(int index)

Tags defining the destinations of the duration and distance matrices; duration_distance_matrices(i).rows(j).durations(k) (resp. duration_distance_matrices(i).rows(j).meters(k)) defines the duration (resp. the distance) of the travel from visits with tag duration_distance_matrix_src_tags(j) to visits with tag duration_distance_matrix_dst_tags(k) in matrix i.

Tags correspond to VisitRequest.tags or Vehicle.start_tags. A given VisitRequest or Vehicle must match exactly one tag in this field. Note that a Vehicle's source, destination and matrix tags may be the same; similarly a VisitRequest's source and destination tags may be the same. All tags must be different and cannot be empty strings. If this field is not empty, then duration_distance_matrices must not be empty.

repeated string duration_distance_matrix_dst_tags = 10;

Parameter
NameDescription
indexint

The index of the element to return.

Returns
TypeDescription
String

The durationDistanceMatrixDstTags at the given index.

getDurationDistanceMatrixDstTagsBytes(int index)

public ByteString getDurationDistanceMatrixDstTagsBytes(int index)

Tags defining the destinations of the duration and distance matrices; duration_distance_matrices(i).rows(j).durations(k) (resp. duration_distance_matrices(i).rows(j).meters(k)) defines the duration (resp. the distance) of the travel from visits with tag duration_distance_matrix_src_tags(j) to visits with tag duration_distance_matrix_dst_tags(k) in matrix i.

Tags correspond to VisitRequest.tags or Vehicle.start_tags. A given VisitRequest or Vehicle must match exactly one tag in this field. Note that a Vehicle's source, destination and matrix tags may be the same; similarly a VisitRequest's source and destination tags may be the same. All tags must be different and cannot be empty strings. If this field is not empty, then duration_distance_matrices must not be empty.

repeated string duration_distance_matrix_dst_tags = 10;

Parameter
NameDescription
indexint

The index of the value to return.

Returns
TypeDescription
ByteString

The bytes of the durationDistanceMatrixDstTags at the given index.

getDurationDistanceMatrixDstTagsCount()

public int getDurationDistanceMatrixDstTagsCount()

Tags defining the destinations of the duration and distance matrices; duration_distance_matrices(i).rows(j).durations(k) (resp. duration_distance_matrices(i).rows(j).meters(k)) defines the duration (resp. the distance) of the travel from visits with tag duration_distance_matrix_src_tags(j) to visits with tag duration_distance_matrix_dst_tags(k) in matrix i.

Tags correspond to VisitRequest.tags or Vehicle.start_tags. A given VisitRequest or Vehicle must match exactly one tag in this field. Note that a Vehicle's source, destination and matrix tags may be the same; similarly a VisitRequest's source and destination tags may be the same. All tags must be different and cannot be empty strings. If this field is not empty, then duration_distance_matrices must not be empty.

repeated string duration_distance_matrix_dst_tags = 10;

Returns
TypeDescription
int

The count of durationDistanceMatrixDstTags.

getDurationDistanceMatrixDstTagsList()

public ProtocolStringList getDurationDistanceMatrixDstTagsList()

Tags defining the destinations of the duration and distance matrices; duration_distance_matrices(i).rows(j).durations(k) (resp. duration_distance_matrices(i).rows(j).meters(k)) defines the duration (resp. the distance) of the travel from visits with tag duration_distance_matrix_src_tags(j) to visits with tag duration_distance_matrix_dst_tags(k) in matrix i.

Tags correspond to VisitRequest.tags or Vehicle.start_tags. A given VisitRequest or Vehicle must match exactly one tag in this field. Note that a Vehicle's source, destination and matrix tags may be the same; similarly a VisitRequest's source and destination tags may be the same. All tags must be different and cannot be empty strings. If this field is not empty, then duration_distance_matrices must not be empty.

repeated string duration_distance_matrix_dst_tags = 10;

Returns
TypeDescription
ProtocolStringList

A list containing the durationDistanceMatrixDstTags.

getDurationDistanceMatrixSrcTags(int index)

public String getDurationDistanceMatrixSrcTags(int index)

Tags defining the sources of the duration and distance matrices; duration_distance_matrices(i).rows(j) defines durations and distances from visits with tag duration_distance_matrix_src_tags(j) to other visits in matrix i.

Tags correspond to VisitRequest.tags or Vehicle.start_tags. A given VisitRequest or Vehicle must match exactly one tag in this field. Note that a Vehicle's source, destination and matrix tags may be the same; similarly a VisitRequest's source and destination tags may be the same. All tags must be different and cannot be empty strings. If this field is not empty, then duration_distance_matrices must not be empty.

repeated string duration_distance_matrix_src_tags = 9;

Parameter
NameDescription
indexint

The index of the element to return.

Returns
TypeDescription
String

The durationDistanceMatrixSrcTags at the given index.

getDurationDistanceMatrixSrcTagsBytes(int index)

public ByteString getDurationDistanceMatrixSrcTagsBytes(int index)

Tags defining the sources of the duration and distance matrices; duration_distance_matrices(i).rows(j) defines durations and distances from visits with tag duration_distance_matrix_src_tags(j) to other visits in matrix i.

Tags correspond to VisitRequest.tags or Vehicle.start_tags. A given VisitRequest or Vehicle must match exactly one tag in this field. Note that a Vehicle's source, destination and matrix tags may be the same; similarly a VisitRequest's source and destination tags may be the same. All tags must be different and cannot be empty strings. If this field is not empty, then duration_distance_matrices must not be empty.

repeated string duration_distance_matrix_src_tags = 9;

Parameter
NameDescription
indexint

The index of the value to return.

Returns
TypeDescription
ByteString

The bytes of the durationDistanceMatrixSrcTags at the given index.

getDurationDistanceMatrixSrcTagsCount()

public int getDurationDistanceMatrixSrcTagsCount()

Tags defining the sources of the duration and distance matrices; duration_distance_matrices(i).rows(j) defines durations and distances from visits with tag duration_distance_matrix_src_tags(j) to other visits in matrix i.

Tags correspond to VisitRequest.tags or Vehicle.start_tags. A given VisitRequest or Vehicle must match exactly one tag in this field. Note that a Vehicle's source, destination and matrix tags may be the same; similarly a VisitRequest's source and destination tags may be the same. All tags must be different and cannot be empty strings. If this field is not empty, then duration_distance_matrices must not be empty.

repeated string duration_distance_matrix_src_tags = 9;

Returns
TypeDescription
int

The count of durationDistanceMatrixSrcTags.

getDurationDistanceMatrixSrcTagsList()

public ProtocolStringList getDurationDistanceMatrixSrcTagsList()

Tags defining the sources of the duration and distance matrices; duration_distance_matrices(i).rows(j) defines durations and distances from visits with tag duration_distance_matrix_src_tags(j) to other visits in matrix i.

Tags correspond to VisitRequest.tags or Vehicle.start_tags. A given VisitRequest or Vehicle must match exactly one tag in this field. Note that a Vehicle's source, destination and matrix tags may be the same; similarly a VisitRequest's source and destination tags may be the same. All tags must be different and cannot be empty strings. If this field is not empty, then duration_distance_matrices must not be empty.

repeated string duration_distance_matrix_src_tags = 9;

Returns
TypeDescription
ProtocolStringList

A list containing the durationDistanceMatrixSrcTags.

getGlobalDurationCostPerHour()

public double getGlobalDurationCostPerHour()

The "global duration" of the overall plan is the difference between the earliest effective start time and the latest effective end time of all vehicles. Users can assign a cost per hour to that quantity to try and optimize for earliest job completion, for example. This cost must be in the same unit as Shipment.penalty_cost.

double global_duration_cost_per_hour = 7;

Returns
TypeDescription
double

The globalDurationCostPerHour.

getGlobalEndTime()

public Timestamp getGlobalEndTime()

If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0) is used as default.

.google.protobuf.Timestamp global_end_time = 6;

Returns
TypeDescription
Timestamp

The globalEndTime.

getGlobalEndTimeOrBuilder()

public TimestampOrBuilder getGlobalEndTimeOrBuilder()

If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0) is used as default.

.google.protobuf.Timestamp global_end_time = 6;

Returns
TypeDescription
TimestampOrBuilder

getGlobalStartTime()

public Timestamp getGlobalStartTime()

Global start and end time of the model: no times outside of this range can be considered valid.

The model's time span must be less than a year, i.e. the global_end_time and the global_start_time must be within 31536000 seconds of each other.

When using cost_per_*hour fields, you might want to set this window to a smaller interval to increase performance (eg. if you model a single day, you should set the global time limits to that day). If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used as default.

.google.protobuf.Timestamp global_start_time = 5;

Returns
TypeDescription
Timestamp

The globalStartTime.

getGlobalStartTimeOrBuilder()

public TimestampOrBuilder getGlobalStartTimeOrBuilder()

Global start and end time of the model: no times outside of this range can be considered valid.

The model's time span must be less than a year, i.e. the global_end_time and the global_start_time must be within 31536000 seconds of each other.

When using cost_per_*hour fields, you might want to set this window to a smaller interval to increase performance (eg. if you model a single day, you should set the global time limits to that day). If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used as default.

.google.protobuf.Timestamp global_start_time = 5;

Returns
TypeDescription
TimestampOrBuilder

getMaxActiveVehicles()

public int getMaxActiveVehicles()

Constrains the maximum number of active vehicles. A vehicle is active if its route performs at least one shipment. This can be used to limit the number of routes in the case where there are fewer drivers than vehicles and that the fleet of vehicles is heterogeneous. The optimization will then select the best subset of vehicles to use. Must be strictly positive.

optional int32 max_active_vehicles = 4;

Returns
TypeDescription
int

The maxActiveVehicles.

getParserForType()

public Parser<ShipmentModel> getParserForType()
Returns
TypeDescription
Parser<ShipmentModel>
Overrides

getPrecedenceRules(int index)

public ShipmentModel.PrecedenceRule getPrecedenceRules(int index)

Set of precedence rules which must be enforced in the model.

repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentModel.PrecedenceRule

getPrecedenceRulesCount()

public int getPrecedenceRulesCount()

Set of precedence rules which must be enforced in the model.

repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;

Returns
TypeDescription
int

getPrecedenceRulesList()

public List<ShipmentModel.PrecedenceRule> getPrecedenceRulesList()

Set of precedence rules which must be enforced in the model.

repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;

Returns
TypeDescription
List<PrecedenceRule>

getPrecedenceRulesOrBuilder(int index)

public ShipmentModel.PrecedenceRuleOrBuilder getPrecedenceRulesOrBuilder(int index)

Set of precedence rules which must be enforced in the model.

repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentModel.PrecedenceRuleOrBuilder

getPrecedenceRulesOrBuilderList()

public List<? extends ShipmentModel.PrecedenceRuleOrBuilder> getPrecedenceRulesOrBuilderList()

Set of precedence rules which must be enforced in the model.

repeated .google.cloud.optimization.v1.ShipmentModel.PrecedenceRule precedence_rules = 14;

Returns
TypeDescription
List<? extends com.google.cloud.optimization.v1.ShipmentModel.PrecedenceRuleOrBuilder>

getSerializedSize()

public int getSerializedSize()
Returns
TypeDescription
int
Overrides

getShipmentTypeIncompatibilities(int index)

public ShipmentTypeIncompatibility getShipmentTypeIncompatibilities(int index)

Sets of incompatible shipment_types (see ShipmentTypeIncompatibility).

repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentTypeIncompatibility

getShipmentTypeIncompatibilitiesCount()

public int getShipmentTypeIncompatibilitiesCount()

Sets of incompatible shipment_types (see ShipmentTypeIncompatibility).

repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;

Returns
TypeDescription
int

getShipmentTypeIncompatibilitiesList()

public List<ShipmentTypeIncompatibility> getShipmentTypeIncompatibilitiesList()

Sets of incompatible shipment_types (see ShipmentTypeIncompatibility).

repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;

Returns
TypeDescription
List<ShipmentTypeIncompatibility>

getShipmentTypeIncompatibilitiesOrBuilder(int index)

public ShipmentTypeIncompatibilityOrBuilder getShipmentTypeIncompatibilitiesOrBuilder(int index)

Sets of incompatible shipment_types (see ShipmentTypeIncompatibility).

repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentTypeIncompatibilityOrBuilder

getShipmentTypeIncompatibilitiesOrBuilderList()

public List<? extends ShipmentTypeIncompatibilityOrBuilder> getShipmentTypeIncompatibilitiesOrBuilderList()

Sets of incompatible shipment_types (see ShipmentTypeIncompatibility).

repeated .google.cloud.optimization.v1.ShipmentTypeIncompatibility shipment_type_incompatibilities = 12;

Returns
TypeDescription
List<? extends com.google.cloud.optimization.v1.ShipmentTypeIncompatibilityOrBuilder>

getShipmentTypeRequirements(int index)

public ShipmentTypeRequirement getShipmentTypeRequirements(int index)

Sets of shipment_type requirements (see ShipmentTypeRequirement).

repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentTypeRequirement

getShipmentTypeRequirementsCount()

public int getShipmentTypeRequirementsCount()

Sets of shipment_type requirements (see ShipmentTypeRequirement).

repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;

Returns
TypeDescription
int

getShipmentTypeRequirementsList()

public List<ShipmentTypeRequirement> getShipmentTypeRequirementsList()

Sets of shipment_type requirements (see ShipmentTypeRequirement).

repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;

Returns
TypeDescription
List<ShipmentTypeRequirement>

getShipmentTypeRequirementsOrBuilder(int index)

public ShipmentTypeRequirementOrBuilder getShipmentTypeRequirementsOrBuilder(int index)

Sets of shipment_type requirements (see ShipmentTypeRequirement).

repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentTypeRequirementOrBuilder

getShipmentTypeRequirementsOrBuilderList()

public List<? extends ShipmentTypeRequirementOrBuilder> getShipmentTypeRequirementsOrBuilderList()

Sets of shipment_type requirements (see ShipmentTypeRequirement).

repeated .google.cloud.optimization.v1.ShipmentTypeRequirement shipment_type_requirements = 13;

Returns
TypeDescription
List<? extends com.google.cloud.optimization.v1.ShipmentTypeRequirementOrBuilder>

getShipments(int index)

public Shipment getShipments(int index)

Set of shipments which must be performed in the model.

repeated .google.cloud.optimization.v1.Shipment shipments = 1;

Parameter
NameDescription
indexint
Returns
TypeDescription
Shipment

getShipmentsCount()

public int getShipmentsCount()

Set of shipments which must be performed in the model.

repeated .google.cloud.optimization.v1.Shipment shipments = 1;

Returns
TypeDescription
int

getShipmentsList()

public List<Shipment> getShipmentsList()

Set of shipments which must be performed in the model.

repeated .google.cloud.optimization.v1.Shipment shipments = 1;

Returns
TypeDescription
List<Shipment>

getShipmentsOrBuilder(int index)

public ShipmentOrBuilder getShipmentsOrBuilder(int index)

Set of shipments which must be performed in the model.

repeated .google.cloud.optimization.v1.Shipment shipments = 1;

Parameter
NameDescription
indexint
Returns
TypeDescription
ShipmentOrBuilder

getShipmentsOrBuilderList()

public List<? extends ShipmentOrBuilder> getShipmentsOrBuilderList()

Set of shipments which must be performed in the model.

repeated .google.cloud.optimization.v1.Shipment shipments = 1;

Returns
TypeDescription
List<? extends com.google.cloud.optimization.v1.ShipmentOrBuilder>

getTransitionAttributes(int index)

public TransitionAttributes getTransitionAttributes(int index)

Transition attributes added to the model.

repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;

Parameter
NameDescription
indexint
Returns
TypeDescription
TransitionAttributes

getTransitionAttributesCount()

public int getTransitionAttributesCount()

Transition attributes added to the model.

repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;

Returns
TypeDescription
int

getTransitionAttributesList()

public List<TransitionAttributes> getTransitionAttributesList()

Transition attributes added to the model.

repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;

Returns
TypeDescription
List<TransitionAttributes>

getTransitionAttributesOrBuilder(int index)

public TransitionAttributesOrBuilder getTransitionAttributesOrBuilder(int index)

Transition attributes added to the model.

repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;

Parameter
NameDescription
indexint
Returns
TypeDescription
TransitionAttributesOrBuilder

getTransitionAttributesOrBuilderList()

public List<? extends TransitionAttributesOrBuilder> getTransitionAttributesOrBuilderList()

Transition attributes added to the model.

repeated .google.cloud.optimization.v1.TransitionAttributes transition_attributes = 11;

Returns
TypeDescription
List<? extends com.google.cloud.optimization.v1.TransitionAttributesOrBuilder>

getVehicles(int index)

public Vehicle getVehicles(int index)

Set of vehicles which can be used to perform visits.

repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;

Parameter
NameDescription
indexint
Returns
TypeDescription
Vehicle

getVehiclesCount()

public int getVehiclesCount()

Set of vehicles which can be used to perform visits.

repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;

Returns
TypeDescription
int

getVehiclesList()

public List<Vehicle> getVehiclesList()

Set of vehicles which can be used to perform visits.

repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;

Returns
TypeDescription
List<Vehicle>

getVehiclesOrBuilder(int index)

public VehicleOrBuilder getVehiclesOrBuilder(int index)

Set of vehicles which can be used to perform visits.

repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;

Parameter
NameDescription
indexint
Returns
TypeDescription
VehicleOrBuilder

getVehiclesOrBuilderList()

public List<? extends VehicleOrBuilder> getVehiclesOrBuilderList()

Set of vehicles which can be used to perform visits.

repeated .google.cloud.optimization.v1.Vehicle vehicles = 2;

Returns
TypeDescription
List<? extends com.google.cloud.optimization.v1.VehicleOrBuilder>

hasGlobalEndTime()

public boolean hasGlobalEndTime()

If unset, 00:00:00 UTC, January 1, 1971 (i.e. seconds: 31536000, nanos: 0) is used as default.

.google.protobuf.Timestamp global_end_time = 6;

Returns
TypeDescription
boolean

Whether the globalEndTime field is set.

hasGlobalStartTime()

public boolean hasGlobalStartTime()

Global start and end time of the model: no times outside of this range can be considered valid.

The model's time span must be less than a year, i.e. the global_end_time and the global_start_time must be within 31536000 seconds of each other.

When using cost_per_*hour fields, you might want to set this window to a smaller interval to increase performance (eg. if you model a single day, you should set the global time limits to that day). If unset, 00:00:00 UTC, January 1, 1970 (i.e. seconds: 0, nanos: 0) is used as default.

.google.protobuf.Timestamp global_start_time = 5;

Returns
TypeDescription
boolean

Whether the globalStartTime field is set.

hasMaxActiveVehicles()

public boolean hasMaxActiveVehicles()

Constrains the maximum number of active vehicles. A vehicle is active if its route performs at least one shipment. This can be used to limit the number of routes in the case where there are fewer drivers than vehicles and that the fleet of vehicles is heterogeneous. The optimization will then select the best subset of vehicles to use. Must be strictly positive.

optional int32 max_active_vehicles = 4;

Returns
TypeDescription
boolean

Whether the maxActiveVehicles field is set.

hashCode()

public int hashCode()
Returns
TypeDescription
int
Overrides

internalGetFieldAccessorTable()

protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Returns
TypeDescription
FieldAccessorTable
Overrides

isInitialized()

public final boolean isInitialized()
Returns
TypeDescription
boolean
Overrides

newBuilderForType()

public ShipmentModel.Builder newBuilderForType()
Returns
TypeDescription
ShipmentModel.Builder

newBuilderForType(GeneratedMessageV3.BuilderParent parent)

protected ShipmentModel.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Parameter
NameDescription
parentBuilderParent
Returns
TypeDescription
ShipmentModel.Builder
Overrides

newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Parameter
NameDescription
unusedUnusedPrivateParameter
Returns
TypeDescription
Object
Overrides

toBuilder()

public ShipmentModel.Builder toBuilder()
Returns
TypeDescription
ShipmentModel.Builder

writeTo(CodedOutputStream output)

public void writeTo(CodedOutputStream output)
Parameter
NameDescription
outputCodedOutputStream
Overrides
Exceptions
TypeDescription
IOException