C++ Reference: class RoutingDimension
Note: This documentation is automatically generated.
Dimensions represent quantities accumulated at nodes along the routes. They represent quantities such as weights or volumes carried along the route, or distance or times.
Quantities at a node are represented by "cumul" variables and the increase or decrease of quantities between nodes are represented by "transit" variables. These variables are linked as follows:
/// if j == next(i), cumul(j) = cumul(i) + transit(i) + slack(i)where slack is a positive slack variable (can represent waiting times for a time dimension), and state_dependent_transits is a non-purely functional version of transits_. Favour transits over state_dependent_transits when possible, because purely functional callbacks allow more optimisations and make the model faster and easier to solve. TODO(user): Break constraints need to know the service time of nodes for a given vehicle, it is passed as an external vector, it would be better to have this information here.
Method | |
---|---|
AddNodePrecedence | Return type: Arguments: |
AddNodePrecedence | Return type: Arguments: |
AreVehicleTransitsPositive | Return type: Arguments: Returns true iff the transit evaluator of 'vehicle' is positive for all arcs. |
base_dimension | Return type: Returns the parent in the dependency tree if any or nullptr otherwise. |
class_transit_evaluator | Return type: Arguments: Returns the callback evaluating the transit value between two node indices for a given vehicle class. |
cumuls | Return type: Like CumulVar(), TransitVar(), SlackVar() but return the whole variable vectors instead (indexed by int64_t var index). |
CumulVar | Return type: Arguments: Get the cumul, transit and slack variables for the given node (given as int64_t var index). |
fixed_transits | Return type: |
FixedTransitVar | Return type: Arguments: |
forbidden_intervals | Return type: Returns forbidden intervals for each node. |
GetAllowedIntervalsInRange | Return type: Arguments: Returns allowed intervals for a given node in a given interval. |
GetBreakIntervalsOfVehicle | Return type: Arguments: Returns the break intervals set by SetBreakIntervalsOfVehicle(). |
GetCumulVarPiecewiseLinearCost | Return type: Arguments: Returns the piecewise linear cost of a cumul variable for a given variable index. The returned pointer has the same validity as this class. |
GetCumulVarSoftLowerBound | Return type: Arguments: Returns the soft lower bound of a cumul variable for a given variable index. The "hard" lower bound of the variable is returned if no soft lower bound has been set. |
GetCumulVarSoftLowerBoundCoefficient | Return type: Arguments: Returns the cost coefficient of the soft lower bound of a cumul variable for a given variable index. If no soft lower bound has been set, 0 is returned. |
GetCumulVarSoftUpperBound | Return type: Arguments: Returns the soft upper bound of a cumul variable for a given variable index. The "hard" upper bound of the variable is returned if no soft upper bound has been set. |
GetCumulVarSoftUpperBoundCoefficient | Return type: Arguments: Returns the cost coefficient of the soft upper bound of a cumul variable for a given variable index. If no soft upper bound has been set, 0 is returned. |
GetFirstPossibleGreaterOrEqualValueForNode | Return type: Arguments: Returns the smallest value outside the forbidden intervals of node 'index' that is greater than or equal to a given 'min_value'. |
GetGlobalOptimizerOffset | Return type: |
GetLastPossibleLessOrEqualValueForNode | Return type: Arguments: Returns the largest value outside the forbidden intervals of node 'index' that is less than or equal to a given 'max_value'. NOTE: If this method is called with a max_value lower than the node's cumul min, it will return -1. |
GetLocalOptimizerOffsetForVehicle | Return type: Arguments: |
GetNodePrecedences | Return type: |
GetPathPrecedenceGraph | Return type: |
GetPickupToDeliveryLimitForPair | Return type: Arguments: |
GetPostTravelEvaluatorOfVehicle | Return type: Arguments: |
GetPreTravelEvaluatorOfVehicle | Return type: Arguments: clang-format on |
GetQuadraticCostSoftSpanUpperBoundForVehicle | Return type: Arguments: |
GetSoftSpanUpperBoundForVehicle | Return type: Arguments: |
GetSpanCostCoefficientForVehicle | Return type: Arguments: |
GetSpanCostCoefficientForVehicleClass | Return type: Arguments: |
GetSpanUpperBoundForVehicle | Return type: Arguments: |
GetTransitValue | Return type: Arguments: Returns the transition value for a given pair of nodes (as var index); this value is the one taken by the corresponding transit variable when the 'next' variable for 'from_index' is bound to 'to_index'. |
GetTransitValueFromClass | Return type: Arguments: Same as above but taking a vehicle class of the dimension instead of a vehicle (the class of a vehicle can be obtained with vehicle_to_class()). |
GetUnaryTransitEvaluator | Return type: Arguments: Returns the unary callback evaluating the transit value between two node indices for a given vehicle. If the corresponding callback is not unary, returns a null callback. |
global_span_cost_coefficient | Return type: |
HasBreakConstraints | Return type: Returns true if any break interval or break distance was defined. |
HasCumulVarPiecewiseLinearCost | Return type: Arguments: Returns true if a piecewise linear cost has been set for a given variable index. |
HasCumulVarSoftLowerBound | Return type: Arguments: Returns true if a soft lower bound has been set for a given variable index. |
HasCumulVarSoftUpperBound | Return type: Arguments: Returns true if a soft upper bound has been set for a given variable index. |
HasPickupToDeliveryLimits | Return type: |
HasQuadraticCostSoftSpanUpperBounds | Return type: |
HasSoftSpanUpperBounds | Return type: |
InitializeBreaks | Return type: Sets up vehicle_break_intervals_, vehicle_break_distance_duration_, pre_travel_evaluators and post_travel_evaluators. |
model | Return type: Returns the model on which the dimension was created. |
name | Return type: Returns the name of the dimension. |
~RoutingDimension | |
SetBreakDistanceDurationOfVehicle | Return type: Arguments: With breaks supposed to be consecutive, this forces the distance between breaks of size at least minimum_break_duration to be at most distance. This supposes that the time until route start and after route end are infinite breaks. |
SetBreakIntervalsOfVehicle | Return type: Arguments: |
SetBreakIntervalsOfVehicle | Return type: Arguments: Deprecated, sets pre_travel(i, j) = node_visit_transit[i]. |
SetBreakIntervalsOfVehicle | Return type: Arguments: Deprecated, sets pre_travel(i, j) = node_visit_transit[i] and post_travel(i, j) = delays(i, j). |
SetCumulVarPiecewiseLinearCost | Return type: Arguments: Sets a piecewise linear cost on the cumul variable of a given variable index. If f is a piecewise linear function, the resulting cost at 'index' will be f(CumulVar(index)). As of 3/2017, only non-decreasing positive cost functions are supported. |
SetCumulVarSoftLowerBound | Return type: Arguments: Sets a soft lower bound to the cumul variable of a given variable index. If the value of the cumul variable is less than the bound, a cost proportional to the difference between this value and the bound is added to the cost function of the model: cumulVar > lower_bound -> cost = 0 cumulVar <= lower_bound -> cost = coefficient * (lower_bound - cumulVar). This is also handy to model earliness costs when the dimension represents time. |
SetCumulVarSoftUpperBound | Return type: Arguments: Sets a soft upper bound to the cumul variable of a given variable index. If the value of the cumul variable is greater than the bound, a cost proportional to the difference between this value and the bound is added to the cost function of the model: cumulVar <= upper_bound -> cost = 0 cumulVar > upper_bound -> cost = coefficient * (cumulVar - upper_bound) This is also handy to model tardiness costs when the dimension represents time. |
SetGlobalSpanCostCoefficient | Return type: Arguments: Sets a cost proportional to the *global* dimension span, that is the difference between the largest value of route end cumul variables and the smallest value of route start cumul variables. In other words: global_span_cost = coefficient * (Max(dimension end value) - Min(dimension start value)). |
SetPickupToDeliveryLimitFunctionForPair | Return type: Arguments: |
SetQuadraticCostSoftSpanUpperBoundForVehicle | Return type: Arguments: If the span of vehicle on this dimension is larger than bound, the cost will be increased by cost * (span - bound)^2. |
SetSoftSpanUpperBoundForVehicle | Return type: Arguments: If the span of vehicle on this dimension is larger than bound, the cost will be increased by cost * (span - bound). |
SetSpanCostCoefficientForAllVehicles | Return type: Arguments: |
SetSpanCostCoefficientForVehicle | Return type: Arguments: Sets a cost proportional to the dimension span on a given vehicle, or on all vehicles at once. "coefficient" must be nonnegative. This is handy to model costs proportional to idle time when the dimension represents time. The cost for a vehicle is span_cost = coefficient * (dimension end value - dimension start value). |
SetSpanUpperBoundForVehicle | Return type: Arguments: Sets an upper bound on the dimension span on a given vehicle. This is the preferred way to limit the "length" of the route of a vehicle according to a dimension. |
ShortestTransitionSlack | Return type: Arguments: It makes sense to use the function only for self-dependent dimension. For such dimensions the value of the slack of a node determines the transition cost of the next transit. Provided that 1. cumul[node] is fixed, 2. next[node] and next[next[node]] (if exists) are fixed, the value of slack[node] for which cumul[next[node]] + transit[next[node]] is minimized can be found in O(1) using this function. |
slacks | Return type: |
SlackVar | Return type: Arguments: |
transit_evaluator | Return type: Arguments: Returns the callback evaluating the transit value between two node indices for a given vehicle. |
transits | Return type: |
TransitVar | Return type: Arguments: |
vehicle_capacities | Return type: Returns the capacities for all vehicles. |
vehicle_span_cost_coefficients | Return type: |
vehicle_span_upper_bounds | Return type: |
vehicle_to_class | Return type: Arguments: |