Vehicle(mapping=None, *, ignore_unknown_fields=False, **kwargs)
Models a vehicle in a shipment problem. Solving a shipment problem
will build a route starting from start_location
and ending at
end_location
for this vehicle. A route is a sequence of visits
(see ShipmentRoute
).
.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
Attributes
Name | Description |
travel_mode |
google.cloud.optimization_v1.types.Vehicle.TravelMode
The travel mode which affects the roads usable by the vehicle and its speed. See also travel_duration_multiple .
|
start_location |
google.type.latlng_pb2.LatLng
Geographic location where the vehicle starts before picking up any shipments. If not specified, the vehicle starts at its first pickup. If the shipment model has duration and distance matrices, start_location must not be specified.
|
start_waypoint |
google.cloud.optimization_v1.types.Waypoint
Waypoint representing a geographic location where the vehicle starts before picking up any shipments. If neither start_waypoint nor start_location is specified, the
vehicle starts at its first pickup. If the shipment model
has duration and distance matrices, start_waypoint must
not be specified.
|
end_location |
google.type.latlng_pb2.LatLng
Geographic location where the vehicle ends after it has completed its last VisitRequest . If not specified the
vehicle's ShipmentRoute ends immediately when it
completes its last VisitRequest . If the shipment model
has duration and distance matrices, end_location must
not be specified.
|
end_waypoint |
google.cloud.optimization_v1.types.Waypoint
Waypoint representing a geographic location where the vehicle ends after it has completed its last VisitRequest . If neither end_waypoint nor
end_location is specified, the vehicle's
ShipmentRoute ends immediately when it completes its
last VisitRequest . If the shipment model has duration
and distance matrices, end_waypoint must not be
specified.
|
start_tags |
MutableSequence[str]
Specifies tags attached to the start of the vehicle's route. Empty or duplicate strings are not allowed. |
end_tags |
MutableSequence[str]
Specifies tags attached to the end of the vehicle's route. Empty or duplicate strings are not allowed. |
start_time_windows |
MutableSequence[google.cloud.optimization_v1.types.TimeWindow]
Time windows during which the vehicle may depart its start location. They must be within the global time limits (see [ShipmentModel.global_*][google.cloud.optimization.v1.ShipmentModel.global_start_time] fields). If unspecified, there is no limitation besides those global time limits. Time windows belonging to the same repeated field must be disjoint, i.e. no time window can overlap with or be adjacent to another, and they must be in chronological order. cost_per_hour_after_soft_end_time and soft_end_time
can only be set if there is a single time window.
|
end_time_windows |
MutableSequence[google.cloud.optimization_v1.types.TimeWindow]
Time windows during which the vehicle may arrive at its end location. They must be within the global time limits (see [ShipmentModel.global_*][google.cloud.optimization.v1.ShipmentModel.global_start_time] fields). If unspecified, there is no limitation besides those global time limits. Time windows belonging to the same repeated field must be disjoint, i.e. no time window can overlap with or be adjacent to another, and they must be in chronological order. cost_per_hour_after_soft_end_time and soft_end_time
can only be set if there is a single time window.
|
travel_duration_multiple |
float
Specifies a multiplicative factor that can be used to increase or decrease travel times of this vehicle. For example, setting this to 2.0 means that this vehicle is slower and has travel times that are twice what they are for standard vehicles. This multiple does not affect visit durations. It does affect cost if cost_per_hour or
cost_per_traveled_hour are specified. This must be in
the range [0.001, 1000.0]. If unset, the vehicle is
standard, and this multiple is considered 1.0.
WARNING: Travel times will be rounded to the nearest second
after this multiple is applied but before performing any
numerical operations, thus, a small multiple may result in a
loss of precision.
See also extra_visit_duration_for_visit_type below.
This field is a member of oneof _ _travel_duration_multiple .
|
unloading_policy |
google.cloud.optimization_v1.types.Vehicle.UnloadingPolicy
Unloading policy enforced on the vehicle. |
load_limits |
MutableMapping[str, google.cloud.optimization_v1.types.Vehicle.LoadLimit]
Capacities of the vehicle (weight, volume, # of pallets for example). The keys in the map are the identifiers of the type of load, consistent with the keys of the Shipment.load_demands field. If a given key is absent from this map, the corresponding capacity is considered to be limitless. |
cost_per_hour |
float
Vehicle costs: all costs add up and must be in the same unit as Shipment.penalty_cost. Cost per hour of the vehicle route. This cost is applied to the total time taken by the route, and includes travel time, waiting time, and visit time. Using cost_per_hour
instead of just cost_per_traveled_hour may result in
additional latency.
|
cost_per_traveled_hour |
float
Cost per traveled hour of the vehicle route. This cost is applied only to travel time taken by the route (i.e., that reported in ShipmentRoute.transitions), and excludes waiting time and visit time. |
cost_per_kilometer |
float
Cost per kilometer of the vehicle route. This cost is applied to the distance reported in the ShipmentRoute.transitions and does not apply to any distance implicitly traveled from the arrival_location to the departure_location of a
single VisitRequest .
|
fixed_cost |
float
Fixed cost applied if this vehicle is used to handle a shipment. |
used_if_route_is_empty |
bool
This field only applies to vehicles when their route does not serve any shipments. It indicates if the vehicle should be considered as used or not in this case. If true, the vehicle goes from its start to its end location even if it doesn't serve any shipments, and time and distance costs resulting from its start --> end travel are taken into account. Otherwise, it doesn't travel from its start to its end location, and no break_rule or delay (from
TransitionAttributes ) are scheduled for this vehicle. In
this case, the vehicle's ShipmentRoute doesn't contain
any information except for the vehicle index and label.
|
route_duration_limit |
google.cloud.optimization_v1.types.Vehicle.DurationLimit
Limit applied to the total duration of the vehicle's route. In a given OptimizeToursResponse , the route duration of
a vehicle is the difference between its vehicle_end_time
and vehicle_start_time .
|
travel_duration_limit |
google.cloud.optimization_v1.types.Vehicle.DurationLimit
Limit applied to the travel duration of the vehicle's route. In a given OptimizeToursResponse , the route travel
duration is the sum of all its
transitions.travel_duration.
|
route_distance_limit |
google.cloud.optimization_v1.types.DistanceLimit
Limit applied to the total distance of the vehicle's route. In a given OptimizeToursResponse , the route distance is
the sum of all its
transitions.travel_distance_meters.
|
extra_visit_duration_for_visit_type |
MutableMapping[str, google.protobuf.duration_pb2.Duration]
Specifies a map from visit_types strings to durations. The duration is time in addition to VisitRequest.duration to be taken at visits with the specified visit_types .
This extra visit duration adds cost if cost_per_hour is
specified. Keys (i.e. visit_types ) cannot be empty
strings.
If a visit request has multiple types, a duration will be
added for each type in the map.
|
break_rule |
google.cloud.optimization_v1.types.BreakRule
Describes the break schedule to be enforced on this vehicle. If empty, no breaks will be scheduled for this vehicle. |
label |
str
Specifies a label for this vehicle. This label is reported in the response as the vehicle_label of the
corresponding
ShipmentRoute.
|
ignore |
bool
If true, used_if_route_is_empty must be false, and this
vehicle will remain unused.
If a shipment is performed by an ignored vehicle in
injected_first_solution_routes , it is skipped in the
first solution but is free to be performed in the response.
If a shipment is performed by an ignored vehicle in
injected_solution_constraint and any related
pickup/delivery is constrained to remain on the vehicle
(i.e., not relaxed to level RELAX_ALL_AFTER_THRESHOLD ),
it is skipped in the response. If a shipment has a non-empty
allowed_vehicle_indices field and all of the allowed
vehicles are ignored, it is skipped in the response.
|
break_rule_indices |
MutableSequence[int]
Deprecated: No longer used. Indices in the break_rule
field in the source [ShipmentModel][]. They correspond to
break rules enforced on the vehicle.
As of 2018/03, at most one rule index per vehicle can be
specified.
|
capacities |
MutableSequence[google.cloud.optimization_v1.types.CapacityQuantity]
Deprecated: Use [Vehicle.load_limits][] instead. |
start_load_intervals |
MutableSequence[google.cloud.optimization_v1.types.CapacityQuantityInterval]
Deprecated: Use [Vehicle.LoadLimit.start_load_interval][] instead. |
end_load_intervals |
MutableSequence[google.cloud.optimization_v1.types.CapacityQuantityInterval]
Deprecated: Use [Vehicle.LoadLimit.end_load_interval][] instead. |
Classes
DurationLimit
DurationLimit(mapping=None, *, ignore_unknown_fields=False, **kwargs)
A limit defining a maximum duration of the route of a vehicle. It can be either hard or soft.
When a soft limit field is defined, both the soft max threshold and its associated cost must be defined together.
.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
ExtraVisitDurationForVisitTypeEntry
ExtraVisitDurationForVisitTypeEntry(
mapping=None, *, ignore_unknown_fields=False, **kwargs
)
The abstract base class for a message.
Name | Description |
kwargs |
dict
Keys and values corresponding to the fields of the message. |
mapping |
Union[dict,
A dictionary or message to be used to determine the values for this message. |
ignore_unknown_fields |
Optional(bool)
If True, do not raise errors for unknown fields. Only applied if |
LoadLimit
LoadLimit(mapping=None, *, ignore_unknown_fields=False, **kwargs)
Defines a load limit applying to a vehicle, e.g. "this truck may only carry up to 3500 kg". See load_limits.
.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
LoadLimitsEntry
LoadLimitsEntry(mapping=None, *, ignore_unknown_fields=False, **kwargs)
The abstract base class for a message.
Name | Description |
kwargs |
dict
Keys and values corresponding to the fields of the message. |
mapping |
Union[dict,
A dictionary or message to be used to determine the values for this message. |
ignore_unknown_fields |
Optional(bool)
If True, do not raise errors for unknown fields. Only applied if |
TravelMode
TravelMode(value)
Travel modes which can be used by vehicles.
These should be a subset of the Google Maps Platform Routes Preferred API travel modes, see: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode.
UnloadingPolicy
UnloadingPolicy(value)
Policy on how a vehicle can be unloaded. Applies only to shipments having both a pickup and a delivery.
Other shipments are free to occur anywhere on the route independent
of unloading_policy
.