Journal on Vehicle Routing Algorithms

, Volume 2, Issue 1–4, pp 75–88 | Cite as

Allocating limited deicing resources in winter snow events

  • Tony K. RodriguezEmail author
  • Olufemi A. Omitaomu
  • James A. Ostrowski
Regular Paper


As the number and severity of snowfall events continue to grow, the need to direct road maintenance intelligently during these snowfall events will also grow. In several locations, local governments lack the resources to treat all roadways completely during snow events. Furthermore, some governments utilize only traffic data to determine which roads should be treated. As a result, many schools, businesses, and government offices must be unnecessarily closed, which directly impacts the social, educational, and economic well-being of citizens and institutions. In this work, we propose a mixed integer programming (MIP) formulation to allocate resources to manage snowfall on roads using meteorological, geographical, and environmental parameters. Given that MIPs often scale poorly with problem size, we also present a constructive heuristic designed for the problem. Additionally, we evaluate the impacts of an increase in budget for winter road maintenance on snow control resources.


Network flow Mixed integer optimization Snow plow routing 

1 Introduction

Every winter, many cities face significant costs due to winter storms and road maintenance. Snow and ice removal from roadways constitute a large portion of these costs, with the direct costs totaling about $1.5 billion annually in the USA [1]. In addition to these extensive direct costs, several indirect costs also exist. Improperly managed snow and ice events can result in obstructed and unsafe roadways, which leads to prolonged business, school, and local government closures, in addition to an increase in traffic accidents. Furthermore, the use of salt and other deicing chemicals causes damage to roads and corrosion to infrastructure and vehicles [2]. As a result, intelligently managing winter road maintenance fleets and decisions about which roads to treat by utilizing traffic data and environmental factors can result in substantial increases to the well-being of a community.

The problem considered in this work is a variation of the Snow Plow Routing Problem. This is a generalization of the Chinese Postman Problem [3] and the Capacitated Arc Routing with Intermediate Facilities problem [4]. Often, it is assumed that enough resources are present to treat the road network under consideration completely. As a result, many of the works that consider these problems have as their objective to minimize the monetary cost of treating the road network, the time cost of treating the road network, the cost of maintaining the fleet required to treat the road network, or some metric meant to capture inefficiencies in treatment schedules [5, 6, 7, 8, 9]. While much research has been directed toward problems of this kind, many works do not consider resource limiting constraints [9]. Since many municipalities throughout the USA lack the resources to treat their roads completely during a snowfall event, these models have limited utility in practice.

The focus of this work is to provide the City of Knoxville, TN with a rigorous framework and methodology to manage its snow removal and deicing planning. Like many municipalities in the southeastern USA, the City of Knoxville lacks the resources to treat the entire road network during each snowfall event. The aim of this research is to determine which roads to treat and the degree to which they should be treated to utilize the limited resources available more efficiently. This paper lays the groundwork by defining the problem and introducing a mixed integer programming (MIP) formulation of the problem, as well as a constructive heuristic that performs well on the instances considered. The remainder of the paper is structured as follows. In Sect. 2, the problem is formally defined. The MIP formulation of the problem is contained in Sect. 3. Section 4 describes a heuristic approach to solve the problem. Section 5 outlines the experimental procedure and results, and Sect. 6 draws some conclusions.

2 Deicing vehicle routing problem

Deicing chemicals, such as brine solutions and common road salt, together with plowing are effective tools for snow and ice removal. Because many municipalities lack the resources to treat every road within their boundaries completely, there are two significant limitations with many snow removal systems: (i) the same amount of deicing material is applied to every road, and (ii) the treated roads are preselected based only on traffic counts. In practice, this results in streets with a high-traffic volume being treated, while feeder streets, trouble spots, and neighborhood roads often go untreated. Consequently, many residents are unable to make it safely to these treated roads, lowering the overall utility gained from the treatment. However, simply placing roads with trouble spots higher in priority to be treated could also be unfavorable, as these roads may have little traffic. Further, some high-traffic streets require little to no treatment due to environmental conditions at that location. These factors together lead to some road segments being over treated, while entire swaths of the road network go untreated. In a sense, while many approaches consider traffic data as well as driving and weather conditions, none of them utilize them together in a cohesive manner. As a result, these approaches can fail to identify the bottlenecks present in the road network that citizens will encounter during snowfall events.

To address these issues, the following approaches are proposed. Data on solar radiation of road segments and local weather forecasts, together with slope data about a road network, can be used to quantify the fact that not all roads have equally bad driving conditions during snowfall events. The solar radiation data and weather forecasts can be used in an energy balance framework [10] to estimate the amount of snow throughout the road network. This information, together with slope data, is used to compute the Road Vulnerability Index (RVI) of a road segment to a given snow event. RVI is meant to be a measure of how a snow event impedes travel along a road segment, with higher RVI values corresponding to more dangerous driving conditions. While we have access to these data sets for our Knoxville, TN case study, we acknowledge that many municipalities will have access to different data, as well as having different metrics by which they measure driving conditions. As a result, our focus in this work is not on the specifics of computing the RVI of road segments, but rather the mixed integer programming model that incorporates these RVI values. RVI values should account for the fact that driving conditions are not equally bad on all road segments during a winter snow event, with higher values corresponding to worse driving conditions. Additional approaches and potential considerations for vulnerability scores are found in [11, 12, 13, 14].

To find the right balance of treating high-traffic streets versus trouble spots and neighborhood roads, a two-stage network flow model is presented to model traffic on the road network. It is assumed that the traffic capacity of a road segment is bounded by a function of the traffic count of that road segment under normal driving conditions, the RVI of the road segment, and the degree to which the road segment has been treated. This, together with population and traffic data, allows for the modeling of sources and sinks, as well as various kinds of traffic in the network. The objective is to find a snow plow route that will maximize the flow through the road network after treatment, subject to salt, fuel, and time constraints. This allows for the identification not only of which roads should be treated, but also the amount of deicing solution that should be applied to the treated roads.

3 MIP formulation

The problem studied consists of routing deicing vehicles to a subset of the roads in the network in a way that maximizes the utility of the treated network. These routes must obey constraints on the salt and fuel capacities of the vehicles, as well as constraints on the total salt and fuel usage and total time allotted.

Let \(\mathcal {G}= (\mathcal {V},\mathcal {A})\) be a multigraph, where the vertex set \(\mathcal {V}\) represents the intersections and various locations within the city, and the arc set \(\mathcal {A}\) represents the road segments of the road network. We denote by \(\mathcal {S}\subset \mathcal {V}\) the set of residences within the city and will refer to these as supply nodes, and by \(\mathcal {D}\subset \mathcal {V}\) the set of commercial and government locations, that we will call demand nodes. Also, let \(\mathrm{Dep} \in \mathcal {V}\) be the fuel and salt depot location. In the model presented, we assume a single depot, but this can be easily generalized to multiple depots by using techniques similar to those in [9]. Further, let \(\mathcal {P}\) be the set of heterogeneous deicing vehicles. We denote the salt capacity of vehicle \(p \in \mathcal {P}\) as \(Q_\mathrm{S}^p\) and the fuel capacity as \(Q_\mathrm{F}^p\).
Table 1

