Class InjectedSolutionConstraint.ConstraintRelaxation.Relaxation

java.lang.Object
com.google.protobuf.AbstractMessageLite
com.google.protobuf.AbstractMessage
com.google.protobuf.GeneratedMessage
com.google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation
All Implemented Interfaces:
InjectedSolutionConstraint.ConstraintRelaxation.RelaxationOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Serializable
Enclosing class:
InjectedSolutionConstraint.ConstraintRelaxation

public static final class InjectedSolutionConstraint.ConstraintRelaxation.Relaxation extends com.google.protobuf.GeneratedMessage implements InjectedSolutionConstraint.ConstraintRelaxation.RelaxationOrBuilder
 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.
 
Protobuf type google.cloud.optimization.v1.InjectedSolutionConstraint.ConstraintRelaxation.Relaxation
See Also: