NDD WindowWindow
Overview
A window defines a feasible interval on a dimension. Windows are most commonly used to represent time windows (e.g. a delivery must occur between 08:00 and 12:00) but can be applied to any dimension. Windows can be specified on location attributes, task attributes, and vehicle shift tasks.
Applicable models
- NDD
ndd-cmibu6krtqja
Window
Schema definition
message Window {
required float start = 1;
required float end = 2;
optional float slackCostCoef = 3 [default = 0];
optional float tardyCostCoef = 4 [default = 0];
optional float slackMax = 5 [default = -1];
optional float tardyMax = 6 [default = -1];
}Fields
- start
- The start of the feasible interval on the dimension. In the context of time, this is the earliest acceptable arrival time at a location or task.
- end
- The end of the feasible interval on the dimension. In the context of time, this is the latest acceptable arrival time.
- slackCostCoef
- The cost coefficient applied per unit of slack on this window. Slack represents the amount of dimensional quantity added to meet the window start (e.g. waiting time). A higher coefficient penalises earlyness more heavily.
- tardyCostCoef
- The cost coefficient applied per unit of tardiness on this window. Tardiness represents exceeding the window end. A higher coefficient penalises lateness more heavily.
- slackMax
- An override for the maximum slack permitted on this specific window. A value of -1 (the default) defers to the dimension-level
slackMaxsetting. - tardyMax
- An override for the maximum tardiness permitted on this specific window. A value of -1 (the default) defers to the dimension-level
tardyMaxsetting.
Examples
A morning delivery window from 08:00 to 12:00 (in minutes from midnight) with no slack or tardy cost:
start: 480
end: 720
slackCostCoef: 0
tardyCostCoef: 0A window with a soft end, permitting up to 30 minutes of lateness at an additional cost:
start: 480
end: 720
slackCostCoef: 0
tardyCostCoef: 0.5
tardyMax: 30Notes
- Multiple windows may be specified on a single task attribute or location attribute. The solver will select the most cost-effective window to satisfy.
- When
slackMaxortardyMaxis set to -1, the dimension-level defaults are used. Set these to 0 to create a hard window that permits no earlyness or lateness respectively.