Sets and parameters

\(\mathcal {G}= (\mathcal {V},\mathcal {A})\)

Directed multigraph of the road network

\(\mathcal {S}\)

Subset of nodes that represent first-stage flow sources/second-stage flow sinks

\(\mathcal {D}\)

Subset of nodes that represent first-stage flow sinks/second-stage flow sources

\(\mathcal {P}\)

Set of deicing vehicles


First-stage flow supply/second-stage flow demand at node \(u \in \mathcal {S}\)


First-stage flow demand/second-stage flow supply at node \(v \in \mathcal {D}\)


Maximum amount of deicing material allowed for road segment \((i,j)\in \mathcal {A}\)


Minimum amount of deicing material possible for road segment \((i,j)\in \mathcal {A}\)


Total amount of deicing material available


Amount of time required to traverse road segment \((i,j)\in \mathcal {A}\)


Total amount of vehicle time available


Amount of fuel required for vehicle \(p\in \mathcal {P}\) to traverse road segment \((i,j)\in \mathcal {A}\)


Total amount of fuel available


Fuel capacity for vehicle \(p\in \mathcal {P}\)


Deicing material capacity for vehicle \(p\in \mathcal {P}\)


Traffic count for road segment \((i,j)\in \mathcal {A}\)


RVI for road segment \((i,j)\in \mathcal {A}\)

\(\gamma _{i,j},\alpha _{i,j},\beta _{i,j}\)

Weights to account for the impact of traffic count (\(\gamma _{i,j}\)), RVI (\(\alpha _{i,j}\)), amount of deicing material (\(\beta _{i,j}\)) on capacity of a road segment \((i,j)\in \mathcal {A}\)

Table 2



Second-stage flow through the network (continuous)


First-stage flow across arc \((i,j)\in \mathcal {A}\) (continuous)

\(f_{i,j}^{\prime }\)

Second-stage flow across arc \((i,j)\in \mathcal {A}\) (continuous)


Number of times vehicle \(p\in \mathcal {P}\) traverses road segment \((i,j)\in \mathcal {A}\) (integer)


Indicates whether vehicle \(p\in \mathcal {P}\) traverses road segment \((i,j)\in \mathcal {A}\) (binary)


Deicing material applied to road segment \((i,j)\in \mathcal {A}\) by vehicle \(p\in \mathcal {P}\) (continuous)

For an arc \((i,j) \in \mathcal {A}\), let \(\mathrm{TC}_{i,j}\) and \(\mathrm{RVI}_{i,j}\) be the traffic count and RVI, respectively, for the corresponding road segment. Let \(S_{i,j}^\mathrm{max}, S_{i,j}^\mathrm{min}\) be the maximum and minimum, respectively, amount of deicing material allowed for road segment (ij), and \(S^\mathrm{total}\) the total amount of deicing material available. Also, we denote by \(T_{i,j}\) the amount of time it takes to traverse the road segment and \(F_{i,j}^p\) be the amount of fuel vehicle \(p \in \mathcal {P}\) uses to traverse road segment (ij), with \(T^\mathrm{total}\) and \(F^\mathrm{total}\) being the total amount of plow time and fuel, respectively, available. Note that a vehicle may traverse a road segment without treating that road segment. Due to the speeds typically driven within a city, we assume that all vehicles take approximately the same amount of time to traverse a given road segment—that is, travel time across a road segment is a function of the road segment alone.

Table 1 contains a concise summary of the sets and parameters, while Table 2 summarizes the variables of the model.

Since we are representing traffic in the road network via network flows, we will consider two flows through the network. These flows are the first- and second-stage flows. The first-stage flow is to represent individuals trying to leave their residence to go to a commercial or government location, while the second-stage flow represents individuals trying to return to their residence from one of these locations. Less formally, the first-stage flow represents the morning traffic, while the second-stage flow represents the evening traffic.

As is typically done in network flow models with several sources and sinks, we add two artificial nodes s and t as dummy source and sink nodes for the simplicity of modeling. Since these dummy nodes provide easy-to-find minimum cut sets, they will also be used to limit the flows to and from the residence and destination nodes, as well as capture the objective value. Let \(s \in \mathcal {V}\) be the dummy source node for the first-stage flow and \(t \in \mathcal {V}\) be the dummy sink node for the first-stage flow. We note that the first-stage flows, in a sense, represent traffic in a certain direction, while the second-stage flows represent traffic in the opposite direction. Because of this, t will be the dummy source node for the second-stage flow, while s is the dummy sink for the second-stage flow. We assume, for every residence node \(u \in \mathcal {S}\), the arcs (su) and (us) are in the graph. Similarly, for every destination node \(v \in \mathcal {D}\), we assume (vt) and (tv) are in the graph. We further assume arcs (st) and (ts) are in the graph, each with capacity of \(\infty \).

For each arc \((i,j) \in \mathcal {A}\) and each vehicle \(p \in \mathcal {P}\), let \(y_{i,j}^p\) be the number of times p traverses arc (ij), \(x^p_{i,j}\) indicate whether or not p traverses arc (ij), \(s^p_{i,j}\) be the amount of deicing material applied to (ij) by p. We note that the \(x^p_{i,j}\) variables are redundant; however, their introduction allows some of the constraints to be written more concisely. In a sense, the x variables can be thought of as dictating the underlying graph of a Chinese Postman Problem, while the y variables are used to construct the routes on the graph defined by the x variables.

We note that the underlying graph is assumed to be a multigraph, allowing for multiple arcs between two nodes. This allows the model to account for multiple lanes on a given road segment by having multiple edges between the two nodes representing the end points of the road segment. However, it is important to note that this will induce multiple symmetries within the model that will have to be dealt within order to solve instances of any practical size. One way to cut off such symmetries would be forcing one lane to be treated prior to the others. As an example, suppose \(e_1\) and \(e_2\) are edges between i and j with identical characteristics. To ensure \(e_1\) is treated before \(e_2\) is treated, for each vehicle \(p \in \mathcal {P}\), the constraint \(x_{e_1}^p \ge x_{e_2}^p\) is added. This ensures that \(e_2\) is treated only if \(e_1\) is also treated.

