Class InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Builder

  • All Implemented Interfaces:
    InjectedSolutionConstraint.ConstraintRelaxation.RelaxationOrBuilder, com.google.protobuf.Message.Builder, com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Cloneable
    Enclosing class:
    InjectedSolutionConstraint.ConstraintRelaxation.Relaxation

    public static final class InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Builder
    extends com.google.protobuf.GeneratedMessageV3.Builder<InjectedSolutionConstraint.ConstraintRelaxation.Relaxation.Builder>
    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