Class: Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation
- Inherits:
-
Object
- Object
- Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation
- Extended by:
- Protobuf::MessageExts::ClassMethods
- Includes:
- Protobuf::MessageExts
- Defined in:
- proto_docs/google/cloud/optimization/v1/fleet_routing.rb
Overview
For a group of vehicles, specifies at what threshold(s) constraints on
visits will be relaxed and to which level. Shipments listed in
the skipped_shipment field are constrained to be skipped; i.e., they
cannot be performed.
Defined Under Namespace
Classes: Relaxation
Instance Attribute Summary collapse
-
#relaxations ⇒ ::Array<::Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation::Relaxation>
All the visit constraint relaxations that will apply to visits on routes with vehicles in
vehicle_indices. -
#vehicle_indices ⇒ ::Array<::Integer>
Specifies the vehicle indices to which the visit constraint
relaxationsapply.
Instance Attribute Details
#relaxations ⇒ ::Array<::Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation::Relaxation>
2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 |
# File 'proto_docs/google/cloud/optimization/v1/fleet_routing.rb', line 2374 class ConstraintRelaxation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # 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. # @!attribute [rw] level # @return [::Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation::Relaxation::Level] # The constraint relaxation level that applies when the conditions # at or after `threshold_time` AND at least `threshold_visit_count` are # satified. # @!attribute [rw] threshold_time # @return [::Google::Protobuf::Timestamp] # The time at or after which the relaxation `level` may be applied. # @!attribute [rw] threshold_visit_count # @return [::Integer] # 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. class Relaxation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Expresses the different constraint relaxation levels, which are # applied for a visit and those that follow when it satifies the # threshold conditions. # # The enumeration below is in order of increasing relaxation. module Level # Implicit default relaxation level: no constraints are relaxed, # i.e., all visits are fully constrained. # # This value must not be explicly used in `level`. LEVEL_UNSPECIFIED = 0 # Visit start times and vehicle start/end times will be relaxed, but # each visit remains bound to the same vehicle and the visit sequence # must be observed: no visit can be inserted between them or before # them. RELAX_VISIT_TIMES_AFTER_THRESHOLD = 1 # Same as `RELAX_VISIT_TIMES_AFTER_THRESHOLD`, but the visit sequence # is also relaxed: visits remain simply bound to their vehicle. RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD = 2 # Same as `RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD`, but the # vehicle is also relaxed: visits are completely free at or after the # threshold time and can potentially become unperformed. RELAX_ALL_AFTER_THRESHOLD = 3 end end end |
#vehicle_indices ⇒ ::Array<::Integer>
2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 |
# File 'proto_docs/google/cloud/optimization/v1/fleet_routing.rb', line 2374 class ConstraintRelaxation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # 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. # @!attribute [rw] level # @return [::Google::Cloud::Optimization::V1::InjectedSolutionConstraint::ConstraintRelaxation::Relaxation::Level] # The constraint relaxation level that applies when the conditions # at or after `threshold_time` AND at least `threshold_visit_count` are # satified. # @!attribute [rw] threshold_time # @return [::Google::Protobuf::Timestamp] # The time at or after which the relaxation `level` may be applied. # @!attribute [rw] threshold_visit_count # @return [::Integer] # 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. class Relaxation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Expresses the different constraint relaxation levels, which are # applied for a visit and those that follow when it satifies the # threshold conditions. # # The enumeration below is in order of increasing relaxation. module Level # Implicit default relaxation level: no constraints are relaxed, # i.e., all visits are fully constrained. # # This value must not be explicly used in `level`. LEVEL_UNSPECIFIED = 0 # Visit start times and vehicle start/end times will be relaxed, but # each visit remains bound to the same vehicle and the visit sequence # must be observed: no visit can be inserted between them or before # them. RELAX_VISIT_TIMES_AFTER_THRESHOLD = 1 # Same as `RELAX_VISIT_TIMES_AFTER_THRESHOLD`, but the visit sequence # is also relaxed: visits remain simply bound to their vehicle. RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD = 2 # Same as `RELAX_VISIT_TIMES_AND_SEQUENCE_AFTER_THRESHOLD`, but the # vehicle is also relaxed: visits are completely free at or after the # threshold time and can potentially become unperformed. RELAX_ALL_AFTER_THRESHOLD = 3 end end end |