Since the goal is to allocate deicing resources in such a way as to maximize the number of people that can leave home, travel as they need, then return home, the objective of the MIP model is to maximize the second-stage flow through the network. Let f be the variable to measure the second-stage flow through the network. For each arc \((i,j) \in \mathcal {A}\), let \(f_{i,j}\) be the first-stage flow across the arc, and \(f^{\prime }_{i,j}\) be the second-stage flow across the arc. Since these flows represent traffic flows that occur at different times of the day, they will interfere with one another minimally. Note that, for the dummy source s and a supply node v, the first-stage flow across (sv) represents the number of people who are able to leave this source, while for the dummy sink t and a demand node u, the second-stage flow across arc (tu) represents the number of people who are able to leave this demand node. For standard (multi-commodity) network flow problems, the sum of the flows across an arc cannot exceed the arc’s capacity. However, since the flows in this model do not interfere with one another, we allow the sum of the flows to (perhaps) exceed the arc’s capacity, so long as neither of the flows individually do. For example, if an arc (ij) has a capacity of 5, then \(f_{i,j} = f^{\prime }_{i,j} = 5\) is a feasible flow. Fig. 1 illustrates this.
Fig. 1

Feasible first- and second-stage flows across arc (ij)

Many municipalities for which this approach would be useful primarily deal with snow and ice removal via deicing materials, as most snowfall events result in too little snow accumulation for plows to be useful. As a result, the model presented here does not include variables for snow plowing. The model is as follows:
$$\begin{aligned} \max f \end{aligned}$$
subject to:
$$\begin{aligned} f \le \sum _{i \in \mathcal {D}} f_{t,i}^{\prime } \end{aligned}$$
$$\begin{aligned}&f_{i,j} \le \gamma _{i,j} \mathrm{TC}_{i,j} \nonumber \\&\qquad - \alpha _{i,j} \mathrm{RVI}_{i,j}+ \beta _{i,j} \sum _{p\in \mathcal {P}}s^p_{i,j} \qquad \forall (i,j) \in \mathcal {A}\end{aligned}$$
$$\begin{aligned}&f_{i,j}^{\prime } \le \gamma _{i,j} \mathrm{TC}_{i,j} \nonumber \\&\qquad - \alpha _{i,j} \mathrm{RVI}_{i,j} + \beta _{i,j} \sum _{p\in \mathcal {P}}s^p_{i,j} \qquad \forall (i,j) \in \mathcal {A} \end{aligned}$$
$$\begin{aligned}&f_{i,j} \le \gamma _{i,j} \mathrm{TC}_{i,j} \qquad \forall (i,j) \in \mathcal {A}\end{aligned}$$
$$\begin{aligned}&f_{i,j}^{\prime } \le \gamma _{i,j} \mathrm{TC}_{i,j} \qquad \forall (i,j) \in \mathcal {A} \end{aligned}$$
$$\begin{aligned}&\sum _{i | (i,j)\in \mathcal {A}} f_{i,j} = \sum _{i | (j,i)\in \mathcal {A}} f_{j,i} \qquad \forall j \in \mathcal {V}\end{aligned}$$
$$\begin{aligned}&\sum _{i | (i,j)\in \mathcal {A}} f_{i,j}^{\prime } = \sum _{i | (j,i)\in \mathcal {A}} f_{j,i}^{\prime } \qquad \forall j \in \mathcal {V} \end{aligned}$$
$$\begin{aligned}&f_{s,u} \le S_{u} \qquad \forall u \in \mathcal {S}\end{aligned}$$
$$\begin{aligned}&f_{v,t} \le D_{v} \qquad \forall v \in \mathcal {D} \end{aligned}$$
$$\begin{aligned}&f_{u,s}^{\prime } = f_{s,u} \qquad \forall u \in \mathcal {S}\end{aligned}$$
$$\begin{aligned}&f_{t,v}^{\prime } = f_{v,t} \qquad \forall v \in \mathcal {D} \end{aligned}$$
$$\begin{aligned}&\sum _{u^{\prime } \in \mathcal {S}\cup \{t\}} f_{s,u^{\prime }} = \sum _{u \in \mathcal {S}}S_u \end{aligned}$$
$$\begin{aligned}&\sum _{v^{\prime } \in \mathcal {D}\cup \{s\}} f_{t,v^{\prime }}^{\prime } = \sum _{v \in \mathcal {D}}D_v \end{aligned}$$
$$\begin{aligned}&S^\mathrm{min}_{i,j} x_{i,j}^p \le s_{i,j}^p \qquad \forall (i,j) \in \mathcal {A}\qquad \forall p\in \mathcal {P}\end{aligned}$$
$$\begin{aligned}&\sum _{p\in \mathcal {P}}s^p_{i,j} \le S^\mathrm{max}_{i,j} \qquad \forall (i,j) \in \mathcal {A}\end{aligned}$$
$$\begin{aligned}&\sum _{p\in \mathcal {P}}\sum _{(i,j) \in \mathcal {A}} s_{i,j}^p \le S^\mathrm{total} \end{aligned}$$
$$\begin{aligned}&M x_{i,j}^p \ge y_{i,j}^p \qquad \forall (i,j) \in \mathcal {A}\qquad \forall p\in \mathcal {P}\end{aligned}$$
$$\begin{aligned}&x_{i,j}^p \le y_{i,j}^p \qquad \forall (i,j) \in \mathcal {A}\qquad \forall p\in \mathcal {P} \end{aligned}$$
$$\begin{aligned}&\sum _{(i,j) \in \mathcal {A}} s_{i,j}^p \le Q_\mathrm{S}^p \qquad \forall p\in \mathcal {P}\end{aligned}$$
$$\begin{aligned}&\sum _{(i,j) \in \mathcal {A}} F_{i,j}^p y_{i,j}^p \le Q_\mathrm{F}^p \qquad \forall p\in \mathcal {P} \end{aligned}$$
$$\begin{aligned}&\sum _{p\in \mathcal {P}}\sum _{(i,j) \in A} F^p_{i,j}y^p_{i,j} \le F^\mathrm{total} \end{aligned}$$
$$\begin{aligned}&\sum _{p\in \mathcal {P}} \sum _{(i,j) \in A} T_{i,j} y_{i,j}^p \le T^\mathrm{total} \end{aligned}$$
$$\begin{aligned}&\sum _{i | (i,j)\in \mathcal {A}} y_{i,j}^p = \sum _{i | (j,i)\in \mathcal {A}} y_{j,i}^p \qquad \forall j \in \mathcal {V}\qquad \forall p\in \mathcal {P} \end{aligned}$$
$$\begin{aligned}&\sum _{j | (\mathrm{Dep},j)\in \mathcal {A}} y_{\mathrm{Dep},j}^p \ge 1 \qquad \forall p\in \mathcal {P} \end{aligned}$$
$$\begin{aligned}&\sum _{\begin{array}{c} (i,j) \in \mathcal {A}\\ i\in C, j \not \in C \end{array}} Mx_{i,j}^p \qquad \forall C \subsetneq V {\setminus } \{\mathrm{Dep}\}\nonumber \\&\qquad \ge \sum _{\begin{array}{c} (i^{\prime },j^{\prime }) \in \mathcal {A}\\ i^{\prime },j^{\prime } \in C \end{array}} x_{i^{\prime },j^{\prime }}^p \qquad \forall p\in \mathcal {P} \end{aligned}$$
$$\begin{aligned}&x_{i,j}^p \in \{0,1\} \qquad \forall (i,j) \in \mathcal {A}\qquad \forall p\in \mathcal {P}\end{aligned}$$
$$\begin{aligned}&y_{i,j}^p \in \mathbb {Z}_+ \qquad \forall (i,j) \in \mathcal {A}\qquad \forall p\in \mathcal {P}\end{aligned}$$
$$\begin{aligned}&s_{i,j}^p \ge 0 \qquad \forall (i,j) \in \mathcal {A}\qquad \forall p\in \mathcal {P}\end{aligned}$$
$$\begin{aligned}&f_{i,j} \ge 0 \qquad \forall (i,j) \in \mathcal {A}\end{aligned}$$
$$\begin{aligned}&f_{i,j}^{\prime } \ge 0 \qquad \forall (i,j) \in \mathcal {A}\end{aligned}$$
$$\begin{aligned}&f \ge 0 \end{aligned}$$

