Scheduling unit processing time arc shutdown jobs to maximize network flow over time: complexity results

Many real life systems can be viewed as a network with arc capacities, supporting the flow of a commodity. For example, transportation networks, or supply chains, may on occasion be viewed this way. We were motivated by a particular coal export supply chain [4], in which – as in many resources supply chains today – maximizing throughput is a key concern. Whilst this suggests a maximum flow model would be appropriate, in fact, the real network is not static: capacities change over time, and in particular, some arcs are shut down for maintenance at certain times. Often there is some flexibility in the time when maintenance jobs can be scheduled. Every maintenance schedule will incur some loss in the total throughput of the network. To obtain maximum throughput, it is important to select the schedule that leads to minimum loss of flow. This leads to a model in which arc maintenance jobs need to be scheduled so as to maximize the total flow in the network over time [1, 2, 3]. In this paper we consider the case of this problem in which all maintenance jobs have unit processing time. The problem is defined over a network N = (V,A, s, t, u) with node set V , arc set A, source s ∈ V , sink t ∈ V and nonnegative capacity vector u = (ua)a∈A. Note that we permit parallel arcs, i.e. there may exist more than one arc in A having the same start and end node. By δ(v) and δ(v) we denote the set of incoming and outgoing arcs of node v, respectively. We consider this network over a set of T time periods indexed by the set [T ] := {1, 2, . . . , T }, and our objective is to maximize the total flow from s to t. In addition, we are given a subset J ⊆ A of arcs that have to be shut down for exactly one time period in the time horizon. In other words, there is a set of maintenance jobs, one for each arc in J , each with unit processing time. Our optimization problem is to choose these outage time periods in such a way that the total flow from s to t is maximized. More formally, this can be written as a mixed binary program as follows: