through arcs of the network in each period over an infinite horizon so as to satisfy conservation of flow from some fixed period on. Furthermore, the net amount of ...
MATHEMATICS OF OPERATIONS RESEARCH Vol. 9, No. 2, May 1984 Printed in U.S.A.
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS* JAMES B. ORLIN Massachusetts Institute of Technology This paper presents and solves in polynomial time the minimum convex cost dynamic network flow problem, an infinite horizon integer programming problem which involves network flows evolving over time. The model is a finite network in which each arc has an associated transit time for flow to pass through it. An integral amount of flow is to be sent through arcs of the network in each period over an infinite horizon so as to satisfy conservation of flow from some fixed period on. Furthermore, the net amount of flow "in transit" is assumed fixed over the infinite horizon. The objective is to minimize the average convex cost per period of sending flow. This problem is a generalization of the minimum convex cost network flow problem, the maximum throughput dynamic network flow problem, and the minimum cost-to-time ratio circuit problem. Furthermore, the model has applications in periodic production and transshipment, airplane scheduling, cyclic capacity scheduling, and cyclic staffing. To solve the dynamic network flow problem, one first obtains an optimal continuous-valued flow which repeats every period. The fractional variables of this solution may be rounded in such a way as to obtain an optimal integral flow which repeats every q periods, where q is the least common denominator of the fractional parts of the continuous flow. Furthermore, this integral flow is also an optimal continuous flow.
."" .'r.. "
..·...-. '·-',· ··. '
.
i:
.
1.
Introduction
The model and problem formulation. In the sequel we present and solve in polynomial time the minimum convex cost dynamic network flow problem, an infinitehorizon integer programming problem that involves network flows evolving over time. This work extends the results of the author (1983) concerning maximum throughput dynamic network flows. In brief, we consider a finite network in which there is associated with each arc a real or + valued convex cost of flow therein that is linear between successive integers, and a (possibly negative) integer transit time that is the number of periods for flow to pass through the arc. A dynamic flow is a sequence of flows initiated in each arc in each period. Such a flow is called feasible if it is bounded, has finite cost in each period, satisfies conservation of flow in all except the first few periods during which flow is "initialized," and has a fixed "throughput." The throughput is the net flow in transit in each period and is shown in Orlin (1983) to be the same in each period after the first few. The throughput may also be viewed as the net amount of flow circulating in the network. This concept was introduced and studied in detail in Orlin (1983). A dynamic flow is called periodic if there is some number p of periods such that the amount of flow initiated in any arc in any period is the same as in that arc p periods hence. A dynamic flow is called optimal in a given class of flows if it is feasible and *Received July 16, 1981; revised September 8, 1982. AMS 1980 subject classification. 90C35. OR/MS Index 1978 subject classification. Primary: 484 Flow algorithms. Secondary: 114 Deterministic discrete time dynamic programming, 658 Infinite horizon programming. Key words. Network flows, dynamic optimization, periodic optimization, cyclic scheduling, vehicle routing;
workforce scheduling, production scheduling. 190 0364-765X/84/0902/0190$0 l .25 Copyright
_
_.._..1_1
- ---.I -I*··IIL Il--sC --P
i
I-
1984, The Institute of Managemeni Sciences/Operations Research Society of America
. ----
--- L--l
--- I----- -L----il--
191
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS
has a minimum long-run average cost per period among all feasible dynamic flows in the class. Our primary objective is to determine an optimal periodic integer dynamic flow, i.e., optimal among those dynamic flows that are both periodic and integer valued. Our
method for doing this involves two steps, viz., finding an optimal stationary continuous dynamic flow and then rounding the fractional values of that flow to form an optimal periodic integer dynamic flow. Moreover, this latter flow is also optimal in the class of
bounded continuous flows. Applications. The minimum convex cost dynamic network flow problem may be applied to various areas of operations research that involve deterministic demands repeating periodically over time. These include the cyclic capacity scheduling problem, the cyclic staffing problem, the periodic production and transshipment problem, the airline scheduling problem, and the minimum cost-to-time ratio circuit problem, as
detailed in §§5 and 6. In this section we introduce the basic network con-
2. Dynamic network flows.
cepts describing dynamic network flows. The exposition and terminology are compati-
ble with those of the author (1983). The static network and the problem formulation. A static network is a quadruple G=(NAt,c) in which N= (1, . . . n) is the node se t and A is the arc set of a directed graph, possibly containing loops (i.e., arcs joining a node to itself) and multiple arcs between two nodes. Associated with each arc a = (i, j) is a transit time t, which is the (possibly negative) integer number of periods for flow to travel from the
tail i of a to its headj. Also associated with arc a is a real or + x valued convex function c,(-) that is
linear between successive integers. We can model other network parameters by a suitable choice of c(-). For example, we can model an upper bound ua or a lower bound la on arc a by letting c,(xa) be c if x, > u, or xa < 1l. These networks have also been referred to in the literature as networks with transit times, for example by
Lawler (1976). Let Hi and T denote the set of arcs of A with head i and tail i, respectively. Let tmax = maXa Ata. In the following we wish to consider flow emanating along arcs in
each of an infinite number of periods. With this in mind, we let xP denote the amount of flow originating at the tail of arc a in period p and arriving at the head of arc a in period p + t. We refer to an infinite vector x = (xP) for a E A and p = 1,2,3,... as
a dynamic flow. We say that a dynamic flow is conservative if it satisfies the conservation-of-flow constraints.
XP
xP=
for i N and p > tmax
a
l
(2.1)
aE Hi
aETi
We define the flow in transit in arc a in period p for a dynamic flow x to be f4 defined as follows: P
x·
if t > 1,
xJ 4
if t < -1,
~
fP=
(2.2)
j=p-ta+ I
P-
fP
-
and
(2.2')
j=p+l
f= 0
(2:2")
if t = .
This term, introduced by the author (1983), may be interpreted as follows. If t > 1,
_
1.
.~~~~~~
qlCq .~~III~~~~T--1I~~~~IP--- L-
.p
I
-----;.~--
·---
-1--·--
il
,
-------
r-
192
JAMES B. ORLIN
then the flow in transit in arc a in period p is the sum of the flows initiated in the tail of arc a in or prior to period p and arriving at the head of arc a subsequent to period p. If t, - 1, then the flow in transit in arc a in period p is the negative of the sum of the flows initiated in the tail of arc a subsequent to period p and arriving at the head of a in or prior to period p. The following lemma was proved b Ith- author (1983). LEMMA 1. Let x = (xP) be a conservative dynamic network and let f1 be the flow in transit in arc a in period p. Then E.A n.. l. = EA. fP for all p > tn.ax An intuitive justification of the above lemma is as follows. In order to preserve
conservation of flow, all flow in transit subsequent to period tmax must be sent forward upon arriving at the head of an arc. Therefore, the total amount of flow in transit is constant after tma x .
We refer to the sum of the flows in transit in period t,,,,x as the throughput. This time-invariant parameter of dynamic network flows may be visualized as the number of unit "pulses of flow" that circulate through the static network over time. A dynamic network flow x = (xP) is called feasible if it is conservative, its sup norm is bounded, its throughput is identically 0, and c,(xj) is finite for all a c A and p= 1,2,3 .... A dynamic flow x = (xP) is called integer if xP is integer valued for a E A and p = 1,2, 3 .. . If we wish to emphasize that a dynamic flow is not necessarily integer,
we refer to it as being continuous. In the following for fixed p we let cP(x)
c(xP). Thus cP(x) is the sum of the
ZA
costs of flows beginning in the pth period. Let r
c(x)
lim r'
cP(x) p=1
be the long-run average-cost of x. A continuous (resp., integer) dynamic flow is called (average-cost) optimal if it is feasible and minimizes c ) among all such flows. The
dynamic network flow problem is to find an (average-cost) optimal integer dynamic flow. Comments on the model. The above model is in a canonical form and should be viewed from that perspective. In §4 we show how to extend and modify the model via linear transformations. Here we keep the model mathematically more simple so as to simplify the exposition of the solution technique. Below we address some other distinctive features of the model. The conservation of flow constraints stipulate that the "throughflow" of each node in each period p > tmax is zero. But why have we not required conservation of flow in
all periods, especially if our model motivation for ignoring the initial determining the optimal "long-run requirement and from the periodicity
is to have physical interpretations? Our basic conditions is that our model is designed for solution." In particular, by the boundedness of the requirements and costs, it is evident that
there is an optimum solution that is periodic. (Orlin (1981b) proves a more general version of this observation.) Thus we ignore the initial conditions on conservation of flow so that we can restrict attention to periodic dynamic network flows. Moreover, in
most applications the "phasing into" a periodic flow is easy. In the vehicle scheduling problems we can "initialize" a periodic optimal solution in one day by having the fleet move to appropriate starting positions. In the cyclic capacity scheduling problem we can "initialize" the schedule by buying additional capacity in the first day.
Although the initialization of a periodic solution requires little effort in practice, it is difficult theoretically. Orlin (1983) proved the NP-completeness of the problem of '"sXC4P-----
r
__
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS
193
determining a feasible dynamic network flow that satisfies conservation of flow in all periods. As discussed above, the throughput may be viewed as the amount of flow circulating in the static network. The requirement that the throughput is identically 0 is a mathematical convention (or convenience). In fact, the transformations in §4 reveal that we would replace the O-throughput requirement by upper and lower bounds on the throughput or more generally by a convex cost on throughput. Finally we observe that upper and lower bounds on arc flows are easily modeled via the convex cost function. (The function is cc-valued for flows that exceed their bounds.) Relation to other network flow problems. The minimum convex cost dynamic network flow problem includes as special cases each of the following variants of network flows: (1) the minimum cost (finite) network flow problem, (2) the maximum throughput dynamic network flow problem, and (3) the minimum cost-to-time ratio circuit problem. The minimum convex cost circulation problem is the special case of the dynamic network flow problem in which all transit times are 0. Here we can only model the minimum convex cost network flow problems in which the costs are linear between successive integers. Then there is always an integral optimum solution for the finite network flow problem. The maximum throughput dynamic network flow problem is the special case of the
minimum cost dynamic network flow problem in which the objective is to maximize the (average) throughput per period. Orlin (1983) treated this infinite horizon problem and showed that it is reducible to a minimum cost network flow problem. He also showed that Ford-Fulkerson maximum (finite-horizon) dynamic network flows (1958) are a special case of the infinite-horizon maximum throughput problem. Finally, we show in §6 that the minimum cost-to-time ratio circuit problem which was proposed and first solved by Dantzig et al. (1967) is a special case of the minimum cost dynamic network flow problem. Paths, copies, and the dynamic network. The terminology of this paper is the same as in Orlin (1983). Below we repeat some of the "less than standard" terminology. A path in a network is an alternating sequence of nodes and arcs i,) a, . ., ak, ik such that for each] = 1,..., k either a has head and tail i, or else it has head i_ and tail ij. In the former case the arc is called a forward arc of the path. In the latter case it is called a backward arc. A directed path is a path in which every arc is a forward arc. For a given static network, the transit time of a path is the sum of the transit times of the forward arcs of the path minus the sum of the transit times of the backward arcs. A cycle is a path in which the initial node is the same as the final node and such that no other node is repeated. We will sometimes refer to cycles as circuits. Let C be a cycle of G. A flow around C of k units is a static flow y = (,) such that k
-
Ya
k
0
if a is a forward arc of C, if a is a backward arc of C, if a is not an arc of C.
It is easily verified that a flow around C satisfies conservation of flow at each node. Let G = (N,A,t,c) be a static network. We expand G into an infinite network G =(N, A c'), called the dynamic network, where N
=
(iP : i E N andp E (1,2,3,...
),
for each arc a = (i, j) and p > max(-t + 1, 1) there is an arc aP = (iP, P+',) E A >,
~ ~ ~ ~ ~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~Il
_L~~~~~~~~~~~~~~O~~~~~~~~~~~~~~~I_^ I
194
JAMES B. ORLIN
-1 1
FIGURE 1.
A static network. ''he arc numbers are the transit times.
Periods. 1
2
3
4
5
6
7
8
I .
N o
.
2
d e s
3 4
FIGURE 2. The dynamic network derived by expanding the static network of Figure 1.
and the cost of a flow xP in arc a in period p is C(xp) for all a E A and p = 1, 2, 3 .... Node i represents node i of N in period p, and it is called the pth copy of node i. Arc a represents the ability to send flow from the tail of a in period p reaching its head in period p + t and it is called thepth copy of arc a. Figures I and 2
show a static network and the corresponding dynamic network. The numbers on the arcs of Figure are the transit times. The technique of expressing flows over time by creating a "time-expanded" network is standard. Many authors have used this construct including Ford and Fulkerson (1958) in their classic paper on constructing maximal dynamic network flows. The flowing elementary result was proved by the author (1983). It is an important part of the algorithm developed in the next section. LEMMA 2. Let C be a simple cycle with transit time t > I in the static network. Then the infinite number of copies of the arcs of C in the dynamic network comprise t
node-disjoint infinite paths. As an example, the lemma can be verified by inspection to be true for the static network of Figure 1 and the dynamic network of Figure 2. 3. The solution technique: Rounding optimal continuous stationary flows. In this section we give polynomial time algorithms for finding both optimal continuous and optimal integer dynamic flows. A dynamic flow x = (xP) is called stationary if x P = xP' for all a A and p > 1. The continuous problem is readily solved using the theory developed in Orlin (198 1a) which demonstrates that if there is an optimal continuous dynamic flow, then one such flow is stationary. To find an optimal integer dynamic flow, we round the fractional parts of an optimal continuous stationary flow so as to maintain feasibility and the same average cost per period. This results in an optimal integer dynamic flow that is periodic and is also an optimal continuous dynamic flow. The rounding procedure is delicate in that it depends not only on the preliminaries developed in the previous section, but also on a lemma concerning the fractional parts of "basic" static flows developed in this section. The naive approach of rounding the
---L-----CIIII-1--q--·(I*41111*IC_ll
LI"-·-·-----
'C-?
ICI-h-----·-
195
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS
fractional parts of flows up in some periods and down in other periods will not in general, lead to a feasible dynamic flow. LZMMA S tYUIICtI ItLU y Ut UotlUUUu sataLiVnlly Itows). Ij intrrf Is optimal) continuous dynamic flow, then one such flow is stationary.
u jeaSolte
resp.,
PROOF. If we replace the zero-throughput constraint (2.2) by the equivalent constraint that the sum of the arc flows in transit is 0 for each period (the equivalence following from Lemma ), then the continuous dynamic network flow problem is a special case of the dynamic convex programming problem. The result is then a specialization of Theorem I in Orlin (1981a). I In fact, all we really need for our algorithm is the following elementary corollary of Lemma 3. (We present the proof here for completeness.) COROLLARY 1. Suppose x = (xP) is a feasible integralperiodic dynamic network flow. Then there is a feasible continuous stationary dynamic network flow whose average cost per period is at most as great as that of x. PROOF.
Suppose x is periodic with period q. Then let y = (yP) be defined as follows: yP = q-(x + q) for all p > I and all a E A. Then y is a feasible stationary dynamic network flow whose average cost per period is by the convexity of
c(.) no greater than that of x. The requirement in Lemma 3 that the dynamic flows be bounded is crucial. An example is given in Orlin (1983) of a problem for which there is no bounded dynamic flow satisfying (2.1) and having finite cost despite the existence of an unbounded dynamic flow having these properties. Moreover, if we append to that example a node 3, and an arc (3, 3) with transit time - I and zero cost, we may also assume that there
is zero throughput. The static network flow problem. Consider the problem of determining an optimal stationary dynamic flow. Since the flow in each period is the same, we may ignore the superscripts on the variables xP and write the problem as the convex programming
problem (3.1) of minimizing
X aE Hi
(3.1a)
subject to
ca(xa)
E aGEA
X,,0
for
i
N
(3.1b)
a ET
and the fixed throughput constraint EXA a aCA
va~
~
(3.lc)
tax=O.
We refer to the vector x = (xa) as a static flow because any vector satisfying (3.1 b) may be viewed as a circulation in the static network. Note that each static flow x = (Xa) induces a stationary dynamic flow x ® = () given by xaP = Xa for a E A and
p = 1,2,3, .... The value of the left-hand side of (3. c) is called the throughput of the static flow x because it is also the throughput of x0 . A static flow x = (xa) is called feasible if (3.1a) is finite and if (3.1b) and (3.1c) hold. Later in this section we show how to transform an optimum stationary continuous flow into an optimum integer dynamic network flow. The transformation relies on the
"structure" of the fractional flows or alternatively on the structure of bases derived from the static network flow problem (3.1). This basis-structure lemma is stated below in a manner more suited to our solution technique. Part of the lemma is implicit in the paper by Chen and Saigal (1977) concerning network flow problems plus side con-
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ ~ ~~
/ a~~~~~~~~~~l _ L 1I~~~~~~~~~~~~~~~~~~~~~I___I-·.·I_-
-
I II1
196
JAMES B. ORLIN
straints. The part of the lemma concerning the fractional flows is also known (e.g., Magnanti (1980)), but it apparently has not appeared in the open literature. Finally, we observe that the following lemma does classify the fractionally basic flows combined with a very elementary property of linear programs, viz., that linear programs may be optimized at corner points. LEMMA 4. Let x' ='(x) be a feasible static network flow. Then there exists a feasible static flow y = (ya) such that c(y) < c(x') andy either is integer or else is the sum of an integer static flow and a flow around a cycle of k/ t units for some positive integers k < t with t being the transit time of the cycle.
PROOF. Let A' be the subset of arcs of A corresponding to the fractional elements O0.We first of x'. If A' = 0, then sety = x' and proof is complete. Thus suppose A' note that A' is a union of cycles. To see this, observe that if there were an arc in A' not on a cycle, then there would be a node i with a single arc a' in A' incident to it. Since the net flow through i is zero, it follows that the flow through a' is integral, contrary to
the definition of A'. Suppose next that there are two different cycles in A'. Suppose that C and C' are different cycles with arcs in A' and with respective transit times I and '. By possibly < I1'. If I = 0, let reorienting and relabeling these cycles, we may assume that If I > 0, let units. C of flow around a by adding obtained the circulation be x() x(8) be the circulation obtained by adding a flow around C of units and a flow around C' of - 61/1' units. Then x(8) is a nonzero circulation and its throughput is zero for all values of . Let 61 be the least positive value of such that x(86) has at least one more integer component than x'. Let 82 be the greatest negative value of 8 such that x(82) has at least one more integer component than x'. By the linearity of c() between successive integers it follows that c(x') > min(c(x(6)), c(x(82))). We can thus replace x' by x(86) or x(8 2), whichever has less cost. By repeating the above we eventually obtain a flow in which the arc subset A' is a single cycle C. We now claim that the circulationy = x' satisfies the conclusions of the lemma. Since x' is a circulation, the net flow through each node is zero, and thus the net
flow through each node as restricted to arcs of C is integral. Therefore the fractional parts of flows in the forward arcs of C is the negative of the fractional parts of the flows in the backward arcs of C, and we may write y as an integral flow plus a flow around C of k/I, with < k < I having no common factors. It remains to show that I divides the transit time t of C. To this end, let x be the flow derived from x' by subtracting a flow of k/l units around C. Then x is an integral flow with throughput t(- k/l). Since an integral flow has integral throughput, it follows that I divides t. I We say that a static flow is fractionally basic if it is the sum of an integer static flow and a flow around a simple cycle. It is implicit in the proof of Lemma 4 that a static flow x' = (x) is fractionally basic if it is the unique basic feasible solution of the linear program obtained from (3.1) by adding the constraints xJ < x, < xl for all a E A. Rounding and q-periodic solutions. A dynamic flow x = (xP) is called q-periodic if for a E A andp 1. The goal of this subsection is to develop a procedure for transforming a fractionally basic optimal static flow y into a q-periodic optimal integer flow x, where q is the common denominator of the fractional parts of the elements of y as expressed in lowest terms. The procedure consists of rounding the fractional parts of the elements of y' by increasing and decreasing flows along infinite paths in the dynamic network. Let P be an infinite path in the dynamic network G . To increase the flow along P by is to increase the flow in each forward arc of P by 6 and decrease the flow in each backward arc by 6. XP = XP'q
_C______I
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS
197
In the following we will use the expression r(mod p) to denote the value q in [0, p - 1] such that q - r(mod p). For example, 8(mod 3) = 2, and 9(mod 3) = 0. If w and x are dynamic flows, we say x rounds w if x is integer and the supremum norm of x - w is strictly less than one. THEOREM I (optimality of rounding). If y is a fractionally-basicstatic flow and if q is the least common denominator of the fractionalpartsof the elements of y then there is a feasible q-periodic dynamic flow x that rounds y and has the same average cost as yt If also y is an optimal static flow, then x is an optimal continuous (and integral) dynamic flow.
PROOF. If y is integer, then q = I and the result is true on choosing x = yt. Thus, suppose y is not integer. By assumption y is the sum of an integer static flow and a flow around a cycle C of k/t units for some positive integers k < t with t being the transit time of C. Then q = t/gcd(k, t). Choose r so that r/q = k/t. Now by Lemma 2, the copies of C consist of t disjoint infinite paths labeled 0, ... , t - I so that the ith copy of some given node of C belongs to path i(mod t) for all i > . Let x be the integer dynamic flow formed from y by increasing the flow along path i by (t - k)/t if i(mod q) < r and decreasing the flow along path i by k/ t otherwise. Increasing the flow along a path by (t - k)/t maintains conservation of flow at each node of the dynamic network except the first node of the path, rounds the flow in each forward (resp., backward) arc to the next highest (resp., lowest) integer, and increases the throughput by (t - k)/t. Decreasing the flow along a path by k/t also rounds all flows along the path to an adjacent integer and decreases the throughput by k/t. Thus x rounds y. Since q divides t, the flows along kit paths increase by (t - k)/t and the flows along (t - k)/t paths decrease by k/t. Hence x has the same throughput asy . Since conservation of flow is also maintained, x is feasible. Moreover, x is q-periodic. To see this consider xP and xP+q. If arc a of the dynamic network is on path i, then aP+q is on path j = (i + q)(mod t). Therefore, either the flows along paths i and j are both rounded up or both rounded down, and hence xP = Xp + q To complete the proof, it remains to show that the average cost of x is the same as that of y, viz., 2acA Ca(ya). To see this, observe that for any nonnegative integer p, p+ Xa = ty, for each arc a C A. Since ca() is linear between successive integers, it follows that
qq IZ
lim
Ca(Xa
) = ca(Ya),
completing the proof. EXAMPLE. Consider the static network illustrated in Figure 3.1, and suppose that a fractionally-extreme optimal static flow is: Y12 = 1/2, Y23 = 1/2, Y31 = 1/2, yI = -2.
The cycle corresponding to the fractional parts has transit time four and comprises four infinite-length paths in the dynamic network, and the paths are labeled 0, 1,2, 3 so that node 1I is on path i(mod4) for all i > 1. These four paths are illustrated in Figure 3.2. The rounding procedure given in the proof of Theorem 5 is to round up the flow in paths 0 and 2 by 1/2 while rounding down the flow in paths I and 3 by 1/2. Note that rounding up the flow in paths 0 and I and rounding down the flow in paths 2 and 3 would also give an integer optimal flow, but the period length would be four instead of the least common denominator two of the fractional parts of the elements of the static flow.
_
_ _I_ __C_
_
_
_II_
_
_
____I_
_IICILICI·QICI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~IM
198 JAMES
198
B. ORLIN
2
1
I yll 3.1. transit time 4. FIGURE
=
-2
J
A static network with a given optimal static flow. The fractional flows lie on a cycle with
Periods 1 N 0 o d
2
3
4
5
6
7
8
9 .
1
2
0
*a
e s
3
I
40
round up round down The four paths of the dynamic network of Figure 3.1 corresponds to the arcs with noninteger flow. If the fractional parts are rounded in the indicated way, the resulting flow is an integer optimal flow. FIGURE 3.2.
A polynomial algorithmfor the dynamic network flow problem. Here we combine the results of Lemmas 3 and 4 and Theorem I so as to give a brief description of how to
solve the dynamic network flow problem in polynomial time. An algorithm 1. Solve the convex cost static network flow problem (3.1) so as to obtain an optimal
solution y. (This step is discussed in more detail below.) 2. Determine a fractionally-basic optimal solution y' for the static network flow problem. (Here we can use the procedure given in the proof of Lemma 4.) 3. Locate the basic cycle C determined by y' and let k/t be the fractional parts of the forward arcs of C. Round up the flow on k of the infinite paths determined by C and round down the flow on the other t - k paths. (This rounding can be carried out
as in the proof of Theorem 1.) The first step in the algorithm may be carried out in polynomial time using the ellipsoidal algorithm as presented by Grotschel et al. (1980) under certain regularity conditions on the c( ) functions. These regularity conditions are formal in nature and can be determined from the Grotschel paper. (The conditions would be satisfied by virtually every convex function that could arise in practice, assuming that the convex
functions are linear between successive integers.) Of course, we realize that the ellipsoidal algorithm is not a practical approach to solving the convex static network flow problem. A more practical approach may involve using a Lagrangian multiplier to move the fixed-throughput constraint to the
N w ----
~
.-. 4o
l~s_~c RC --------
l
199
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS
ft~ ~ J
objective function and then using a convex cost network flow computer implementation. Step 2 of the algorithm is easily performed in O(INI IAI) steps. Finally, step 3 may be solved quickly or it may require exponential time depending on the output conventions. As stated above, step 3 requires the rounding of q distinct paths, and q may be as large as n - tma. Moreover, if tmax is large relative to n (e.g., 2"), the rounding may require an exponentially large number of steps. We can perform step 3 quickly if we allow a "modular representation" of the output. For example, suppose that arc a is a forward arc on the basic cycle C. Suppose also that the fractional flow on arc a is k/t as in step 3 and that the rth copy of arc a is on the first infinite path induced by C. Then we can express the flow on each copy of arc a as
follows: [YP al
if
(p - r)(modt) E [0, k - I],
a lYal
if
(p - r)(mod t) E [k, t -
].
This "modular representation" of the flow on arc a can be computed for all a E A in
0(n) steps. Using this representation, we can find and express an optimal solution in polynomial time. 4. Variants of the minimum convex-cost dynamic network-flow problem. Just as there are several equivalent variants of the minimum-cost network flow problem, there are several equivalent variants of the dynamic network flow problem. In fact, some of the applications given in §§5 and 6 are naturally expressed in terms of these variants. All of the variants below are expressed in terms of convex costs. However, we note that
upper and lower bounds on a variable u can be written in terms of a convex cost c(.) on u such that c(u) = oo whenever u is less than the given lower bound or greater than the given upper bound. Convex costs on flow into, out of, and through nodes. For any node i and period p, the inflow (resp., outflow) is the sum of all flows entering (resp., leaving) node i in that period. The throughflow is the outflow ninus the inflow. Consider a network (N, A, t, c) in which there are associated convex costs fJ, ff, fi on the inflow, outflow, and
throughflow respectively of nodej E N in each period p > tmax where the convex costs are real or + oc valued and are linear between successive integers. Furthermore, relax
the node throughflow constraints (2.1) and assume that the sum of the throughflows of all nodes in any period is 0. (If the sum of the throughflows is nonzero, then the throughput will change from period to period, as is evident from Lemma I and its
proof in Orlin (1981b).) We can reduce this problem to standard form by replacing the network G with a new network G' = (N', A', t', c') constructed as follows. Replace each node j E N by three nodes of G' labeled j', j, j, and add an additional node n + 1. For each arc a = (j, k) E A create an arc (jO, k') in A', and refer to this arc as the copy of (j, k) in
G'. The arc (j°,k) has the same transit time and cost as (j,k). Finally, for each i= 1,..., n, add the following three arcs each with transit time equal to zero: arc ° (ji,ji) with cost fj, arc (jt jO) with cost 0, and arc (n + 1,j t) with cost This T.
transformation is depicted in Figures 4.1 and 4.2. We form a I: I correspondence between flows in G and G' as follows. Let x be a
dynamic flow in G (not necessarily satisfying conservation of flow through nodes). For each arc a
A, let the flow in the copy a' E A' be the same in each period as the flow
in a. Let the flow in all other arcs in periods p > tmax be the unique amount of flow required so that conservation of flow is satisfied. Thus the flow in arc (j',j') (resp.,
--------------I·
·-----------·
,
-~~..
--- cl~-~·
lg~a~r~~crr--
Il~lrrll~Ly
-~--·l~lrxlllll~p-----i--
^----
I-
----
---
L
I
I-III
200
FIGURE 4.1. throughflow.
JAMES B. ORLIN
A static network. We assume that there are convex costs on the inflow, outflow and
i
FIGURE 4.2. The static network in Figure 4.1 after the transformation representing convex costs on inflow, outflow and throughflow.
(j t , jo)) is
the inflow (resp., outflow) of node] in G, and the flow in arc (n + 1, j') is the throughflow of j in G. (Note that the throughflow of n + I of G' is the sum of the throughflows of the nodes , . ., n of G, and this sum is 0.) The above correspon-
dence between dynamic flows of G and feasible dynamic flows of G' is easily invertible and is 1: 1. From the above, it is easy to see that the average cost of a feasible dynamic flow in
G' is the average cost of the corresponding dynamic flow in G. Convex cost of throughput. In the dynamic network flow problem, the throughput is required to be fixed at zero. Consider the problem derived by relaxing the throughput constraint and replacing it by a proper convex cost c() on throughput such that the cost is linear between successive integers. (This cost is treated as a long-run average cost.) If G = (N, A, t, c) is the original static network with cost ( ) on throughput, then we can transform it into standard form by creating a new network G' = (N', A', t', c) with N' = N U ({n+ I) and A' = A U (a) where a = (n + ,n + 1) is an arc with t'= - I and c,()= (). All other costs and transit times in G' are the same as the
corresponding values in G. Let x be a dynamic flow for G satisfying the conservation-of-flow constraints (2.1) but not necessarily the throughput constraint, and let f be the throughput of x. We associate with x a feasible dynamic flow y of G' as follows: -Y=
xP
for
aEA,
f,
for
a= a.
Then the average cost per period fory is the same as that for x, and the throughput of
y is 0. The above correspondence is also 1: 1. To see this, suppose that y is a feasible dynamic flow for G'. Since conservation of flow holds at node n + 1, we must have
I
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS
201
for p > tmax. Deleting all instances of arc a leaves the corresponding dynamic flow x of G with throughput y.
y =y+T
Periodically repeatingparameters. In the dynamic network flow problem, the transit times and costs repeat from period to period. Consider the generalization of the dynamic network flow problem in which the parameters repeat every k periods, i.e., for
some k > I the transit times and costs of the flow initiated in arc a in period p are the same as in period p + k for all a E A and p = 1,2, 3 .... Let N and A be the nodes and arcs of the original periodic problem. We reduce the periodic problem to the standard dynamic problem by expanding the original network
into a static network G' = (N',A', t', c') with N'= iP : i &N andp= ,...,k}. The static network G' represents flow in a block of k consecutive periods which we call an epoch, and i denotes node i in period p of an epoch. Furthermore, there is an arc a
in A' from i to jP with transit time t and cost c( ) if there is an arc (i, j) in the original problem such that the transit time in period r is p - r + kt', and its cost is c'. The transit time in the k-period expanded network differs from that in the original static network because transit time in the expanded network is measured in epochs. A
flow in the expanded static network from iV to jP with transit time t epochs corresponds to a flow with transit time p -r + kt& periods in the original static network.
I
FIGURE 5.
A static network with its parameters repeating every two periods. TABLE I The static network of Figure 4.1 Head Tail Transit Time 1 2 3
2 3 1
1 or 2 3 or 4 5
TABLE 2 The 2-period static network of Table I Head Tail Transit Time
*C"T"""""UIII------^11-_-_1111_
.I-..-------·--C
.. )--
·- li-·-I
-
11 12 21 22 31
22 22 32 32 12
32
12
,
....
-- -·I---
1 1 1 2 2 3
·- ·
ap
-
-
:····
--
-
202
JAMES B. ORLIN
2
3
FIGURE 6.
The 2-period expansion of the static network in Figure 4.2.
EXAMPLE. Let G be the network depicted in Figure 5 and described in Table 1, where transit times for arcs (1,2) and (2, 3) oscillate between the two given values. To represent G as a static network with repeating parameters we expand G into the 2-period representation G' pictured in Figure 6 and described in Table 2.
5. Cyclic capacity scheduling. The cyclic capacity scheduling problem is to minimize the per period cost of buying and selling integral amounts of capacity for intervals of time so as to satisfy periodically repeating demands for capacity. Veinott and Wagner (1962) showed that the finite-horizon version of the problem is a static finite-horizon network-flow problem. Formulation as a dynamic integer program. The dynamic integer programmingproblem consists of all problem instances (6.1) described as follows: r
Minimize
liminfr-' Z cxP
Subject to
AxP xP
and
(5.la)
r-- crj
+
Bx
+
> Ointeger
= d
for
p=1,2,3,...,
(5.lb)
for p= 1,2,3, ... ,
(5.1c)
Jlxll is finite,
(5.1d)
where A and B are (finite) m x n matrices, x is an n-vector of decision variables for each p > 1, c is an n-vector, and d is an m-vector. It is easy to show that without loss of generality we could replace the constraint that
Ilxll
is finite by the constraint that x is periodic (as proved by the author (1981b)).
Nevertheless, the periodicity of the solution does not make dynamic integer programming, much more tractable. Indeed, the author (1981b) proved that the dynamic integer programming problem is P-space hard, i.e., every problem that is solvable
using a polynomial amount of space is transformable into dynamic integer programming in polynomial time. (See Garey and Johnson (1979) for further definitions as
regards space and time complexity.) A 0-1 vector v is said to have consecutive ones if the ones of v occur in consecutive components, e.g., v = (0, 0, 0, 1, 1, 1, 1,0). The cyclic capacity scheduling problem is the subclass of dynamic integer program-
ming problems in which each column of the infinite staircase constraint matrix is a 0-1 vector with consecutive ones or else is the negative of such a vector. (Equivalently, each column of [] has either consecutive ones or its negative has consecutive ones.) _______1_________3__a*q*l___lil__·)·F11
_
ILI
_
_
_1___·
___
I
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS
203
Solution as a dynamic network flow problem. We transform the cyclic capacity scheduling problem into a variant of the dynamic network flow problem by using the technique of successive constraint subtractions. Veinott and Wagner (1962) used the same techniques for transforming the finite horizon capacity scheduling problem into the transshipment problem. The simple transformation is as follows: Keep the st constraint; for every i 2 replace the ith constraint of the cyclic capacity scheduling problem by the difference of the ith and the (i - I)th constraint. The resulting constraint matrix corresponds to a dynamic network flow problem in which the first constraint is the fixed throughput constraint. It is perhaps interesting that while the above transformation is invertible, the transformation of replacing the ith constraint by the difference of the ith and (i + l)th
constraints for i > I is not invertible. As an example of the transformatiQn, consider the problem in which the constraints
are as follows: x + X xi + xl
+
=4
forall
i
1,
(5.2a)
+ x'+l =3
for all
i
1,
(5.2b)
X'
Xj
>0
for j=1,2; il
1.
(5.2c)
After successive constraint subtractions, the resulting constraint system is as follows: xlx
+x
=4 +x= + l
-x
-i +2 =
-X 2
forall
i> 1,
forall
i >l,
and this is transformable into the dynamic network flow problem through the transformations in §4. Applications of cyclic capacity scheduling. Veinott and Wagner (1962) present a number of applications of the finite horizon capacity scheduling problem to inventory control and staffing. (Briefly, a block of consecutive ones in a column represents a "block of capacity" that is available for a number of consecutive time periods.) Each of these applications has a cyclic (dynamic) counterpart. Here we describe only the
cyclic variant of the application to staffing. Consider a firm that wishes to hire "temporary" staff so as to meet minimum demands that vary from hour to hour within the day, but such that the demand for
workers on any given hour repeats daily. The firm may hire workers to meet any shift of consecutive hours, and the cost of staffing for one shift depends only on the hours of the shift. The objective is to determine an infinite-horizon assignment of workers to
daily shifts so as to minimize the average cost per day. We discussed the above model in terms of "temporary staff" for the following reason. Usually there are many requirements on staffing for shifts including complicated day-off constraints. We wish to allow that the number of workers on any shift may vary quite a lot from day to day so long as we satisfy the hourly requirements.
We observe that the solution obtained for the cyclic capacity scheduling problem "almost repeats" each epoch. The solution is obtained with the rounding algorithm in §3, and thus the integer solution varies by at most one from epoch to epoch. In terms of staffing, the number of persons on any shift varies by at most one from day to day.
I-day cyclic staffing. The cyclic capacity scheduling problem treated above appears to be a new model; however, if we add the restriction that a schedule repeats every
~~~~)-----^-----·-------C··--l-rrrrrcaar^3 -
---^181
-·
----
-----
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~
204
JAMES B. ORLIN
epoch, then the resulting problem is a cyclic staffing problem that has been investi-
gated by many authors including Bartholdi and Ratliff (1978), Bartholdi et al. (1980), and Tibrewala et al. (1972). The cyclic staffing problem here is the special case of integer programming in which each column of the constraint matrix is a 0-1 vector in
which the ones are in circularly consecutive components, i.e., the first and last components are considered to be consecutive. 6.
Other applications.
In recent years networks have been applied to a variety of
situations including production, transshipment, inventory, and workforce models (see,
for example, Glover, Klingman and McMillan (1977)). When the above models involve parameters that repeat periodically over time, they may often be modeled as dynamic network flows. Below, we give a list of potential applications that is not
intended to be complete, but is offered as a representative sampling. The minimum cost-to-time ratio circuit problem. This first application differs from the others in that it is a previously solved problem. Dantzig, Blattner, and Rao (1967) introduced the "tramp steamer problem" which involves a steamer visiting n distinct ports. Traveling from port i to portj takes t days and earns a profit of pi, dollars, and both the transit time and profit are independent of the starting time for the trip. The objective is to determine an infinite-horizon tour that maximizes the average daily profit. Although the problem is phrased as a transportation problem, it has applications in several areas as detailed in Fox (1969). The problem is also equivalent to
deterministic semi-Markov decision chains, as described by Fox. The static network has n nodes, one for each port, and for each pair i, j of distinct
nodes there is an arc (i, j) with transit time t and unit cost -p!.
The upper and lower
bounds on arc flows are 1 and 0 respectively, and the throughput is fixed at 1, representing the tramp steamer. Dantzig, Blattner and Rao formulated the problem with the above static network. They observed that each basic solution of the static network flow problem is a flow
around a circuit, which is a simple directed cycle. Each circuit induces an infinite horizon tour. Ports are traveled in the order that they appear on the circuit, and the average daily cost is the ratio of the cost of traveling the circuit to its transit time. Thus
an optimal circuit has the minimum cost-to-time ratio and induces an optimum tour. This tour is exactly the same tour determined by the rounding procedure in §3. We see this as follows. A minimum cost static circulation whose throughput is one consists of a flow of 1/t units around a circuit C, where C is the minimum cost-to-time circuit and t is the transit time of C. Our rounding procedure rounds up the flow on exactly one of the infinite paths induced by C, and this path corresponds to the tour for the
tramp steamer. Incidentally, the minimum cost-to-time ratio circuit problem has excited a fair amount of interest in recent years. Many authors including Lawler (1967), Rinaldi
(1975), Megiddo (1978), and Fox (1969) have determined efficient methods for computing the optimum circuit. Lawler gave an O(n3 log(n +
tmax))
algorithm, and
more recently Megiddo found an O(n4 logn) algorithm. In the special case in which
each transit time is either 0 or 1, Karp and Orlin (1980) developed an O(n 3 ) algorithm. This special case has applications in the area of workforce scheduling (Bartholdi et al.
(1980)), and in cyclic lot sizing (Graves and Orlin (1980)). Airplane routing. Consider the problem of scheduling a fixed number of aircraft for a partially fixed periodic schedule of daily repeating flights between n cities. Each flight is expressed in terms of (I) its departure site and time, e.g., Boston at 3 p.m.; (2) its arrival site and time; (3) its cost (or profit); and (4) whether it is required or
1_____11__3___I__CI_____I_
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS
205
optional. A required flight must be flown each day, whereas an optional flight may be flown at the scheduler's prerogative. The aircraft are considered to be identical in that any aircraft may fly any route. Furthermore, we do not require that the flight schedule repeat daily. Indeed, an optimal schedule may repeat only after a number of days. The above airplane scheduling problem may be easily expressed as a dynamic network flow problem in which the arcs represent flights. We leave the details to the interested reader. A special case of the above is the problem of minimizing the number of aircraft to meet a fixed periodic schedule, which has been investigated by several authors. Bartlett (1958) and Bartlett and Charnes (1958) solved the variant in which deadheading is forbidden. Dantzig and Fulkerson (1954) solved the finite horizon variant. Dantzig and Simpson (1962, unpublished) in conjunction with a team of collaborators at United Airlines solved the general case in which the schedule is required to repeat daily (i.e., even deadheaded flights must be flown at the same time each day). Wollmer (1980) and Orlin (1982) solved the general problem in which deadheaded flights are not required to be flown daily. For a description of Dantzig and Simpson's solution technique see Simpson (1968). Cyclic production, storage and transshipment. Consider a number of cities with demand for a certain good that varies periodically over time, e.g., demand for bread or for petroleum products. We assume that demand is satisfied by shipping goods in a fixed number of trucks from a number of supply/production sites, where the cost of production is assumed to be convex. We restrict our attention to the case in which each truck must unload all of its goods at the demand site upon arriving. (The case in which a single truck can service many demand sites without reloading is NP-complete as the traveling salesman problem is a special case.) The objective is to determine a production schedule and shipping schedule over time so as to minimize the daily cost. Below we consider two cases of the problem for which demands and costs repeat daily. The periodic problem may be formulated using the technique in §4 for expanding static networks. The problem is formulated as follows: (1) production site i has a convex cost c) of production for = 1, ... r (2) demand site i has a demand bi for goods repeating daily for i = r + ... n; (3a) the number of trucks is bounded above and below; or
(3b) storage is allowed at the production and demand sites at a convex cost. Constraints (3a) and (3b) are related in that flow is measured in goods traveling over time; if storage is allowed, then storage will be interpreted as throughput as will a truck traveling. Simultaneously allowing both (3a) and (3b) results in a problem that is NP-complete even for problems with exactly one truck. The NP-completeness can be proved via a transformation from the traveling salesman problem. The static network has node set 1,2, ... , n). For each production site i and storage site j, there are arcs (i, j) and (j, i) with transit times that are the number of days of travel time between the two sites. Thus the static network is a complete directed bipartite graph. For i = r + I, . . . n there is an additional constraint that the flow into i is b in each period, and for i 1, .. . n the flow out is bounded above by uo and below by i. These constraints are modeled via the transformations given in §4. Combined with the conservation-of-flow constraint (2.2), these constraints guarantee that (1) and (2) are satisfied. If no out-of-truck storage is allowed (in both models goods may be stored in the trucks), then the flow in transit is the number of trucks. Thus upper and lower bound constraints on the number of trucks may be modeled via upper and lower bound
-·s-a9irr-^---------a-----------·
206
JAMES B. ORLIN
constraints on the throughput and can be modeled as in §4. If the number of trucks is not restricted, then we may model storage at site i by a loop (i, i) with transit time I and an appropriate convex storage cost. We note that if the throughput is not bounded, then the static flow problem is a circulation problem with no additional side constraints, and thus each basic solution is integral. In this case, the rounding of §3 is not necessary, as the stationary optimal flow is integral. Acknowledgements. This work was supported in part under the National Science Foundation Research Initiation Grant ECS-8205022 and also under NSF grant ENG76-12266 and the ONR grant N0014-75-C-0493. I am indebted to my thesis supervisor, Professor Arthur F. Veinott, Jr., for all of his help, direction, and support throughout the development of the theory and the writing of this paper. I am grateful to an anonymous referee who made a number of suggestions leading to further improvements in the exposition. I also thank Ranel Erickson for pointing out to me the Chen and Saigal reference.
References [1] Bartholdi, J. J. and Ratliff, H. D. (1978). Unnetworks, with Applications to Idle Time Scheduling. Management Sci. 24 850-858. , Orlin, J. B. and Ratliff, H. D. (1980). Cyclic Staffing via Integer Programs with Circular Ones. [2] Oper. Res. 24 1074-1085. [3] Bartlett, T. E. (1957). An Algorithm for the Minimum Number of Transport Units to Maintain a Fixed Schedule. Naval Res. Logist. Quart. 4 139-149. [4] Bartlett, T. E. and Charnes, A. (1957). Cyclic Scheduling and Combinatorial Topology: Assignment and Routing of Motive Power to Meet Scheduling and Maintenance Requirements. Part I: Generalization and Analysits. Naval Res. Logist. Quart. 4 207-220. [5] Chen, S. and Saigal, R. (1977). A Primal Algorithm for Solving a Capacitated Network Flow Problem with Additional Linear Constraints. Networks 7 59-80. [6] Dantzig, G. B. and Simpson, R. (1962). Consulting work for United Airlines. , Blattner, W. and Rao, M. R. (1967). Finding a Cycle in a Graph with Minimum Cost to [7] Times Ratio with Application to a Ship Routing Problem. In Theory of Graphs, P. Rosentiehl, ed. Dunod, Paris, Gordon and Breach, New York, 77-84. and Fulkerson, D. R. (1954). Minimizing the Number of Tankers to Meet a Fixed Schedule. [8] -Naval Res. Logist. Quart. 1 217-222. [9] Ford, L. R. and Fulkerson, D. R. (1958). Constructing Maximal Dynamic Flows from Static Flows. Oper. Res. 6 419-433. [10] Fox, B. (1969). Finding Minimal Cost-Time Ratio Circuits. Oper. Res. 17 546-550. [II] Garey, M. R. and Johnson, D. S. (1979). Computers and Intractibility: A Guide to the Theory of NP-Completeness. W. H. Freeman and Co., San Francisco. F., Klingman, D. and McMillan, C. (1977). The Netform Concept: A More Effective Model Glover, [12] Form and Solution Procedure for Large Scale Nonlinear Problems. Management Science Report No. 77-4, Graduate School of Business Administration, University of Colorado. [13] Graves, S. C. and Orlin, J. B. (1980). The Infinite-Horizon Dynamic Lot-Size Problem with Cyclic Demand and Costs. Working Paper, Operations Research Center, M.I.T. [14] Grotschel, M., Lovasz, L. and Schrijver, A. (1980). The Ellipsoid Method and Its Consequences in Combinatorial Optimization. Report No. 80151-OR, Institut fur Okonometrie und Operations Research, Rheinische Friedrich-Wilhelms-Universitat, Bonn. [15] Karp, R. M. and Orlin J. B. (1980). Parametric Shortest Path Algorithms with an Application to Cyclic Staffing. Discrete Appl. Math. to appear. [16] Lawler, E. L. (1967). Optimal Cycles in Doubly Weighted Linear Graphs. In Theory of Graphs, P. Rosentiehl, ed. Dunod, Paris, Gordon and Breach, New York, 209-214. [17] Magnanti, T. L. (1980). Course notes for Network Optimization, M.I.T. [18] Megiddo, N. (1978). Combinatorial Optimization with Rational Objective Functions. In Proceedings of the 10th ACM Symposium on the Theory of Computation, San Diego, California, 1-12. [19] Orlin, J. B. (1981a). Dynamic Convex Programming. Chapter 2, Ph.D. dissertation, Department of Operations Research, Stanford University. -. (1981b). The Complexity of Dynamic Languages and Dynamic Optimization Problems. 13th [20] Annual ACM Symposium on the Theory of Computing, 218-227.
-Cll-----lr--l-· -r~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-II-
0."
MINIMUM CONVEX COST DYNAMIC NETWORK FLOWS [21] [22] [23] [24] [25] [26] [27]
207
-
. (1982). Minimizing the Number of Vehicles to Meet a Fixed Periodic Schedule: An Application of Periodic Posets. Oper. Res. 30 760-776. . (1983). Maximum Throughput Dynamic Network Flows. Accepted for publication by Math. Programming. Rinaldi, S. (1975). Optimal Constrained Cycles in Graphs. In Topics in Combinatorial Optimization, S. Rinaldi, ed. CISM Courses and Lectures No. 175, Springer-Verlag, New York, 45-68. Simpson, R. W. (1968). Scheduling and Routing Models for Airline Systems. Report FTL-R68-3, Department of Aeronautics and Astronautics, MIT, 100-107 and 128-134. Tibrewala, R., Philippe, D. and Browne, J. (1972). Optimal Scheduling of Two Idle Periods. Management Sci. 19 71-75. Veinott, A. F., Jr. and Wagner, H. M. (1962). Optimal Capacity Scheduling I and II. Oper. Res. 10 5 18-546. Wollmer, R. D. (1980). An Airline Schedule Tail Routing Algorithm. Presented at the Fall 1980 ORSA/TIMS conference in Colorado Springs.
SLOAN SCHOOL OF MANAGEMENT, MASSACHUSETTS INSTITUTE OF TECHNOLOGY, CAMBRIDGE, MASSACHUSETTS 02139
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~~ -
____·_~~~~~~~~~~~~^IL____ I_11__---I-~
-- ----
I