Constraints (2a8b) are the flow aspect of the model. Constraints (1a2a) ensure that the objective function captures the total second-stage flow to the residences. Constraints (3a3b) set the capacity of each arc to depend on the traffic count, RVI, and deicing material on the arc, with (4a4b) being trivial upper bounds on the flow across an arc. Constraints (5a5b) are flow conservation constraints. Constraint (6a) ensures first-stage flow from a residence cannot exceed the number of people at that residence and (6b) ensures first-stage flow to a destination cannot exceed the number of people who want to go to that destination. Constraints (7a7b) ensure that the second-stage flow from a destination does is equal to the first-stage flow arriving at that destination, and similarly for residences. Constraints (8a8b) ensure that the total first-stage flow (resp. second-stage flow) from the artificial source and sink nodes is equal to the sum of the sources (resp. sinks), with flows along the arcs (st) and (ts) being un-routed flows.

Constraints (9a16f) model the deicing, resource constraints, and vehicle routing. Due to the nature of some of the valves used to disperse deicing materials, there may be a nonzero minimum amount of deicing material that can be applied if the valve is open. Constraints (9a) capture this. There is also a maximum amount of deicing material that can be laid on a road segment, (9b) models this. Constraint (9c) ensures the total deicing chemicals applied does not exceed the budget. Constraints (10a10b) tie the x and y variables together. It should be noted that M in these constraints is a large constant, with \(M = \max _{(i,j) \in \mathcal {A}, p \in \mathcal {P}}\{Q^p_\mathrm{F} / F^p_{i,j}\}\) being sufficient. Constraints (11a11b) are the fuel and salt capacity constraints for each vehicle and (12a12b) are the fuel and time budget constraints. Constraint (13a) ensures that if a vehicle goes to a location, it must leave that location, and vice versa, while (14a) makes sure that every vehicle leaves the depot. Constraint (15a) is similar to subtour elimination constraints in Traveling Salesman or Vehicle Routing instances, and we will refer to these constraints as disconnected subtour elimination constraints. The disconnected subtour elimination constraints ensure that, for any subset of nodes that does not include the depot, any vehicle route that includes a closed walk along these nodes must eventually leave these nodes. We note that these constraints are written in terms of the x variables, whereas the y variables ultimately contain the information needed to construct the individual routes. As mentioned previously, the x variables determine the underlying set of edges that will have vehicles traversing them, while the y variables contain the routes that will cover these edges. The disconnected subtour elimination constraints force the subgraph induced by these edges to be connected. This, together with (13a), forces each vehicle’s route to be a single closed walk. Just as in the subtour elimination constraints in TSP and VR instances, we note that there are exponentially many disconnected subtour elimination constraints. As before, M is a large constant, with \(M = |\mathcal {A}|\) being large enough.

A practical consideration in any deicing plan is quickly treating certain routes, such as emergency routes or bridges. The MIP model presented does not account directly for these considerations, and, to some degree, this is intentional. The approach presented is attempting to use deicing resources so as to maximize the people who can use the road network, not necessarily to maximize the treatment (or promptness of treatment) of emergency routes. Additionally, since many municipalities have effective treatment for emergency routes already in place, this approach is meant to augment current decision-making processes rather than wholly replace them. Regardless, there are at least two simple constraints that can be added to force certain edges to be treated. To ensure only that a given arc (ij) is treated by some vehicle, the constraint \(\sum _{p\in \mathcal {P}}x_{i,j}^p \ge 1\) can be added. Often, critical road segments need to be fully treated. To force a certain minimum treatment level TL on road segment (ij), the constraint \(\sum _{p\in \mathcal {P}}s_{i,j}^p \ge \mathrm{TL}\) can be added to the model. We note that the second approach is tighter than the first, as any solution that satisfies the second constraint also satisfies the first. Finally, the constructive heuristic presented later can easily be modified to account for these considerations, which we explain in Sect. 4.

4 Heuristic approach

In this section, we will discuss the details of a constructive heuristic approach for this problem. The heuristic has two phases: first, to build a priority queue of arcs to be treated, and second to route the deicing vehicles so as to treat the arcs in the queue. In a sense, the deicing vehicle routing problem studied in this work can be thought of as a capacity expansion problem with vehicle routing as a complicating subproblem. Thus, in order to build the priority queue of arcs to be treated, we take inspiration from the Capacity Expansion in a Flow Network Problem or the Parametric Budget Problem [15, 16]. We will first discuss the Capacity Expansion in a Flow Network Problem, as well as its solution approaches, for the sake of thoroughness. We will then adapt this approach to building a priority queue of arcs to be treated in our heuristic approach. Afterward, we will discuss the vehicle routing aspect of the heuristic.

4.1 Capacity expansion in a flow network problem

The Capacity Expansion in a Flow Network Problem, first described by Fulkerson in  [16] (where it was called the Parametric Budget Problem), is a variant of the Maximum Network Flow Problem. In this variant, the objective remains the same (find a feasible flow from the source to the sink that is maximum), but the capacities of the arcs in the graph can be increased, subject to some budgeting constraints. Typically, the amount by which the capacity of a particular arc can increase is bounded, as is the total amount by which all capacities can be increased.

More formally, let \(\mathcal {G}= (\mathcal {V},\mathcal {E})\) be a graph. Let \(s \in \mathcal {V}\) be the source node, and \(t \in \mathcal {V}\) be the sink node for a network flow. Let f be the flow from s to t, with \(f_{i,j}\) the flow along edge \((i,j) \in \mathcal {E}\). Further, we let \(c_{i,j}\) be the capacity of arc \(i,j \in \mathcal {E}\) and \(b_{i,j}\) the “budget” expended to increase the capacity of arc \(i,j \in \mathcal {E}\). Also, let \(a_{i,j}\) be the weight that determines the effect of spending budget on arc \(i,j \in \mathcal {E}\) on the capacity of the arc. The Capacity Expansion in a Flow Network Problem is as follows:
$$\begin{aligned} \max f \end{aligned}$$
subject to:
$$\begin{aligned}&\sum _{j^{\prime } | (j^{\prime },i) \in \mathcal {E}}f_{j^{\prime },i} - \sum _{j | (i,j) \in \mathcal {E}}f_{i,j} = 0 \qquad \forall i \in \mathcal {V}, i \ne s,t \end{aligned}$$
$$\begin{aligned}&f + \sum _{i|(i,s) \in \mathcal {E}}f_{i,s} = \sum _{j|(s,j) \in \mathcal {E}}f_{s,j} \end{aligned}$$
$$\begin{aligned}&\sum _{i|(i,t) \in \mathcal {E}}f_{i,t} = \sum _{j|(t,j) \in \mathcal {E}}f_{t,j} + f \end{aligned}$$
$$\begin{aligned}&f_{i,j} \le c_{i,j} +a_{i,j} b_{i,j} \qquad \forall (i,j) \in \mathcal {E}\end{aligned}$$
$$\begin{aligned}&b_{i,j} \le b_{i,j}^\mathrm{max} \qquad \forall (i,j) \in \mathcal {E}\end{aligned}$$
$$\begin{aligned}&\sum _{(i,j) \in \mathcal {E}}b_{i,j} \le b^\mathrm{max} \end{aligned}$$
$$\begin{aligned}&f_{i,j} \ge 0 \qquad \forall (i,j) \in \mathcal {E}\end{aligned}$$
$$\begin{aligned}&b_{i,j} \ge 0 \qquad \forall (i,j) \in \mathcal {E}\end{aligned}$$
$$\begin{aligned}&f \ge 0 \end{aligned}$$

Since this problem is a continuous linear programming problem, it can be solved in polynomial time [17]. However, a graph-theoretic primal-dual approach is known that will solve this problem. The basic idea is as follows. First, solve the flow problem, ignoring the expansion aspect of the problem. Then, as long as there is some budget left to increase the capacities, find the \(s-t\) path with the lowest marginal cost to send additional flow. If this cost is finite, increase the capacities of the saturated arcs in this \(s-t\) path until the marginal cost changes or the budget is exhausted. Repeat until the budget is exhausted, or no finite cost \(s-t\) path exists [15].

