Google Cloud Optimization V1 Client - Class Relaxation (0.2.0)

Reference documentation and code samples for the Google Cloud Optimization V1 Client class Relaxation.

If relaxations is empty, the start time and sequence of all visits on routes are fully constrained and no new visits may be inserted or added to those routes. Also, a vehicle's start and end time in routes is fully constrained, unless the vehicle is empty (i.e., has no visits and has used_if_route_is_empty set to false in the model).

relaxations(i).level specifies the constraint relaxation level applied to a visit #j that satisfies:

  • route.visits(j).start_time >= relaxations(i).threshold_time AND
  • j + 1 >= relaxations(i).threshold_visit_count Similarly, the vehicle start is relaxed to relaxations(i).level if it satisfies:
  • vehicle_start_time >= relaxations(i).threshold_time AND
  • relaxations(i).threshold_visit_count == 0 and the vehicle end is relaxed to relaxations(i).level if it satisfies:
  • vehicle_end_time >= relaxations(i).threshold_time AND
  • route.visits_size() + 1 >= relaxations(i).threshold_visit_count To apply a relaxation level if a visit meets the threshold_visit_count OR the threshold_time add two relaxations with the same level: one with only threshold_visit_count set and the other with only threshold_time set. If a visit satisfies the conditions of multiple relaxations, the most relaxed level applies. As a result, from the vehicle start through the route visits in order to the vehicle end, the relaxation level becomes more relaxed: i.e., the relaxation level is non-decreasing as the route progresses. The timing and sequence of route visits that do not satisfy the threshold conditions of any relaxations are fully constrained and no visits may be inserted into these sequences. Also, if a vehicle start or end does not satisfy the conditions of any relaxation the time is fixed, unless the vehicle is empty.

Generated from protobuf message google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation

Methods

__construct

Constructor.

Parameters
NameDescription
data array

Optional. Data for populating the Message object.

↳ level int

The constraint relaxation level that applies when the conditions at or after threshold_time AND at least threshold_visit_count are satisfied.

↳ threshold_time Google\Protobuf\Timestamp

The time at or after which the relaxation level may be applied.

↳ threshold_visit_count int

The number of visits at or after which the relaxation level may be applied. If threshold_visit_count is 0 (or unset), the level may be applied directly at the vehicle start. If it is route.visits_size() + 1, the level may only be applied to the vehicle end. If it is more than route.visits_size() + 1, level is not applied at all for that route.

getLevel

The constraint relaxation level that applies when the conditions at or after threshold_time AND at least threshold_visit_count are satisfied.

Returns
TypeDescription
int

setLevel

The constraint relaxation level that applies when the conditions at or after threshold_time AND at least threshold_visit_count are satisfied.

Parameter
NameDescription
var int
Returns
TypeDescription
$this

getThresholdTime

The time at or after which the relaxation level may be applied.

Returns
TypeDescription
Google\Protobuf\Timestamp|null

hasThresholdTime

clearThresholdTime

setThresholdTime

The time at or after which the relaxation level may be applied.

Parameter
NameDescription
var Google\Protobuf\Timestamp
Returns
TypeDescription
$this

getThresholdVisitCount

The number of visits at or after which the relaxation level may be applied. If threshold_visit_count is 0 (or unset), the level may be applied directly at the vehicle start.

If it is route.visits_size() + 1, the level may only be applied to the vehicle end. If it is more than route.visits_size() + 1, level is not applied at all for that route.

Returns
TypeDescription
int

setThresholdVisitCount

The number of visits at or after which the relaxation level may be applied. If threshold_visit_count is 0 (or unset), the level may be applied directly at the vehicle start.

If it is route.visits_size() + 1, the level may only be applied to the vehicle end. If it is more than route.visits_size() + 1, level is not applied at all for that route.

Parameter
NameDescription
var int
Returns
TypeDescription
$this