Note that, given the marginal cost of sending additional flow along each arc within \(\mathcal {G}\), the cheapest \(s-t\) path can be determined via a shortest path approach. If an arc ij is not saturated (i.e., \(f_{i,j} < c_{i,j}\)), then it is not necessary to increase the capacity of the arc to send additional flow along the arc. In this case, the marginal cost of the arc is 0. If the arc ij is saturated, but it is still possible to increase the capacity (\(f_{i,j} = c_{i,j}\) and \(b_{i,j} < b_{i,j}^\mathrm{max}\)), then the marginal cost of the arc is \(1 / a_{i,j}\). Lastly, if the arc ij is saturated and the capacity cannot be expanded (\(f_{i,j} = c_{i,j}\) and \(b_{i,j} = b_{i,j}^\mathrm{max}\)), then no additional units of flow may be sent along this arc. This corresponds to a marginal cost of \(\infty \). Constraint (18) computes the marginal cost of sending additional flow across an arc, using the above observations. The algorithm to solve the Capacity Expansion in a Flow Network Problem is given in Algorithm 1. We note that Algorithms 1 and 2 are due to Fulkerson and are contained in [16].
$$\begin{aligned} \pi (i,j) = {\left\{ \begin{array}{ll} 0 &{} \text {if } f_{i,j}< c_{i,j}\\ \frac{1}{a_{i,j}} &{} \text {if } f_{i,j} = c_{i,j} \text { and } b_{i,j} < b_{i,j}^\mathrm{max}\\ \infty &{} \text {if }f_{i,j} = c_{i,j}{} \text { and } b_{i,j} = b_{i,j}^\mathrm{max} \end{array}\right. } \end{aligned}$$

Notice that if we are only concerned with allocating deicing materials along the roadways, while ignoring the vehicle routing aspects present, then Problem (1a16f) is very similar to Problem (17a17j).

4.2 Capacity expansion inspired heuristic

As mentioned previously, the approach used for the heuristic can be broken into two main phases. Phase I consists of creating a priority queue of edges to treat, and phase II is routing the trucks.

In order to create the priority queue, we take inspiration from Algorithm 1. The main idea behind Algorithm 1 is to continue to find the \(s-t\) path in \(\mathcal {G}\) with the lowest marginal cost of sending additional flow. The deicing vehicle routing problem studied in this work can be thought of as a capacity expansion max flow variant, with a complicating underlying subproblem (vehicle routing in this case). Thus, we can adapt Algorithm 1 to approximate the ideal set of arcs to treat while providing an ordering of the arcs to approximate the importance of treating said arc. We note that, even while ignoring the vehicle routing aspect of the problem, there are two significant differences between Problem (17a17j) and Problem (1a16f). Namely, the flow problem aspect of Problem (1a16f) has multiple sources and sinks and multiple types of flows, and constraints (9a) may force a semi-continuous nature on the deicing material variables.

Often within network flow problems with multiple sources and sinks, an artificial master source node and an artificial master sink node are added to the problem. This allows for the model to then be treated as a single source/sink problem. The deicing vehicle routing problem we are studying has multiple flows in addition to multiple sources and sinks. While master source and sink nodes can be added to make the MIP easier to formulate, considering this modified graph will not work for Algorithm 1. To address the fact that multiple sources and sinks are present, we instead propose computing multiple shortest paths, and taking the shortest of these. For each source \(u\in \mathcal {S}\) and each sink \(v\in \mathcal {D}\), we need the \(u - v\) path with the lowest marginal cost of sending additional first-stage flow along it as well as the \(v - u\) path with the lowest marginal cost of sending additional second-stage flow along it. Note that the marginal cost of the \(v - u\) path may depend on the optimal \(u - v\) path and vice versa. Since these shortest paths are being computed so that their capacities can be expanded, it is possible that the shortest \(u - v\) path and the shortest \(v - u\) path share an edge. If an edge has a nonzero cost in the \(u - v\) path, then it should have a zero cost in the \(v - u\) path, as its appearance in the \(u - v\) path means it has been chosen to have its capacity expanded. To see this, consider the graph in Fig. 2, where s is the source for the first-stage flow (and the sink to the second-stage flow), and t is the sink for the first-stage flow (source for the second-stage flow). Note that the only \(s-t\) path is not disjoint from the only \(t-s\) path. Thus, if the capacity of arc ab is increased to allow more first-stage flow across the arc, it is not necessary to increase this arc’s capacity for the second-stage flow.
Fig. 2

\(s-t\) and \(t-s\) paths may not be disjoint

To account for this, instead of a single dual graph being maintained, as in Algorithm 1, two dual graphs are maintained. One is to compute the shortest paths with respect to the first-stage flows, and the other is to compute the shortest paths with respect to the second-stage flows. Additionally, since the objective function of Problem (1a16f) can be thought of as the amount of flow that can leave its source, find a sink, leave said sink, and return to its source, it is necessary to compute all \(u - v\) shortest paths in the first dual graph, then use those paths to update the weights in the second dual graph and compute the \(v - u\) shortest paths in the second dual graph. We note that this approach ultimately suffers from the same problems that graph theoretic multi-commodity flow algorithms suffer from. While these problems can be solved in polynomial time via linear programming, there is no known polynomial time algorithm that does not use linear programming.

The complication due to constraints (9a) is addressed in a simple manner. We note that, for an arc (ij), after \(S^\mathrm{min}_{i,j}\) deicing material has been applied to it, then the marginal cost to send additional flow across that arc no longer needs to consider the semi-continuous nature of the \(s_{i,j}^p\) variables. Thus, the marginal cost of an arc is approximately given by Eq. 18. However, prior to that, we need to account for the fact that there is a minimum amount of deicing material that must be applied to the arc. Since our approach is only approximating the path with the lowest marginal cost currently, we modify Eq. 18 as follows:
$$\begin{aligned} \pi ^{\prime }(i,j) = {\left\{ \begin{array}{ll} 0 &{} \text {if } f_{i,j}< c_{i,j}\\ \frac{1}{a_{i,j}} &{} \text {if } f_{i,j} = c_{i,j} \text {, } b_{i,j}< b_{i,j}^\mathrm{max}\\ {} &{}\text { and } \sum _{p\in \mathcal {P}}s_{i,j}^p > 0 \\ \frac{1}{a_{i,j}} + S^\mathrm{min}_{i,j} &{} \text {if } f_{i,j} = c_{i,j} \text {, } b_{i,j} < b_{i,j}^\mathrm{max}\\ {} &{}\text { and } \sum _{p\in \mathcal {P}}s_{i,j}^p = 0 \\ \infty &{} \text {if }f_{i,j} = c_{i,j} \text {, } b_{i,j} = b_{i,j}^\mathrm{max} \end{array}\right. } \end{aligned}$$
At each iteration, once the source–sink pair with the lowest estimated marginal cost has been identified, the approach used to determine the expansion of the edges in the relevant paths is identical to that of Algorithm 1. That is, simply find the edge in the relevant paths whose cost will change with the least amount of additional flow. The increase in flow required to increase the cost of this edge is the amount of additional flow that can be sent along these paths at the current cost.

In order to produce the priority queue mentioned, we note that at each iteration, the previously discussed approach searches for the cheapest bottleneck at that iteration. Thus, the first set of arcs that should be treated is the set of arcs that are at capacity (and can have their capacities increased) in the paths identified in the first iteration. The second set of arcs that should be treated is the set of arcs that are at capacity in the second iteration and so forth. This is the basis of Algorithm 3.

After the queue is built, phase II of the heuristic begins, detailed in Algorithm 4. This phase is where the deicing vehicles are routed. While vehicle routing problems can often be difficult to solve, especially on large instances, we note that heuristics will likely be sufficient for this problem. Deicing vehicles hold enough deicing materials to treat approximately 70 lane miles, while holding enough fuel to travel approximately 300 miles. Put simply, the trucks will often run out of salt before they run out of fuel. As a result, it is often unnecessary to route the trucks optimally with respect to distance travelled.

Since a priority queue is present, the idea behind the vehicle routing heuristic used is to build up the routes with a simple insertion rule as arcs from the queue are processed, similar in spirit to the Clarke and Wright savings heuristic [18]. We assume that the beginning and ending location is known for each truck. We initialize the route of each deicing vehicle as the shortest path from its beginning location to its ending location. For each arc in the priority queue, the truck used to treat this arc is determined by, of the trucks that have enough deicing material remaining to treat the arc, which truck has to travel the smallest marginal distance to treat this arc. The distance required to treat a new arc is determined by a simple insertion heuristic. Considering the route p as a series of vertices \(p = v_0, v_1, \ldots , v_{n-1}\), the cost to treat an arc (ij), denoted \(\nu (i,j)\), is defined as
$$\begin{aligned} \nu (i,j)&:= \ell (i,j) \nonumber \\&\quad + \min _{1<= k <= n-1}\{sp(v_{k-1},i) + sp(j, v_{k}) - \ell (v_{k-1},v_k)\} \end{aligned}$$
where sp(ij) is the length of the shortest path between i and j, and \(\ell (i,j)\) is the length of the arc (ij). This is simply the increase in the route length by adding (ij) to the route while keeping the order of the other arcs in the route the same. Note that this “cost” is in terms of the length added to the route of the truck. While it is expected that the trucks will run out of salt before they run out of fuel, some care needs to be given to ensure the truck routes remain feasible with respect to fuel usage time allowance. Further, since it is easy to determine if a given truck has enough salt remaining to treat an arc, this approach provides a nice compromise between approximating the difficult aspect of the problem while still capturing the important information.

As mentioned previously, critical routes are an important consideration in any winter road maintenance scheme. While the MIP model presented is not meant to incorporate these, the heuristic approach is meant to be an in-between strategy, incorporating ideas from both the current approach that many municipalities use (priority queues) and the MIP model (RVI values and overall network flow). As such, the heuristic can be easily adapted to account for critical routes and links. Since these arcs represent high-priority road segments, simply add them to the beginning of the priority queue at the start of phase I of the heuristic. This will ensure these road segments receive the treatment needed. Further, as treatment to these segments is often time-sensitive, phase II can be modified so that, after these critical arcs are treated, no less critical arcs may be inserted into the vehicles’ routes before these arcs. This forces these arcs to be treated first.

5 Computational experiments

5.1 Experimental procedure

All coding was done in C++ with extensive use of the Boost C++ Libraries [19]. The integer programming solver used was Gurobi version 7.5.1. All tests were done on a 16 core (32 thread) workstation with 2 Intel Xeon E5-2670 processors (2.6 GHz), 256 GB RAM, running Ubuntu 14.04.5. Due to the large number of disconnected subtour elimination constraints, these constraints were enforced in a lazy fashion by checking candidate solutions for subtours that do not include the depot. If such subtours were found, a violated disconnected subtour elimination constraint was added as a lazy constraint. Experiments were run using default parameters. Each instance was given a time limit of 30 min.
Fig. 3

Proportion of population unaffected by snow event under different treatment techniques and levels of salt budget, random instances

Two sets of instances were created, one using random graphs and one using a combination of actual and simulated data. In the random set, three graphs were created, with 200, 300, and 400 nodes. Each node was randomly assigned as a residence (10% chance), a destination (10% chance), or an intersection (80% chance). One intersection node was randomly chosen as the fuel/salt depot for each graph. In the data-driven graphs, three locations within Knox County, TN were selected at random, while a fourth was created using data from downtown Knoxville. For each of the 7 graphs, 11 different deicing material budget levels were considered. For all the graphs except the downtown Knoxville graph, the levels corresponding to a total deicing material budget of between 5 and 25% of what would be necessary to treat the network fully. For the downtown Knoxville graph, significantly less deicing material was necessary, and so these budget levels were between 0.5 and 1.5%.

In the random instances, the arc sets of the graphs were generated in two phases. The first phase generated the subgraph on the intersection nodes. This was done in an Erdős–Rényi fashion [20] so that the average in- and out-degree of a node was 3. If the resulting graph was not strongly connected, the arcs were removed and another arc set was generated. This was repeated until the resulting graph was strongly connected. The second phase added the remaining arcs. This was done with a modified Barabási–Albert model [21] so that the average degree of the residences and destinations was 2.

As for the parameter values in the random graphs, RVI values were assigned randomly from a uniform distribution, while arc lengths were assigned randomly from an exponential distribution. Fuel requirements, traversal times, and salt requirements for each road segment were assumed to be proportional to the length of the segment. Additionally, residence and destination data were selected randomly from an exponential distribution.

For the data-driven graphs, four locations within Knox County, TN were utilized to generate these graphs, with three being chosen at random and the last corresponding to downtown Knoxville. Lengths of each road segment are known for Knoxville, TN, so this data were not generated randomly. Again, traversal times, fuel requirements, and salt requirements for each road segment were assumed to be proportional to the length of the segment. Further, it is known whether each node is an intersection, residence, or destination. While RVI values are meant to take weather forecasts into account, assuming uniform snow coverage, RVI values for Knoxville, TN are known, and these values were used.

In both sets, because the flows are meant to represent the flow of traffic, the parameter \(\gamma _{i,j}\) was set to 1 for all arcs. Note that for our purposes, \(\gamma _{i,j} = 1\) because the flows are meant to represent traffic. We include the \(\gamma \) multipliers for the sake of generality. The RVI values are between 0 and 6, inclusive, with 0 representing road segments that receive full sunlight and have little to no pitch, with 6 representing road segments that receive little sunlight and have a grade of at least 10%. The \(\alpha _{i,j}\) parameter of each road segment was scaled such that an RVI value of 0 corresponds to a flow capacity of 100% of the clear weather traffic count with no treatment, and an RVI value of 6 corresponds to a flow capacity of 20% of the clear-weather traffic count with no treatment. That is, \(\alpha _{i,j} = \frac{2}{15} \mathrm{TC}_{i,j}\). The \(\beta _{i,j}\) parameter was scaled so that each lane requires 200 lbs. of deicing material per mile to be treated fully [1], so \(\beta _{i,j} = \frac{\mathrm{TC}_{i,j}}{200\ell (i,j)}\), where \(\ell (i,j)\) is the length of arc (ij).

Additionally, since many cities consider only traffic counts to determine priorities for the roads to treat, we compare our solutions with solutions obtained by treating the arcs with the highest traffic counts first.
Fig. 4

Proportion of arcs in network treated under different treatment techniques and levels of salt budget, random instances

Fig. 5

Run time of different treatment techniques at various levels, random instances

Fig. 6

Proportion of population unaffected by snow event under different treatment techniques and levels of salt budget, Knoxville instances

Fig. 7

Proportion of arcs in network treated under different treatment techniques and levels of salt budget, Knoxville instances

Fig. 8

Run time of different treatment techniques at various levels, Knoxville instances

5.2 Results

Figures 3, 4, and 5 report the computational results for the random instances, while Figs. 6, 7, and 8 report the results for the Knoxville instances. n is the number of nodes in the graph, m the number of arcs in the graph, and treatment level is the total salt budget for the instance, given as a proportion of the total amount of salt required to treat all roads fully. MIP corresponds to the solution obtained by using Gurobi as the solver, Heuristic reports the data for the heuristic developed in Sect. 4, and Current Approach is the results of ranking roads according to traffic counts only. While the number of arcs treated is not part of the objective function of the model, a significant motivation behind this work is to utilize deicing resources so as to be able to treat more roads. As a result, we also report the number of arcs that was treated. Since the MIP approach was given a time limit of 1800 seconds, in the event of a timeout, we only report the data from the best found solution.

The quality of the solutions found by the currently used approach was significantly surpassed by the solutions obtained from the MIP formulation and the heuristic approach, both in terms of the objective function and the number of arcs treated. In the random instances, the MIP approach sees an average flow improvement of 68.9% over the current approach, while the heuristic approach sees an average improvement of 45.9% over the current approach. Additionally, in the Knoxville instances, the MIP approach provides an objective function improvement of 60.9% over the current approach, while the heuristic approach performs 41.9% better than the current approach.

We note that the instances became computationally easier for the MIP solver as the budget increased, while the opposite trend was exhibited for the heuristic approach. While not reported directly, the MIP approach reached the time limit of 1800 s in 4 of the 33 random instances, and in 6 of the 44 Knoxville instances. Interestingly, all 6 of the timeouts were on the same instance, Knox2. Additionally, the heuristic approach never took longer than 10 s in any of the 77 instances, having an average run time of 3.01 s on the Knoxville instances, and 0.60 s on the random instances.

Also of interest are the budget levels required for the Downtown Knoxville instance. Even with no treatment, the flow was approximately 80% of what it would be under full treatment. This is in part because of the close proximity of residence locations and destination locations. Because these locations are often so close to one another, most people have a route to some location even with no treatment. While this may at first glance seem like a problem with the approach, it may reflect the actual state of the system. While individuals often cannot choose the locations at which they work, there are often several options for other travel destinations. For instance, if someone has a grocery store within walking distance, even if this is not their preferred shopping location, it may be an acceptable option if driving conditions are unfavorable.

6 Conclusion and future work

Traffic counts alone are not enough when planning winter road maintenance strategies. By utilizing traffic patterns, meteorological data, and road network topology and topography, better maintenance strategies can be developed. By decreasing over-treatment of non-critical road segments, we can develop strategies which not only reduce the population affected by snow events, but also decrease deicing material use in general. In addition to the obvious savings enjoyed by having more efficient strategies, using our resources more wisely also reduces many of the non-primary costs associated with winter road maintenance, such as road damage and pollution.

We have presented two strategies in this paper, one using a MIP formulation and another using a graph-theoretic approach. While the MIP approach is meant to augment existing road maintenance strategies rather than replace them, the heuristic approach may be a candidate for a new strategy altogether. This approach is similar to existing strategies in that it maintains a priority queue for the road segments, allowing public works personnel to rank the importance of road segments. Because of this, many municipalities can adopt this approach with little to no reworking of the other aspects of their strategy. Further, many currently used approaches just use traffic counts to create these priority queues. Our approach has the benefit of being able to utilize weather forecasts, traffic patterns, and overall road network topology instead of just raw traffic counts. Additionally, we have shown that our approach takes mere seconds to solve on city-scale instances. This means that this method is suitable for systems that account for changing weather patterns and other unforeseen events in near real-time.

Lastly, the current approach in many municipalities always treats the same roads. The model proposed here can suffer from the same limitation without high-quality weather forecasts or on-the-fly systems. While certainly some people within any area will be happy with this, many find themselves living on roads that never get treated. With this in mind, some natural questions are:
  1. 1.

    How many optimal/near-optimal solutions are there, and how different are these solutions?

  2. 2.

    If the problem were to find a set of solutions such that each road is treated in at least one of these solutions, how far from optimal would the worst solution be?

  3. 3.

    Is there a set of near-optimal solutions that will treat most roads with roughly equal probability? How much in terms of optimality would have to be sacrificed to find such a set?

  4. 4.

    Many large urban areas will have residence nodes interspersed with commercial locations, which can interfere with a two-stage flow model’s results. However, this can be overcome by introducing multiple first and second-stage flows, but these problems can quickly become computationally taxing. What is the fewest number of flows that can be used to address this issue?




Research sponsored by the Laboratory Directed Research and Development Program of Oak Ridge National Laboratory, managed by UT-Battelle, LLC, for the US Department of Energy. This manuscript has been authored by UT-Battelle, LLC under Contract No. DE-AC05-00OR22725 with the US Department of Energy. The US Government retains and the publisher, by accepting the article for publication, acknowledges that the US Government retains a non-exclusive, paid-up, irrevocable, worldwide license to publish or reproduce the published form of this manuscript, or allow others to do so, for US Government purposes. The Department of Energy will provide public access to these results of federally sponsored research in accordance with the DOE Public Access Plan (

Compliance with ethical standards

Conflict of interest

On behalf of all authors, the corresponding author states that there is no conflict of interest.


  1. 1.
    Henry, J.J. et al.: Highway Deicing—Comparing Salt and Calcium Magnesium Acetate. Technical Report 235. Transportation Research Board (1991)Google Scholar
  2. 2.
    Rubin, J. et al.: Maine Winter Roads: Salt, Safety, Environment and Cost. Technical Report 10-06. Margaret Chase Smith Policy Center, The University of Maine (2010)Google Scholar
  3. 3.
    Mei-Ko, K.: Graphic programming using odd or even points. Chin. Math. 1, 273–277 (1962)MathSciNetzbMATHGoogle Scholar
  4. 4.
    Ghiani, G., Improta, G., Laporte, G.: The capacitated arc routing problem with intermediate facilities. Networks 37(3), 134–143 (2001)MathSciNetCrossRefGoogle Scholar
  5. 5.
    Perrier, N., Langevin, A., Campbell, J.F.: A survey of models and algorithms for winter road maintenance. Part i: system design for spreading and plowing. Comput. Oper. Res. 33(1), 209–238 (2006)CrossRefGoogle Scholar
  6. 6.
    Perrier, N., Langevin, A., Campbell, J.F.: A survey of models and algorithms for winter road maintenance. Part ii: system design for snow disposal. Comput. Oper. Res. 33(1), 239–262 (2006)CrossRefGoogle Scholar
  7. 7.
    Perrier, N., Langevin, A., Campbell, J.F.: A survey of models and algorithms for winter road maintenance. Part iii: vehicle routing and depot location for spreading. Comput. Oper. Res. 34(1), 211–257 (2007)CrossRefGoogle Scholar
  8. 8.
    Perrier, N., Langevin, A., Campbell, J.F.: A survey of models and algorithms for winter road maintenance. Part iv: vehicle routing and fleet sizing for plowing and snow disposal. Comput. Oper. Res. 34(1), 258–294 (2007)CrossRefGoogle Scholar
  9. 9.
    Kinable, J., van Hoeve, W.-J., Smith, S.: Optimization models for a real-world snow plow routing problem. In: Integration of AI and OR Techniques in Constraint Programming, pp. 229–245 (2016)CrossRefGoogle Scholar
  10. 10.
    United States Department of Agriculture: Chapter 11: Snowmelt. In: National Engineering Handbook. Part 630, Hydrology (2004) Google Scholar
  11. 11.
    TRB: Highway Capacity Manual. Transportation Research Board, Washington, DC (2000)Google Scholar
  12. 12.
    Asamer, J., Reinthaler, M.:Estimation of road capacity and free flow speed for urban roads under adverse weather conditions. In: 13th International IEEE Conference on Intelligent Transportation Systems, pp. 812–818 (2010)Google Scholar
  13. 13.
    Snelder, M., Calvert, S.: Quantifying the impact of adverse weather conditions on road network performance. Eur. J. Transp. Infrastruct. Res. 16(1) (2016)Google Scholar
  14. 14.
    Roh, H.-J., Sharma, S., Sahu, P.K.: Modeling snow and cold effects for classified highway traffic volumes. KSCE J. Civ. Eng. 20(4), 1514–1525 (2016)CrossRefGoogle Scholar
  15. 15.
    McMasters, A.W.: Optimal Capacity Expansion in a Flow Network. Technical Report NPGS55MG72091A, United States Naval Postgraduate School (1972)Google Scholar
  16. 16.
    Fulkerson, D.R.: Increasing the capacity of a network: the parametric budget problem. Manag. Sci. 5(4), 472–483 (1959)MathSciNetCrossRefGoogle Scholar
  17. 17.
    Karmarkar, N.: A new polynomial-time algorithm for linear programming. Combinatorica 4(4), 373–395 (1984)MathSciNetCrossRefGoogle Scholar
  18. 18.
    Clarke, G., Wright, J.W.: Scheduling of vehicles from a central depot to a number of delivery points. Oper. Res. 12(4), 568–581 (1964)CrossRefGoogle Scholar
  19. 19.
    Boost: Boost C++ Libraries. Last Accessed 12 Jun 2018 (2018)
  20. 20.
    Rényi, A., Erdős, P.: On random graphs. Publ. Math. 6, 290–297 (1959)MathSciNetzbMATHGoogle Scholar
  21. 21.
    Albert, R., Barabási, A.-L.: Statistical mechanics of complex networks. Rev. Mod. Phys. 74, 47–97 (2002)MathSciNetCrossRefGoogle Scholar

Copyright information

© This is a U.S. government work and not under copyright protection in the U.S.; foreign copyright protection may apply 2019 2019

Authors and Affiliations

  1. 1.Department of Industrial and Systems EngineeringUniversity of TennesseeKnoxvilleUSA
  2. 2.Urban Dynamics InstituteOak Ridge National LaboratoryOak RidgeUSA

Personalised recommendations