Professional Documents
Culture Documents
A
2
= and A
1
A
2
= A. For each arc(i, j) A, nonnegative c
ij
, L
ij
, and U
ij
represent the unit ow cost, loss/gain factor, lower and upper bounds on ow, respectively.
Note that the interpretations of L
ij
are dierent for the regular arcs in A
1
and the VLB arcs
in A
2
. For a regular arc(i, j) A
1
, the ow on it must be no less than L
ij
. For a VLB arc
11
arc(i, j) A
2
, the ow could be zero or larger than or equal to L
ij
, L
ij
> 0. In addition,
decision variable x
ij
represents the ow on arc(i, j) A and binary decision variable y
ij
represents the status of arc(i, j) A
2
,
y
ij
=
_
_
1 if arc(i, j) A
2
is open,
0 otherwise.
MCNF-VLB model Using the above notation, the MCNF-VLB on a generalized
network can be formulated as an MILP problem , as given below. The MCNF-VLB
is to minimize the total cost of ows through the network as in objective function (2.1).
Constraint (2.2) species that at most S units can be provided from supply node s,
and constraint (2.4) species that at least D units must be delivered to demand node d.
Constraint (2.3) ensures the ow conservation at each intermediate node. Constraints (2.5)
and (2.6) restrict the arc ows on the regular arcs to be within lower and upper bounds.
Constraints (2.7) - (2.9) represent the requirement of the VLB arcs, that is the ow on a
VLB arc must be either zero (when y
ij
= 0) or between its positive lower and upper bounds
12
(when y
ij
= 1).
min
(i,j)A
c
ij
x
ij
, (2.1)
s.t.
(i,j)A
x
ij
(j,i)A
l
ji
x
ji
S, i = s, (2.2)
(i,j)A
x
ij
(j,i)A
l
ji
x
ji
= 0, i ,= s, d, (2.3)
(i,j)A
x
ij
(j,i)A
l
ji
x
ji
D, i = d, (2.4)
x
ij
L
ij
, for all arc(i, j) A
1
, (2.5)
x
ij
U
ij
, for all arc(i, j) A
1
, (2.6)
x
ij
L
ij
y
ij
0, for all arc(i, j) A
2
, (2.7)
x
ij
U
ij
y
ij
0, for all arc(i, j) A
2
, (2.8)
y
ij
0, 1, for all arc(i, j) A
2
. (2.9)
Note that the MCNF-VLB with multiple supply and demand nodes can be easily
transformed to the case of a single-supply and single-demand node. It can be done by adding
a single dummy supply node and a single dummy demand node, a regular arc connecting
the dummy supply node to each original supply node, and a regular arc connecting each
original demand node to the dummy demand node. For each arc from the dummy supply
node to an original supply node, the arc cost is set to zero,the loss/gain factor to 1, the lower
bound to zero, and the upper bound to the available supply amount at that original supply
node. For each arc from an original demand node to the dummy demand node, the arc cost
is set to zero, the loss/gain factor to 1, the lower bound to the demand requirement at that
original demand node, and the upper bound to innite (or suciently large). Finally, set the
13
available supply amount at the dummy supply node equal to the sum of all original supply
amounts, and the demand requirement at the dummy demand node equal to the sum of all
original demand requirements. Then, all original supply and demand nodes are treated as
the intermediate nodes.
Fixed-charge MCNF model
.
min
(i,j)A
c
ij
x
ij
+
(i,j)A
2
f
ij
y
ij
, (2.10)
s.t.
(i,j)A
x
ij
(j,i)A
l
ji
x
ji
S, i = s, (2.11)
(i,j)A
x
ij
(j,i)A
l
ji
x
ji
= 0, i ,= s, d, (2.12)
(i,j)A
x
ij
(j,i)A
l
ji
x
ji
D, i = d, (2.13)
x
ij
L
ij
, for all arc(i, j) A
1
, (2.14)
x
ij
U
ij
, for all arc(i, j) A
1
, (2.15)
x
ij
0, for all arc(i, j) A
2
, (2.16)
x
ij
U
ij
y
ij
0, for all arc(i, j) A
2
, (2.17)
y
ij
0, 1, for all arc(i, j) A
2
. (2.18)
14
In model
explicitly considers the xed costs for opening VLB arcs and uses them in
attempt of avoiding the small amount of ow on arcs while leaves the minimal ow amounts
to be zero (constraint (2.16)). On the opposite, Model explicitly prescribes the minimal
ow amounts to authorize the ows on the VLB arcs while does not directly deal with the
xed costs for opening VLB arcs. The MCNF-VLB model is more suitable for those
situations in which the xed costs for opening an arc (as in model
0 0
3 5 3 0 12 0 10 12
4 7 4 0 14.5 0 5 5
4 9 0 5 30 0 5 5
5 6 0.5 3 22 1
0 2
5 7 3 2 17 1
10 10
6 8 2 0 12 0 10 10
7 8 1 2 16.5 1
0 0
7 9 0 15 30 0 15 15
8 9 0 10 30 0 10 10
2.3 Computational testing with CPLEX
In this section,we test on the solvability of the MCNF-VLB models by solving a set of
randomly generated instances from the small to large sizes. Since the MCNF-VLB is an
MILP problem, we use commercial optimization software CPLEX 11 (2007, C32 version, see
CPLEX Documentation 2007) to solve the instances. All computations are conducted on
an Intel 3.00 GHz, 8.00 GB of RAM workstation (while CPLEX C32 version only taking
advantage of 4 GB RAM), with Microsoft Windows Server 2003 R2 (Enterprise C64 Edition,
18
Service Pack 2) as the operating system. Subsection 2.3.1 describes the randomly generated
instances; Subsection 2.3.2 sets up the main computational experiments; Subsection 2.3.3
presents the computation results; Subsection 2.3.4 tests the eects of the demand tightness.
2.3.1 Test instances
A MCNF-VLB instance is dened in an acyclic network with a set of VLB arcs. Furthermore,
in order to consider an MCNF-VLB instance, values of loss/gain factor l
ij
, cost c
ij
, lower
bound L
ij
, and upper bound U
ij
for each arc, and the maximal supply amount S and minimal
demand requirement D must be determined. We generate the MCNF-VLB instances by
randomly constructing the acyclic networks and specifying the values of various parameters
in the following way.
To construct the underlying acyclic networks, we specify the number of nodes n = [N[
and establish the arcs as follows. Dene the span of arc(i, j) as j i, assuming that nodes are
topologically ordered. We specify q (1 < q n) to restrict the span of (i, j) to be j i q so
that the path from supply to demand nodes contains at least n/q arcs; arc(i, j) is included
in the network with probability p for integer values of j on [i + 1, min(n, i + q)]. This is
reasonable since it is almost unlikely to pump the oil from supply node (node 1) directly
to demand node (node n). The expected number of arcs in a network that is randomly
generated in this manner with parameters n, p and q is pq[n (q + 1)/2]. Letting be the
expected fraction of the VLB arcs overall arcs, then an arc is specied to be a VLB arc with
probability and be a regular arc with probability 1 . However,the actual numbers of
the arcs and the VLB arcs depend on the realization of the random generation process.
19
We generate a set of networks using n = 200, 400 and 800; p = 0.5; q = n/2; and various
values of from 0% to 100%. The loss/gain factor one each arc, l
ij
, is either always 1 or
generated independently from uniform distribution over 0.9 to 1.0, denoted by U(0.9, 1.0).
It is natural to assume that the arc with a high loss/gain factor potentially has a high cost;
thus, the cost on arc(i, j) is determined using
c
ij
= rand l
ij
(2.19)
where rand represents a random number from U(0.0, 1.0).
The lower and upper bounds on arc(i, j) are calculated as
L
ij
=
_
_
0 for the regular arc
1
+
2
rand for the VLB arc,
U
ij
=
3
+
4
rand (2.20)
where
1
,
2
,
3
, and
4
are positive constants and
3
>
1
+
2
. The lower bounds for the
regular arcs are 0, although they could be assigned in a random way. We generate two sets
of instances, namely the loose-bound instances using
1
= 5,
2
= 10,
3
= 50, and
4
= 20;
the tight-bound instances using
1
= 20,
2
= 10,
3
= 50, and
4
= 20. Note that the
upper-bounds for both loose-and tight-bound instances are set in the same way, while the
loose-bound instances have a smaller lower-bound and thus the expected gap between the
lower and upper bounds is bigger than the tight-bound instances.
Since the demand is the driven factor for transportation, we set the maximal amount of
available supply to be a big value (i.e., S = ) to avoid the infeasibility due to insucient
20
supply. The actual supply amount that is needed to satisfy the given demand requirement
can be determined based on the optimal solution by summing the ows overall out going arcs
from supply node. To avoid the infeasibility due to the unrealizable demand requirement,
letting D
max
denote the maximum amount of demand that can be satised under the innite
supply, and be a control factor between 0 and 1, then we can set the value of D as
D = D
max
(2.21)
Given an MCNF-VLB instance, we can calculate D
max
by solving a related and revised
MCNF-VLB instance, in which the loss/gain factors and bounds on ows remain the same
as the original instance, the supply limitation S is set to innity (i.e., no limitation on
supply), the demand requirement D to 0 (i.e., no restriction on demand), and arc costs to
be negative of the loss/gain factors for all incoming arcs to demand node and 0 for all other
arcs. Then D
max
equals the negative of the optimal objective value for the revised instance
(i.e., sum of the product of loss/gain factor and ow overall incoming arcs to the demand
node). Subsection 2.3.4 will evaluate the eects of the tightness of demand (i.e., value of D
and ) on the solutions and solvability of the instances.
2.3.2 Computational experiments
CPLEX 11 uses B&C approach to solve the MCNF-VLB problem and is able to generate
optimal solutions for the instances of up to medium-to-large size. Tables 2.2 and 2.3 present
the computational results for using CPLEX to solve the loose-and tight-bound instances (see
the discussion after Equation (2.20)) of various sizes, respectively. Note that in Tables 2.2
21
and 2.3, we use three underlying networks with 200 nodes and 7438 arcs, 400 nodes and
30,132 arcs, and 800 nodes and 119,643 arcs, respectively. For each underlying network, we
investigate the eects of the number of VLB arcs on the problem solvability by changing the
percentage of the VLB arcs from 0 to 100.
In Tables 2.2 and 2.3, the rst four columns give the number of nodes, the number
of total arcs, the number of VLB arcs as well as the value of , and the loss/gain factor
(means that all loss/gain factors are 1 and U(0.9, 1.0) means that loss/gain factors are
generated from U(0.9, 1.0)), respectively. Columns ve and six give the values of D
max
and
D, respectively, noting that D is calculated according to Equation (2.21) using D
max
and
the demand tightness = 0.2 for all the instances in Tables 2.2 and 2.3. When calculating
the maximum demand D
max
for some instances (see the ones with * mark in Tables 2.2
and 2.3) using the method following Equation (2.21), CPLEX may run long time until out
of memory due to probably numerical round-o error, even though the B&B gap is very
close to 0. In this situation, column ve gives the best feasible solution as an approximation
for D
max
. In columns even, the actual supply is obtained after solving the instances and by
summing the ows over all out going arcs from supply node.
General speaking, starting from a root B&B node, the B&C procedure generates a set of
subsequent B&B nodes and applies the various cuts (e.g., GUB cover cuts, clique cuts, cover
cuts, implied bound cuts, ow cuts, mixed integer rounding cuts, and Gomory fractional
cuts) if possible for the relaxed problem at each B&B node. In Tables 2.2 and 2.3, column
eight shows the number of B&B nodes (excluding the B&B root node) that CPLEX explored
and column nine shows the total number of various cuts that CPLEX generated during the
entire procedure. The B&C approach calculates and updates a global upper bound, which
22
Table 2.2: Results for solving loose-bound instances with demand tightness = 0.2.
# of # of # of Loss Max Demand Actual # of # of Gap CPU
nodes arcs VLB arcs factor demand requirement supply B&B nodes generated cuts (%) time (s)
200 7438
0 (%0)
1 2613.85 522.77 522.77 0 0 0 0.18
U(0.9,1.0) 1919.30 383.86 573.86 0 0 0 0.17
1520 ( %20)
1 2613.85 522.77 522.77 0 0 0 0.29
U(0.9,1.0) 1919.30 383.86 573.60 0 2 0 0.37
2910 ( %40)
1 2613.85 522.77 522.77 0 3 0 0.34
U(0.9,1.0) 1919.30 383.86 573.87 0 0 0 0.43
5923 ( %80)
1 2613.85 522.77 522.77 5 6 0 0.75
U(0.9,1.0) 1919.29 383.86 573.82 0 2 0 0.64
7438 (%100)
1 2613.85 522.77 522.77 0 28 0 1.65
U(0.9,1.0) 1919.29 383.86 573.70 15 5 0 5.12
400 30,132
0 (%0)
1 5692.48 1138.50 1138.50 0 0 0 0.53
U(0.9,1.0) 4430.92 886.18 1307.92 0 0 0 0.54
2937 ( %10)
1 5692.48 1138.50 1138.50 4 3 0 1.25
U(0.9,1.0) 4430.92 886.18 1307.59 0 0 0 0.90
6043 ( %20)
1 5692.48 1138.50 1138.50 0 5 0 1.28
U(0.9,1.0) 4430.88 886.18 1307.59 0 0 0 1.01
12,068 ( %40)
1 5692.48 1138.50 1138.50 33 11 0 2.50
U(0.9,1.0) 4430.88 886.18 1307.10 6 1 0 1.92
14,954 ( %50)
1 5692.48 1138.50 1138.50 36 10 0 2.64
U(0.9,1.0) 4430.87 886.17 1308.45 35 8 0 2.92
24,086 ( %80)
1 5692.48 1138.50 1138.50 580 76 0 11.56
U(0.9,1.0) 4430.78 886.16 1311.10 360 5 0 8.60
30,132 (%100)
1 5692.48 1138.50 1138.50 3119 109 0 20.56
U(0.9,1.0) 4430.67
i=1
_
r
i
+
Q
i
2
_
s
0
. (3.2)
Note that this space constraint is for the average occupied space, instead of the potential
maximum occupied space which is r
i
+Q
i
. The reason is that in computer operating systems,
the cache space is used for multiple purposes in a shared manner. In addition to prefetched
data blocks, some data blocks that are already used by applications will also be kept in the
cache, waiting to be re-accessed in the future, which are referred to as demand-paged data.
The space allocation between prefetched and demand-paged data is fuzzy and dynamic.
When the total amount of prefetched data is larger than s
0
, more demand-paged data will
be evicted from the cache to leave the space for the desired prefetching, though harming
41
the hit ratio of data re-accessing, and vice versa. Therefore, by constraining the average
occupied space of prefetched data, we can ensure the cache performance on-average for both
prefetching and demand-paged data accesses.
Frequency constraint
Frequent prefetching increases the system load and may degrade the system performance
after a certain extent due to the disk/network request overhead and energy consumption.
To prevent frequent prefetching, an upper limitation, denoted by f
0
, is set to the total
prefetching frequency:
F(Q) =
N
i=1
i
Q
i
f
0
, (3.3)
where
i
/Q
i
is the average prefetching frequency of stream i. In practice, the frequency
limitation f
0
is determined via estimating an average prefetching degree a
0
. That is,
f
0
=
N
i=1
i
a
0
.
Disk access time
The disk access time in data prefetching is the time to retrieve data from the lower level
storage and depends on the requested data size and the system load. This dissertation
assumes that the disk access time is deterministic and a linear function of the prefetching
quantity Q
i
and the total request rate
N
i=1
i
, which represents the system load.
Mathematically,
L
i
= Q
i
+
N
i=1
i
+ , (3.4)
42
where constants , , > 0, implying that the disk access time increases with the transferred
data size Q
i
and the system load, which is reected by the total request rate
N
i=1
i
. Using
the real experimental data, Subsection 3.4.1 veries model (3.4) for the disk access time and
determines the constants by means of regression. When = = 0, the disk access time is a
constant equal to . Note that for dierent streams of data, the behaviors of data access time
are the same as modeled in Equation (3.4). It is distinct from the inventory management in
which the dierent products normally have the dierent lead time structures.
By Equation (3.1), as Q
i
increases, the expectation and variance of the RDDAT increase
as well.
Cache miss level
The cache miss level is the average number of outstanding data blocks for stream i, denoted
by B
i
(Q
i
, r
i
). Under the (Q, r) policy, it can be expressed in terms of decision variables Q
i
and r
i
and the distribution of X
i
(Hopp and Spearman 2000):
B
i
(Q
i
, r
i
) =
1
Q
i
_
r
i
+Q
i
r
i
_
x
(y x)g
i
(y; Q
i
) dy dx =
1
Q
i
_
r
i
+Q
i
r
i
B
i
(x; Q
i
) dx. (3.5)
where
B
i
(x; Q
i
) =
_
x
(y x)g
i
(y; Q
i
) dy. Note that
B
i
(x; Q
i
) is referred to as loss function
in inventory management and is a decreasing function of x. The format of B
i
(Q
i
, r
i
) depends
on the pdf of the RDDAT, g
i
(x; Q
i
), which in turn depends on the data access time L
i
as
modeled in Equation (3.4). Thus, the cache miss level B
i
(Q
i
, r
i
) is dierent from the common
one in inventory management where the lead time is a constant. Then, the total cache miss
43
level B(Q, r) over N streams is
B(Q, r) =
N
i=1
B
i
(Q
i
, r
i
).
As shown in the following proposition, the total cache miss level decreases as the trigger
distances increase because accordingly the probability of having a cache miss during the
data access time decreases.
PROPOSITION 1. B(Q, r) is a decreasing function with respect to r
i
, i = 1, 2, . . . , N, and
approaches its global minimum of zero when all r
i
s have suciently large values.
Normal distributed RDDAT The normal distribution and other distributions from
the exponential family are the most commonly observed demand patterns in inventory
management (Chopra and Meindl 2003). Zhang et al. (2009) have found that data access
patterns of real read-intensive applications share several important properties with the
exponential family distributions when the request rates are high. In this dissertation, the
RDDAT is modeled to follow the normal distribution, which can approximate the discrete
Poisson distribution when the variance is equal to the mean (Montgomery and Runger, 2010).
For the discrete case, e.g., Poisson distributed RDDAT, the cache miss level B
i
(Q
i
, r
i
) can
be expressed similarly as in Equation (3.5) by replacing integrations with summations over
y and x. However, it is computationally inconvenient to get the optimal solution over a large
discrete solution space.
44
The pdf and cdf of normal distribution with mean
i
L
i
and variance
2
i
L
i
as in Equation
(3.1) are
g
i
(x; Q) =
1
_
2
2
i
L
i
exp
_
(x
i
L
i
)
2
2
2
i
L
i
_
=
1
i
L
i
_
x
i
L
i
i
L
i
_
,
G
i
(x; Q) =
_
x
g
i
(y)dy =
_
x
i
L
i
i
L
i
_
,
where and represent the pdf and cdf of standard normal distribution, respectively.
Using these expressions in Equation (3.5), the cache miss level can be calculated as (Hopp
and Spearman, 2000)
B
i
(Q
i
, r
i
) =
1
Q
i
[
i
(r
i
)
i
(r
i
+ Q
i
)],
where
i
(x) =
2
i
L
i
2
__
_
x
i
L
i
i
L
i
_
2
+ 1
_
_
1
_
x
i
L
i
i
L
i
__
_
x
i
L
i
i
L
i
_
_
x
i
L
i
i
L
i
_
_
.
Note that under the normal distribution, the RDDAT could be negative; however, when
the ratio of standard deviation to mean is small (e.g.,
i
/
i
L
i
< 0.3), the eect of this
negative tail is ignorable (Lau 1997).
Cache hit ratio
An important performance measure of prefetching policies is the cache hit ratio, which is the
percentage of data requests that result in cache hits. Note that the cache hit ratio matches to
the ll rate in inventory management, which is the percentage of customer demands satised
from on-hand stock. Therefore, the cache hit ratio of stream i, denoted by R
i
(Q, r
i
) for
45
i = 1, 2, . . . , N, can be calculated by adapting the ll rate formula as (Hopp and Spearman,
2000):
R
i
(Q, r
i
) = 1
1
Q
i
[
B
i
(r
i
; Q
i
)
B
i
(r
i
+ Q
i
; Q
i
)]. (3.6)
Then, the total cache hit ratio R(Q, r) over N streams is calculated as
R(Q, r) =
N
i=1
R
i
i
N
i=1
i
. (3.7)
3.3.2 Constrained multi-stream (Q, r) model
The essence of the (Q, r) models in inventory management is to examine the trade-o of
setup, holding, and backorder costs, which are related to three quantities of the order
frequency, on-hand inventory, and backorder level, respectively. In our context of prefetching,
the former cost terms have vague meanings, but the latter three quantities are mapped
to prefetching well as illustrated in Subsection 3.2.3 and expressed mathematically in
Subsection 3.3.1.
In data prefetching, the objective is to minimize the cache miss level (backorder level), and
the eects of occupied space (on-hand inventory) and prefetching frequency (order frequency)
are dealt as constraints. The constrained multi-stream (Q, r) cache miss model can be
46
expressed as
min B(Q, r) =
N
i=1
B
i
(Q
i
, r
i
) =
N
i=1
1
Q
i
_
r
i
+Q
i
r
i
_
x
(y x)g
i
(y ; Q
i
) dydx
s.t., S(Q, r) =
N
i=1
_
r
i
+
Q
i
2
_
s
0
(space constraint (3.2))
F(Q) =
N
i=1
i
Q
i
f
0
(frequency constraint (3.3))
Q
i
, r
i
0, i = 1, 2, . . . , N.
(3.8)
Model (3.8) is to minimize the cache miss level, in which B
i
(Q
i
, r
i
) is determined by
Equation (3.5) and its calculation needs L
i
that is dened in Equation (3.4). In addition to
space constraint (3.2) and frequency constraint (3.3), sign restrictions specify Q
i
and r
i
to
be nonnegative. The non-cost-parameter inventory model nds a good use in managing the
data prefetching.
3.3.3 Optimal solutions
For constrained nonlinear programming model (3.8), the Lagrangian function is
L(Q, r,
1
,
2
) = B(Q, r) +
1
_
N
i=1
_
r
i
+
Q
i
2
_
s
0
_
+
2
_
N
i=1
i
Q
i
f
0
_
, (3.9)
where
1
and
2
are two Lagrangian multipliers associated with constraints (3.2) and (3.3),
respectively. Since all of the feasible solutions satisfy constraint qualication, an optimal
solution (Q
, r
1
,
2
) must satisfy the Karush-Kuhn-Tucker (KKT) conditions and second
order sucient conditions (Bazaraa et al. 2006). Appendix 5.3 gives the mathematical
expressions of these conditions, which are used to prove the following propositions and to
numerically verify the optimal solutions as in Section 3.4.
47
Under an optimal solution, a constraint is binding if its right-hand-side and left-hand-side
have the same value; otherwise, it is non-binding. The binding constraints play an important
role in sensitivity analysis. Proposition 2 gives a related result.
PROPOSITION 2. Suppose that g
i
(; Q
i
) is continuous and dierentiable for all i =
1, 2, . . . , N. Then, under the optimal solution (Q
, r
1
,
2
) of model (3.8),
1
> 0 and
approaches zero when all r
i
for i = 1, 2, . . . , N approach innity, and space constraint (3.2)
is binding.
By Proposition 2, space constraint (3.2) should be changed from inequality to equality
as
S(Q, r) =
N
i=1
_
r
i
+
Q
i
2
_
= s
0
, (3.10)
and model (3.8) should be changed accordingly as
min B(Q, r) =
N
i=1
B
i
(Q, r
i
) =
N
i=1
1
Q
i
_
r
i
+Q
i
r
i
_
x
(y x)g
i
(y ; Q
i
) dydx
s.t., S(Q, r) =
N
i=1
_
r
i
+
Q
i
2
_
= s
0
(space constraint (3.10))
F(Q) =
N
i=1
i
Q
i
f
0
(frequency constraint (3.3))
Q
i
, r
i
0, i = 1, 2, . . . , N.
(3.11)
By Propositions 1 and 2, it is always benecial to reducing the cache miss level by fully using
the expensive cache to increase the trigger distances. Thus, the space constraint must be
binding as in Equation (3.10).
PROPOSITION 3. Under the optimal solution of model (3.11), the cache hit ratio is the
same for all streams i = 1, 2, . . . , N, and R
i
(Q
, r
i
) = 1
1
.
48
PROPOSITION 4. The feasible set of model (3.11) is a convex set.
PROPOSITION 5. When decision variables Q are xed and the feasible region of model (3.11)
is nonempty, then model (3.11) with decision variables r is convex programming.
3.3.4 Modied model for numerical computations
As shown in Proposition 1, theoretically in asymptotic, function B(Q, r) approaches zero as
variables approach innity. For convenience of discussion, we dene numerical-zero, denoted
by
0, as near-zero values. When a numerical solution has the suciently large values of r
,
B(Q
, r
) =
0. In summary, there exist three cases of optimal solutions of model (3.11) as
listed below.
Case 1 The minimum cache miss level (i.e., optimal objective function value) is nonzero, and
frequency constraint (3.3) is binding.
Case 2 The minimum cache miss level is nonzero, and frequency constraint (3.3) is non-
binding.
Case 3 The minimum cache miss level is numerical-zero, frequency constraint (3.3) can be
binding or non-binding.
Case 3 exists only in numerical computations and implies that the space is sucient
and the frequency limitation is large relative to the request rates of streams such that the
cache miss level is numerical-zero. In this case, multiple numerical optimal solutions of
the numerical-zero cache miss level but of dierent large values of r
i
could be generated in
49
numerical computations. Under these numerical optimal solutions, frequency constraint (3.3)
can be binding or non-binding, as demonstrated in Example 3.4.2.
Subsection 3.4.2 shows these three dierent cases through numerical examples and
Subsection 3.4.3 gives further discussion through sensitivity analysis.
In the view of practical implementation in data prefetching, for the instances in Case
3, the multiple numerical optimal solutions are equivalent since under them, the cache miss
level is ignorable. Among these solutions, the one with the minimum required frequency
is preferred because it corresponds to the minimum system load and ignorable cache miss
level. To reect this criterion and avoid the multiple numerical optimal solutions, we modify
model (3.11) as
min MB(Q, r) + F(Q)
s.t., S(Q, r) = s
0
F(Q) f
0
Q
i
, r
i
0 i = 1, 2, . . . , N,
(3.12)
where M is a big number. When the optimal solution has B(Q
, r
) >
0, models (3.11) and
(3.12) will generate the exact same solution, while when the optimal solution has B(Q
, r
) =
0, model (3.12) is superior to model (3.11) by generating a unique numerical optimal solution
irrespective of the initial solutions used in numerical computation methods.
3.4 Numerical optimization results
To solve constrained nonlinear programming models (3.11) and (3.12), we use Matlab op-
timization function fmincon, which uses gradient-based methods for optimizing nonlinear
50
programming problems with continuous and dierentiable objective function and constraints
(Matlab Documentation 2010). In particular, we use the sqp algorithm provided by
fmincon, which is similar to active-set algorithm, except some minor dierences (Matlab
Documentation 2010). It solves a quadratic programming subproblem and updates an
estimate of the Hessian of the Lagrangian function using the Broyden-Fletcher-Goldfarb-
Shanno formula at each iteration. Our preliminary numerical results show that the sqp
algorithm is the most ecient in solving models (3.11) and (3.12) compared to the other
algorithms provided by fmincon (i.e., active-set fails at some point, while interior-point
is slower). To implement function fmincon, we use initial solution of Q
i
=
N
i=1
i
/f
0
and
r
i
= s
0
/N Q
i
/2 for i = 1, 2, . . . , N. Such a solution is feasible (i.e., r
i
0) only if
N
i=1
i
2s
0
f
0
/N. After solving each instance, the optimality of the solutions is veried
using the KKT conditions (1) (6) and second order sucient conditions (7) in Appendix
5.3. All of the test instances are solved eectively within one second on a computer of
2.3GHZ AMD Athlon(tm) Dual Core Processor 4450B and 4GB RAM. Note that the unit
is data blocks (one block is four kilo bytes) for Q
i
, r
i
, s
0
, and cache miss level, seconds for
disk access time L
i
, and data blocks per second for request rate
i
. For simplicity, these
units are not stated each time in the rest of the chapter. In the tables in this section, Q
i
,
r
i
, L
i
as in Equation (3.4), S
i
= Q
i
/2 + r
i
, F
i
=
i
/Q
i
, and B
i
as in Equation (3.5) denote
the prefetching degree, trigger distance, disk access time, average occupied space, average
prefetching frequency, and cache miss level, respectively. As discussed in Subsection 3.3.1,
we assume that the RDDAT follows normal distribution with the same mean and variance
of
i
L
i
(i.e.,
i
=
2
i
).
51
Subsection 3.4.1 completes the disk access time model by means of regression of
experimental data, and the resulting disk access time model is used throughout this section.
Subsection 3.4.2 presents the numerical examples. Subsection 3.4.3 conducts the sensitivity
analysis to discuss various trade-o in the prefetching of multiple streams with dierent
request rates.
3.4.1 Regression results on disk access time
We use a multiple linear regression to determine the relation of the disk access time to the
prefetching degree Q and the total request rate
N
i=1
i
. Basically, Q
i
is the data transfer
time for each prefetching request. For the server used in our experiment, the disk can
transfer at most 25600 blocks (each block is 4KB) in a second, so is about 1/25600. is
the xed disk head seek time for each request, which is around 8.5 millisecond.
Figure 3.3 shows the linear regression result, in which the dots are the experimental
data collected in the real system testing. The data ts the linear regression function, L =
Q
i
+
N
i=1
i
+ (see also Equation (3.4)), with = 5.11 10
5
, = 5.65 10
8
,
and = 1.043 10
2
. Note that the experimental values of both and are larger than
the servers parameters, which is reasonable since heavy work load degrades the system
performance. The corresponding coecient of determination is R
2
= 0.725, indicating that
the experimental data mostly t the data access time model. The range of R
2
is between
0 and 1, and the closer to one the R
2
value is, the better the tting is. As mentioned in
Subsection 3.3.1, this disk access time model is universal to all streams since they are all
streams of data.
52
0
2
4
6
8
x 10
4
40
60
80
100
0.01
0.012
0.014
0.016
0.018
0.02
Total Request Rate
Regression Model for Lead Time
Prefetching Degree Q
i
L
e
a
d
T
i
m
e
(
s
e
c
o
n
d
s
)
Figure 3.3: Multiple linear regression of disk access time.
3.4.2 Numerical examples
The following three examples demonstrate the three cases discussed in Subsection 3.3.3.
Case 1 Consider two instances of three streams with a total request rate of 30000, s
0
= 450
and f
0
= 500. In one instance, the three streams have the same request rate, and in
another, they have the dierent request rates. Table 3.1 shows the optimal solutions of these
two instances, both of which are Case 1 since the cache miss levels are non-zero and the
frequency constraints are binding. For the equal-request-rate instance, the optimal Q
i
= 60
and r
i
= 120 for i = 1, 2, 3, and the cache miss level is 29.24. There is no surprise that all
Q
i
s and all r
i
s are equal, respectively, since the three streams have the same request rates.
For the unequal-request-rate instance, the optimal solution shows that the stream with
higher request rate has larger prefetching degree and trigger distance; that is, more cache
space is allocated to the faster stream in order to decrease the total cache miss level. However,
the prefetching degrees are almost the same for the three streams even though the request
rates of streams 2 and 3 are twice and triple of that of stream 1, respectively. Meanwhile,
53
the trigger distances and cache space allocation are more sensitive to and follow the patterns
of the request rates of the streams.
If the cache space is equally allocated among three streams which is the optimal solution
for the equal-request-rate case, the cache miss level for this unequal-request-rate instance is
87.61, much larger than the optimal cache miss level of 28.87.
Table 3.1: Results for two Case 1 instance
i
i
Q
i
r
i
L
i
S
i
F
i
B
i
Equal
request rates
1,2,3 10000 60 120 0.01519 150 166.67 9.75
Total 30000 450 500.00 29.24
Unequal
request rates
1 5000 52.28 46.04 0.0148 72.18 95.64 8.17
2 10000 59.87 119.82 0.0152 149.75 167.03 9.83
3 15000 63.20 196.46 0.0154 228.06 237.33 10.87
Total 30000 450 500 28.87
Case 2 Consider an instance with s
0
= 450 and f
0
= 15000, and the same request rates
of 30000 in total as in Example 3.4.2. Table 3.2 gives the optimal solution, under which the
cache miss level is 0.0566, and the frequency constraint is non-binding. Thus, it is Case 2.
Compared to Example 3.4.2, increasing the frequency limitations can reduce the cache miss
level a lot, from 28.87 to 0.0566.
54
Table 3.2: Results for a Case 2 instance
i
i
Q
i
r
i
L
i
S
i
F
i
B
i
1 5000 2.13 80.07 0.0122 81.13 2346.87 0.0137
2 10000 2.3 149.49 0.0122 150.64 4339.13 0.0193
3 15000 2.37 217.04 0.0122 218.23 6330.54 0.0236
Total 30000 450 13016.53 0.0566
Case 3 Now consider an instance of lower request rates (15000 in total) than that in
Example 3.4.2, and s
0
= 450 and f
0
= 500. As shown in Table 3.3, model (3.11) using
two initial feasible solutions (Q
j
, r
j
), j = 1, 2, generates two signicantly dierent numerical
optimal solutions, all with numerical-zero cache miss level (< 10
5
). They correspond to
two dierent situations, where the frequency constraint is either binding or non-binding.
According to Propositions 1 and 2, theoretically, the cache miss level approaches zero when
all r
i
s approach innity. However, the numerical computation converges to very small values
of the cache miss level as numerical-zero, and returns the corresponding solutions as optimal
solutions.
55
Table 3.3: Results for a Case 3 instance
i
i
Q
1
= (20, 30, 40) Q
2
= (25, 30, 40)
r
1
= (125, 135, 140) r
2
= (120, 130, 150) Model (3.12) solution
Q
i
r
i
S
i
F
i
Q
i
r
i
S
i
F
i
Q
i
r
i
S
i
F
i
1 2500 19.81 124.61 134.52 126.22 25.33 120.67 133.33 98.68 63.49 59.1 90.85 39.37
2 5000 29.81 134.61 149.52 167.74 30.33 130.67 145.83 164.84 81.36 110.68 151.36 61.46
3 7500 36.4 147.76 165.96 206.04 40.33 150.67 170.83 185.95 91.94 161.82 207.79 81.57
Total 15000 450 500 450 449.47 450 182.4
To avoid multiple numerical-zero solutions, we use model (3.12) with M = 5.510
5
. The
dierent initial feasible solutions generate the same numerical optimal solution as in Table
3.3. The unique optimal solution has numerical-zero cache miss level (9.99 10
6
), and the
minimum frequency required to achieve that is 182.4.
3.4.3 Sensitivity analysis
Eects of Q and r on the cache miss level
To simplify the analysis, suppose that there is only one stream with the request rate of
1
= 6000. The 3D diagram in Figure 3.4 shows the overall behavior of the cache miss level
(i.e., objective function B(Q
1
, r
1
)) with Q
1
in interval [5, 805] and r
1
in interval [0, 300], and
the curves in Figures 3.5(a) and 3.5(b) correspond to the dierent xed values of Q
1
or r
1
,
respectively.
As shown in Proposition 1 and demonstrated in Figure 3.5(a), when Q
1
is xed, the cache
miss level decreases monotonically as r
1
increases, until reaching numerical-zero. It explains
56
0
50
100
150
200
250
300
5
105
205
305
405
505
605
705
805
0
20
40
60
Q
1
r
1
C
a
c
h
e
M
i
s
s
L
e
v
e
l
Figure 3.4: Cache miss levels associated with Q
1
and r
1
.
0 50 100 150 200 250 300
0
10
20
30
40
50
60
70
r
1
C
a
c
h
e
M
i
s
s
L
e
v
e
l
Q
1
=5
Q
1
=100
Q
1
=600
5 105 205 305 405 505 605 705 805
0
10
20
30
40
50
60
Q
1
C
a
c
h
e
M
i
s
s
L
e
v
e
l
r
1
=10
r
1
=25
r
1
=50
Figure 3.5: (a) Cache miss levels for xed Q
1
; (b) Cache miss levels for xed r
1
.
Case 3 that when r
1
is suciently large, many solutions could results in numerical-zero cache
miss level (see Example 3.4.2). On the other hand, as shown in Figure 3.5(b), when r
1
is
xed, the cache miss level rst decreases to a minimum, and then increases as Q
1
continues
to increase. Taking into account the constraints and multiple streams, the relations of the
cache miss level to Q and r are much more complicated.
Eects of cache space and frequency limitations
Given a set of streams, increasing either s
0
or f
0
looses the constraints and thus potentially
decreases the minimum cache miss level. We denote s
0
as the minimum value of space
57
limitation such that the minimum cache miss level could be numerical-zero under the
assumption of no limitation on the frequency. s
0
can be determined by solving
s
0
= minS(Q, r) : B(Q, r) =
0 and Q, r 0. (3.13)
Then, when s
0
< s
0
, the minimum cache miss level in model (3.11) is larger than numerical-
zero (i.e., B(Q
, r
) >
0), no matter how loose the frequency constraint is. When s
0
s
0
,
the minimum cache miss level could be numerical-zero, further depending on the value of
the frequency limitation f
0
.
For a given value s
0
, we dene a threshold value for the frequency limitation f
0
, denoted
by
f
0
(s
0
), such that the cache miss level is larger than numerical-zero and the frequency
constraint is binding under the optimal solution if and only if f
0
f
0
(s
0
). When s
0
< s
0
,
f
0
(s
0
) can be determined by solving
minB(Q, r) : S(Q, r) = s
0
and Q, r 0, (3.14)
and then
f
0
(s
0
) = F(Q
) where Q
f
0
(s
0
) = minF(Q) : B(Q, r) =
0, S(Q, r) = s
0
, and Q, r 0. (3.15)
For example, considering an instance in which three streams have the same request rate
of 10000, we can obtain s
0
= 897.5 by solving model (3.13) with
0 = 10
5
. To determine
58
f
0
(s
0
), we solve model (3.14) for some values of s
0
< s
0
and model (3.15) for some values of
s
0
s
0
. Figure 3.6 shows the result that
f
0
(s
0
) decreases sharply before s
0
reaches around
0.283, then stays relatively constant until s
0
arrives at around s
0
= 300, and then decreases
asymptotically to zero when s
0
is large enough. Note that when s
0
> 897.5, the decreasing
of
f
0
(s
0
) is a numerical issue, and
f
0
(s
0
) is the minimum frequency required to maintain a
cache miss level of numerical-zero.
0 100 200 300 400 500 600 700 800 900 1000
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
x 10
5
s
0
f
(
s
0
)
Case 2 Case 3
Case 1
0.283
s0 = 897.5
Figure 3.6: Eects of the space limitation s
0
and the frequency limitation f
0
.
Using s
0
and
f
0
(s
0
), we can determine if the minimum cache miss level is numerical-zero
and if the frequency constraint with f
0
is binding under the optimal solution, as shown in
Figure 3.6. The following cases are consistent with Subsection 3.3.4.
Case 1 (f
0
f
0
(s
0
)) The minimum cache miss level is nonzero and decreases as s
0
or f
0
increases because both the space and frequency constraints are binding.
Case 2 (s
0
s
0
and f
0
>
f
0
(s
0
)) The minimum cache miss level is nonzero; it decreases
as s
0
increases because the space constraint is binding; and it will not be aected by
the value of f
0
(within f
0
>
f
0
(s
0
)) because the frequency constraint is non-binding.
59
Case 3 (s
0
> s
0
and f
0
>
f
0
(s
0
)) The minimum cache miss level is numerical-zero and
there are multiple numerical solutions of model (3.11) with the cache miss level of
numerical-zero. The unique optimal solution generated by model (3.12) corresponds
to the one in the boundary line of Cases 3 and 1 in Figure 3.6, i.e., the one having the
numerical-zero cache miss level and the minimum required frequency
f
0
(s
0
).
Consequently, the optimal solution to model (3.11) with the space limitation s
0
and
frequency limitation f
0
for f
0
>
f
0
(s
0
) is the same as the case with the space limitation s
0
and frequency limitation
f
0
(s
0
) because the frequency constraint is non-binding. Meanwhile,
if the frequency limitation f
0
<
f
0
(s
0
), then the minimum cache miss level is larger than the
one in the case with the space limitation s
0
and frequency limitation
f
0
(s
0
).
Eects of number of streams
We test the instances of N = 1, 3, 6 streams, in each of which the total request rate over N
streams is 30000 and every individual stream has the same request rate at 30000/N. We set
s
0
= 450 and f
0
= 500 as in Example 3.4.2, which covers the instance of N = 3. Table 3.4
shows the optimal solutions. In each instance, the cache space is evenly allocated among
the streams because they have the same request rate, and both the space and frequency
constraints are binding under the nonzero optimal solution. Note that by the two binding
constraints we have N
i
/ Q
i
= f
0
and Q
i
/2+r
i
= s
0
/N, and thus the optimal Q
i
= N
i
/ f
0
and optimal r
i
= s
0
/N Q
i
/2. It is clear that the minimum cache miss level increases with
the number of streams, even though the total request rate for each instance is the same.
This can be illustrated by risk pooling: with the fewer number of streams, the overall risk
of cache misses during the disk access time is lower.
60
Table 3.4: The instances with the number of streams N = 1, 3 and 6.
N
i
Q
i
r
i
L
i
S
i
F
i
B
i
Total cache miss level
1 30000 60 420 0.0152 450 500.00 14.17 14.17
3 10000 60 120 0.0152 150 166.67 9.75 29.24
6 5000 60 45 0.0152 75 83.33 8.62 51.71
Eects of total request rate
Consider the cases in which the streams have the same request rate and s
0
= 450 and
f
0
= 500. The three lines in Figure 3.7 show the changes of the minimum cache miss level
with respect to the total request rate when there are one, three, and six streams, respectively.
It is shown that when the total request rate is low, the minimum cache miss level is almost
zero. As the total request rate reaches a threshold level, the minimum cache miss level
increases quickly and the space constraint becomes binding under the optimal solution. For
the cases of one, three, and six streams, the threshold levels are 25000, 21000, and 17000,
respectively. The threshold level decreases as the number of streams increases, which is
consistent with the analysis in Subsection 3.4.3.
Given the prefetching space and frequency limitation and the expected (designed) number
of streams, the threshold level can be determined and used to estimate the total request
rates that can be dealt by the system without a signicant amount of cache misses. On the
other hand, we could answer another cache capacity design problem. Given the maximum
prefetching frequency f
0
and a typical (expected or busy) situation of data streams such as
61
1.6 1.8 2 2.2 2.4 2.6 2.8 3
x 10
4
0
10
20
30
40
50
60
Total Request Rate
M
i
n
i
m
u
m
C
a
c
h
e
M
i
s
s
L
e
v
e
l
N=1
N=3
N=6
Figure 3.7: Eects of the total request rate on the minimum cache miss level.
the average number of streams and their request rates, the minimum cache space that is
required to not result in a signicant cache miss level can be estimated by solving
minS(Q, r) : B(Q, r) =
0, F(Q) f
0
, and Q, r 0.
Robustness of optimal solutions
The cache miss level is fairly insensitive to the optimal values of Q
i
and r
i
. This implies that
if we use a feasible solution which is slightly dierent than the optimal solution, the increase
in the cache miss level will not be large.
For example, suppose that there are three streams and s
0
= 450 and f
0
= 500. When
the three request rates are (4780, 10050, 14760), the optimal solution is Q
= (45, 123, 195) and the minimum cache miss level is 24.81. Rounding the request
rates in granularity of 500, that is, (5000, 10000, 15000), the optimal solution for this case
is Q
, r
ij
Q
i1
+
j
N
i=1
i
+
j
(3.17)
which implies that the disk access time increases with Q
i1
,
ij
and
N
i=1
i
. Constants
j
,
j
,
j
> 0 are positive, which can be determined by regression using the observed real
data. When
j
= 0, then the disk access time between levels j and j + 1 is a function of
N
i=1
i
and the same for all streams. When
j
=
j
= 0, then the disk access time between
levels j and j + 1 is a constant equal to
j
.
Multi-level, multi-stream prefetching cache miss level
Cache misses only happen at the lowest level cache. The cache miss level is the average
number of outstanding data blocks for stream i, denoted by B
i
(, Q
i1
, r
i
). For multi-level
prefetching, the lead time increases due to the delay of higher level caches. The total cache
miss level for stream i is the sum of the weighted cache miss level incurred by normal
prefetching and joint prefetching. We use the revised (Q, r) model with weights at dierent
levels to approximate the cache miss level (see Bodt and Graves 1985 for more detailed
68
illustrations of the backorder level in the multi-echelon inventory management).
B
i
(, Q
i1
, r
i
) =
_
1
1
i2
_
1
Q
i1
_
r
i1
+Q
i1
r
i1
_
x
(y x)g
i|L
i1
(y; , Q
i1
) dydx
+
_
1
i2
i3
_
1
i2
Q
i1
_
r
i2
+
i2
Q
i1
r
i2
_
x
(y x)g
i|L
i1
+L
i2
(y; , Q
i1
) dydx
+
+
1
2
iM
Q
i1
_
r
iM
+
iM
Q
i1
r
iM
_
x
(y x)g
i|L
i1
++L
iM
(y; , Q
i1
) dydx
(3.18)
When X
i
is a discrete random variable, then
B
i
(, Q
i1
, r
i
) =
_
1
1
i2
_
1
Q
i1
r
i1
+Q
i1
x=r
i1
+1
_
_
_
i
L
i1
x1
y=0
[1 G
i|L
i1
(y; , Q
i1
)]
_
_
_
+
_
1
i2
i3
_
1
i2
Q
i1
r
i2
+
i2
Q
i1
x=r
i2
+1
_
_
_
i
(L
i1
+L
i2
)
x1
y=0
[1 G
i|L
i1
+L
i2
(y; , Q
i1
)]
_
_
_
+
+
1
2
iM
Q
i1
r
iM
+
iM
Q
i1
x=r
iM
+1
_
_
_
i
(L
i1
+ +L
iM
)
x1
y=0
[1 G
i|L
i1
++L
iM
(y; , Q
i1
)]
_
_
_
(3.19)
Multi-level, multi-stream prefetching cache space constraint
The echelon cache level for stream i at level j can be expressed in the following formulas
(see Bodt and Graves 1985 for more detailed illustrations in the multi-echelon inventory
69
management) using the same space management concept introduced in Subsection 3.3.1.
I
ij
(, Q
i1
, r
i
) =
ij
Q
i1
2
+
ij
_
1
ij
i,j+1
_
r
i,j
+
ij
_
1
i,j+1
i,j+2
_
r
i,j+1
+
+
ij
_
1
i,M1
iM
_
r
i,M1
+
ij
iM
r
iM
Since all of the streams share the same space, the average prefetching space required by all
streams is limited by the capacity of cache at level j, s
j
; that is
N
i=1
I
i,j
(, Q
i1
, r
i
)
j
k=1
s
k
, j = 1, . . . , M,
(3.20)
where s
j
is the cache capacity at level j.
Multi-level, multi-stream prefetching frequency constraint
Frequent prefetching increases the system load and may degrade the system performance
after a certain extent. To prevent frequent fetching, an upper limitation, denoted by f
0
, is
set to the total fetching frequency:
F(, Q
i1
) =
N
i=1
F
i
=
N
i=1
i
Q
i1
(1 +
1
i2
+
1
i3
+ +
1
iM
) f
0
, (3.21)
where F
i
=
i
Q
i1
(1 +
1
i2
+
1
i3
+ +
1
iM
) is the average prefetching frequency of stream i.
70
3.7.3 Constrained multi-level, multi-stream (Q, r) model
For mathematical convenience, the number of data blocks is assumed to be continuous due
to its large value. Using the formulas presented in Section 3.7.2, we have the constrained
multi-level, multi-stream (Q, r) model T as
min B(, Q, r) =
N
i=1
B
i
(, Q
i1
, r
i
)
=
N
i=1
__
1
1
i2
_
1
Q
i1
_
r
i1
+Q
i1
r
i1
_
x
(y x)g
i|L
i1
(y; , Q) dydx
+
_
1
i2
i3
_
1
i2
Q
i1
_
r
i2
+
i2
Q
i1
r
i2
_
x
(y x)g
i|L
i1
+L
i2
(y; , Q
i1
) dydx
+
+
1
2
iM
Q
i1
_
r
iM
+
iM
Q
i1
r
iM
_
x
(y x)g
i|L
i1
++L
iM
(y; , Q
i1
) dydx
_
s.t., space constraint (3.20)
frequency constraint (3.21)
ij
0 : integer , Q
i1
, r
ij
0, i = 1, 2, . . . , N; j = 1, 2, . . . , M.
Model T is to minimize the cache miss level, in which B
i
(, Q
i1
, r
i
) is determined by
Equation (3.18) and its calculation needs L
ij
that is dened in Equation (3.17). In addition
to space constraint (3.20) and frequency constraint (3.21), sign restriction species
ij
to
be positive integers, and Q
i1
and r
ij
to be nonnegative real numbers. Note that if the
requests are discrete values, then Q
i1
and r
ij
should be positive integers, and model T uses
Equation (3.19) to calculate B
i
(, Q
i1
, r
i
) over discrete solution space. Finally, we need to
71
point out that the accuracy of the model depends on the measure:
Pr
_
r
ij
r
i,j1
Q
i,j1
< X
i|L
ij
< r
ij
r
i,j1
+ Q
i,j1
i = 1, . . . , N; j = 2, . . . , M,
which are restrictions of the joint prefetching (i.e, joint replenishment in the multi-echelon
inventory management (Bodt and Graves, 1985)).
3.7.4 Summary for multi-level, multi-stream prefetching problem
This subsection further develops a coordinated multi-level, multi-stream (Q, r) model,
which utilizes the concepts and methods in the multi-echelon, multi-product inventory
management. This model shows promises to deal with complicated multi-level cache
prefetching, and has application potentials in the multi-level, high-end le systems and cloud
computing management systems.
72
Chapter 4
Resource Allocation for a Service
Delivery Network in Supply Chain
Management
This chapter studies the joint capacity (i.e., resources) and demand allocation problem
for a service delivery network in supply chain management, where demand sources and
service facilities are widely distributed. The goal is to minimize the sum of the capacity
operating cost and the transportation cost, while satisfying a required service reliability,
which measures the probability of satisfying demand within a delivery time interval.
4.1 Introduction
Service delivery in supply chain management studies the optimal allocation of resources
(i.e., service capacity) to provide timely delivery of service or merchandize to the end
73
customer. For example, Fedex Supply Chain (2011) denes service delivery management
as ways to increase inventory turns, reduce distribution costs, and increase customer
satisfaction through more accurate fulllment cycles. MITEL White Paper (2007)
denes the service delivery management as meeting increasing service demands with fewer
resources under constrained budgets. Although the study of service deliver management in
telecommunication (i.e., quality of service) is prevalent, there is relatively limited research on
service delivery in supply chain management. In this dissertation, we study a special service
delivery problem in supply chain management, where demand sources and service facilities
are widely distributed. We determine the capacity and demand allocated to each service
facility, in order to minimize the sum of the capacity operating cost and transportation
costs, while satisfying a required service reliability, which measures the probability of
satisfying demand within a delivery time interval. We rst introduce the concepts of capacity
allocation, demand allocation and service reliability used in the dissertation.
Capacity allocation studies how to allocate capacity to each service facility to achieve
the best system performance. Research in this specic area of supply chain management is
extensive. For example, Huang (2008) studies the optimal capacity planning strategy in a
general supply chain which contains multiples products, processes, and resources. Chauhan
et al. (2004) study strategic capacity planning in supply chain design for a new market
opportunity, with the objective to meet the demand of the new opportunity at minimum
cost. In this dissertation, the capacity specically refer to the resources occupied to satisfy
the demand.
On the other hand, demand allocation studies how to allocate demand from dierent
sources to dierent service facilities. It solves the problem of low eciency and high cost
74
when service facilities function as separate units with limited communication. There is
already some research on demand allocation in supply chain management. For example,
Benjaafar et al. (2004) study the demand allocation in multiple-product, multiple-facility,
make-to-stock systems, Benjaafar et al. (2008) study the demand allocation in systems with
multiple inventory locations and multiple demand sources.
When capacity and demand allocation are considered at the same time, the problem
becomes much more complicated. Currently, there has been some research in the
telecommunication area. As an example, Lee (1994) studies the allocation of load and
processing capacity to each processor in a multiple processor conguration within the
framework of M/M/1 queues, with the objective to minimize the average waiting time
(including the service time). After some modication, the result can be applied to service
delivery in supply chain management as well.
For service reliability in supply chain management, Wang et al. (2006) dene it as the
probability of meeting demand within a time interval. Sox et al. (1997) derive the formulation
of the service level within a time interval for a multi-product, production-inventory system.
Using the same denition as in Wang et al. (2006) and based on the result of Sox et al.
(1997), we can obtain the service reliability within a delivery time interval for the demand
allocated to a certain service facility, as shown in Section 4.2.
To the best of our knowledge, existing research on service delivery in supply chain
management usually deals with capacity and demand allocation separately, and has no
concrete measurement of service reliability. The model in this dissertation considers these
points simultaneously, and is relatively new in literature. Besides, it nds many applications
75
in distributed service system such as government service centers and maintenance chain-
stores, where cost-eective and timely delivery of service is important.
The rest of the chapter is organized as follows. Section 4.2 builds the model for
capacity and demand allocation. Section 4.3 discusses some properties of the model and
uses numerical optimization to provide optimal allocation strategies. Section 4.4 conducts
sensitivity analysis to study the eects of several parameters. Section 4.5 extends the model
to ve dierent cases. Finally, Section 4.6 gives the conclusions and future research.
4.2 Model formulation
4.2.1 Notation
In this subsection, we rst describe the decision variables, given parameters, and performance
measures used in the model.
Decision variables
ij
: Fraction of demand that is allocated to service facility j from demand source i;
i = 1, 2, . . . , n; j = 1, 2, . . . , m,
j
: Capacity of service facility j; j = 1 . . . m,
Given parameters
c
ij
: Travel cost per unit time between facilities i and j; i = 1, 2, . . . , n; j = 1, 2, . . . , m,
k
j
: Operating cost per unit capacity at service facility j; j = 1 . . . m,
76
m: Number of service facilities,
n: Number of demand sources,
r
0
: Required service reliability, 0 r
0
1,
ij
: Average travel time between demand source i and service facility j; i =
1, 2, . . . , n; j = 1, 2, . . . , m,
T: Delivery time interval during which the demand should be satised,
i
: Demand rate at source i; i = 1 . . . n,
Performance measures
B
j
: Average backordered demand at service facility j; j = 1 . . . m,
C: Total cost which includes the transportation cost and the capacity operating cost,
R
ij
: Service reliability for the partial demand
ij
i
that is assigned to service facility
j from demand source i; i = 1, 2, . . . , n; j = 1, 2, . . . , m,
R: Aggregated service reliability for all the facilities,
j
=
n
i=1
ij
i
/
j
=
j
/
j
: Trac intensity at service facility j; j = 1 . . . m.
4.2.2 Demand allocation
We assume that there are n demand sources and m service facilities. Service facility j
is allocated with capacity
j
. Demand at source i follows Poisson distribution with rate
i
. Each customer from any demand source has the same unit demand. The fraction of
77
demand that is allocated to service facility j from demand source i is denoted by
ij
, where
0
ij
1. According to the random selection property of Poisson process,
ij
i
also
follows Poisson process. Denote the total demand arrival process at the service facility j
as
j
=
n
i=1
ij
i
. Since the superposition of Poisson processes is a Poisson process,
j
is
also a Poisson process. Thus, service facility j serves an M/M/1 queue, based on a rst-in-
rst-out (FIFO) scheduling policy. Note that we adopt Poisson distribution here due to its
unique property that makes our model tractable. However, in the real-world, demand may
have complicated distribution patterns, and one can only turn to heuristics or simulation for
numerical analysis.
4.2.3 Service reliability
Based on the denition of service reliability by Wang et al. (2006), which is the probability
of meeting demand within time interval T, and the result of Sox et al. (1997), which shows
the service level within time interval T for a multi-product, production-inventory system,
we obtain the service reliability within delivery time interval T for the partial demand
ij
i
that is assigned to service facility j from demand source i.
R
ij
= 1 e
j
T(1
j
)
where
j
=
n
i=1
ij
i
/
j
=
j
/
j
is the trac intensity at service facility j. Due to travel
time, we assume that there is a delay from demand source i to facility j after service, denoted
as
ij
. Note that
ij
< T, otherwise the partial demand can never be fullled within the
time interval T. With a simple modication, we obtain the service reliability for the partial
78
demand
ij
i
that is assigned to service facility j from demand source i with delay
ij
.
R
ij
= 1 e
j
(T
ij
)(1
j
)
As a result, the aggregated service reliability for all the facilities can be calculated as:
R =
n
i=1
m
j=1
ij
i
R
ij
n
i=1
i
=
n
i=1
m
j=1
ij
i
_
1 e
j
(T
ij
)(1
j
)
n
i=1
i
4.2.4 Average waiting time
Another important indicator for system performance is the average waiting time. In the
setting of one inventory-production facility with service capacity , s
i
as the base-stock level
for product i, demand
i
for product i, and total demand for all the products, Sox et al.
(1997) show that the backorder level for product i that adopts a make-to-stock strategy can
be expressed as:
B
i
=
s
i
+1
i
1
i
where
i
=
i
/( +
i
) is the parameter for steady-state distribution of the number of
work orders in the system for product i, which follows geometric distribution. With a simple
modication of this expression, we can derive the average demand backordered at service
facility j, where the concept of inventory is no longer applied:
B
j
=
j
1
j
79
As a result, the average waiting time per customer demand can be calculated as the
weighted sum of the delay caused by both backorder and travel:
W =
m
j=1
B
j
+
n
i=1
m
j=1
ij
ij
n
i=1
i
=
m
j=1
j
/(1
j
) +
n
i=1
m
j=1
ij
ij
n
i=1
i
4.2.5 Joint capacity and demand allocation model
For simplicity, we assume that the operating cost of a service facility is proportional to
its capacity, and the transportation cost between a demand source and a service facility is
proportional to the average travel time and the demand allocated between them. The total
cost is the sum of these two cost categories:
C =
m
j=1
k
j
j
+
n
i=1
m
j=1
c
ij
ij
ij
i
With the concepts introduced above, we have the joint capacity and demand allocation
model T as below:
min C =
m
j=1
k
j
j
+
n
i=1
m
j=1
c
ij
ij
ij
i
(4.1)
s.t.
R =
n
i=1
m
j=1
ij
i
_
1 e
j
(T
ij
)(1
j
)
n
i=1
i
r
0
(4.2)
n
i=1
ij
i
j
, j = 1, 2, . . . , m, (4.3)
m
j=1
ij
= 1 i = 1, 2, . . . , n, (4.4)
ij
,
j
0, i = 1, 2, . . . , n; j = 1, 2, . . . , m, (4.5)
80
where objective function (4.1) minimizes the total cost, constraint (4.2) requires that the
service reliability to be satised, constraint (4.3) ensures that the capacity at each service
facility is not exceeded by the demand, constraint (4.4) states that the demand at each
source should be satised, nally, constraint (4.5) denes the nonnegativity condition of the
decision variables.
4.3 Properties of the model and numerical optimiza-
tion
Solving model T requires constrained nonlinear programming. Due to the complexity of the
model, we cannot derive the explicit expression of the optimal solution when both capacity
and demand allocation variables are free. However, with some analysis, we can obtain the
following properties.
PROPOSITION 6. The service reliability constraint (4.2) must be binding under the optimal
solution.
PROPOSITION 7. When demand allocation variables are xed, model T with capacity
allocation variables is convex programming.
4.3.1 Numerical optimization examples
We solve model T using the Matlab built-in optimization function fmincon (Matlab
Documentation, 2010). Function fmincon solves nonlinear programming problems that
have dierential and continuous objective function and constraints with gradient-based
81
methods. In particular, we use the sqp (i.e., sequential quadratic programming) algorithm
provided by fmincon, which solves a quadratic programming subproblem and updates an
estimate of the Hessian of the Lagrangian function using the Broyden-Fletcher-Goldfarb-
Shanno formula at each iteration. Our preliminary numerical results show that the sqp
algorithm is the most ecient in solving model T compared to the other algorithms provided
by fmincon (i.e., trust-region-reective is not suitable, active-set fails at some point,
while interior-point is slower). It solves all of the test instances eectively within one
second.
To implement function fmincon, we randomly generate the values for
ij
that satisfy
constraint (4.4). Note that, in the rest of numerical examples, the unit for
ij
and T is day;
the unit for
i
and
i
is demand per day; the unit for k
i
is dollar per capacity, and the unit
for c
ij
is dollar per demand per day. For simplicity, we do not state these units each time.
Example 1: One service facility When only one service facility is opened, there is no
demand allocation. Consider the service delivery network in Figure 4.1 as an illustrative
example. Demand sources are located at points one to six, and the service facility is
located at point seven. The demand rates for each sources are shown in Table 4.1. The
average travel times
ij
and unit travel costs c
ij
between the demand sources and the service
facilities are shown in Table 4.2. The operating cost per capacity is k
i
= 10, the delivery
time interval is T = 3, and the required service reliability is r
0
= 0.98.
82
Figure 4.1: Capacity allocation example
Table 4.1: Demand rates
1
2
3
4
5
6
10 20 30 40 50 60
Table 4.2: Average travel times and unit travel costs between demand sources and service
facilities for Example 1
j
1j
/c
1j
2j
/c
1j
3j
/c
1j
4j
/c
1j
5j
/c
1j
6j
/c
1j
7 2.5/3.0 2.6/2.0 2.5/3.0 2.8/2.0 2.5/3.0 2.8/2.0
From the optimal solution, we observe that the capacity is = 225.93. The service
reliability is
R = 0.98, which indicates constraint (4.2) is binding as proved in Proposition 6.
The minimum total cost is 3598.29, and the average waiting time is 2.72 days.
Example 2: Multiple service facilities When multiple service facilities are opened, we
need to determine the capacity and demand allocation simultaneously. Consider the service
83
delivery network in Figure 4.2 as an illustrative example. Demand sources are located at
points one to six, and the service facilities are located at points seven and eight. The
average travel times
ij
and unit travel costs c
ij
between the demand sources and the service
facilities are shown in Table 4.3. The demand rates for each source remain the same, as
shown in Table 4.1. The operating cost per capacity is k
i
= 10, the delivery time interval is
T = 3, and the required service reliability is r
0
= 0.98.
Figure 4.2: Joint capacity and demand allocation example
Table 4.3: Average travel times and unit travel costs between demand sources and service
facilities for Example 2
j
1j
/c
1j
2j
/c
1j
3j
/c
1j
4j
/c
1j
5j
/c
1j
6j
/c
1j
7 2.5/3.0 2.6/2.0 2.5/3.0 2.8/2.0 2.5/3.0 2.8/2.0
8 2.8/2.0 2.5/3.0 2.9/2.0 2.5/3.0 2.6/2.0 2.5/3.0
The following matrix shows the optimal demand allocation strategy, where the row index
represents the service facility and the column index represents the demand source. The
corresponding capacities are = 177.93, 58.93. The service reliability is
R = 0.98, which
84
indicates constraint (4.2) is binding, as proved in Proposition 6. The minimum total cost is
3592.53, and the average waiting time is 2.75 days.
=
_
_
_
_
1 1 1 1 0 1
0 0 0 0 1 0
_
_
_
_
4.4 Sensitivity analysis
In this section we perform sensitivity analysis to study the eects of the total demand rate,
the delivery time interval, and the required service reliability on the total cost and the
average waiting time. All the parameters are based on Example 2.
4.4.1 Eect of the total demand rate
Figure 4.3 shows the eect of the total demand on the total cost. We can observe that the
total cost increases as the total demand increases. The reason is that we need more capacity
to meet the increased demand, which brings up the total cost.
200 205 210 215 220 225 230 235 240
3200
3300
3400
3500
3600
3700
3800
3900
4000
Total Demand Rate
M
i
n
i
m
u
m
T
o
t
a
l
C
o
s
t
Figure 4.3: Eect of the total demand rate on the total cost
85
4.4.2 Eect of the delivery time interval
Figure 4.4 shows the eect of the delivery time interval on the total cost and the average
waiting time. We can observe that the total cost decreases as the delivery time interval
increases. The reason is that we have more time to fulll the demand, thus require less
capacity at the service facilities. As a result, the total cost is reduced. Note that when
the delivery time interval approaches innity, constraint (4.2) becomes non-binding, and
the minimum total cost approaches a constant which is the solution to model T without
constraint (4.2). The average waiting time, on the other hand, increases with the delivery
time interval due to reduced capacity at the service facilities.
3 3.5 4 4.5
3250
3300
3350
3400
3450
3500
3550
3600
Time Interval
M
i
n
i
m
u
m
T
o
t
a
l
C
o
s
t
3 3.5 4 4.5
2.7
2.75
2.8
2.85
2.9
2.95
3
3.05
3.1
3.15
3.2
Time Interval
A
v
e
r
a
g
e
W
a
i
t
i
n
g
T
i
m
e
Figure 4.4: (a) Eect of the delivery time interval on the total cost; (b) Eect of the
delivery time interval on the average waiting time
4.4.3 Eect of the required service reliability
Figure 4.5 shows the eect of the required service reliability on the total cost and the average
waiting time. We can observe that the total cost increases as the required service reliability
increases, while the average waiting time shows the opposite trend. The reason is that we
86
need more capacity to meet the increased service reliability, which brings up the total cost
and reduces the average waiting time.
0.86 0.88 0.9 0.92 0.94 0.96
3420
3440
3460
3480
3500
3520
3540
3560
Required Service Reliability
M
i
n
i
m
u
m
T
o
t
a
l
C
o
s
t
0.86 0.88 0.9 0.92 0.94 0.96
2.77
2.78
2.79
2.8
2.81
2.82
2.83
2.84
2.85
2.86
Required Service Reliability
A
v
e
r
a
g
e
W
a
i
t
i
n
g
T
i
m
e
Figure 4.5: (a) Eect of the required service reliability on the total cost; (b) Eect of the
required service reliability on the average waiting time
4.5 Model extensions
In this section we extend the model to ve dierent cases. The rst extension studies the
maximum service reliability that the system can achieve. The second extension studies the
case when the total capacity of the service facilities has a certain limit. The third extension
studies the case when there is a delay before customers can receive the service. The fourth
extension studies the case when the demand sources follow other distributions other than
the Poisson distribution. The fth extension studies the case when the demand sources have
dierent priorities, i.e, demand with higher priority will be served rst. Without specic
illustrations, all the cases have the same structure and the parameters as in Example 2.
87
4.5.1 Extension one: maximum service reliability
When the capacity at each service facility is predetermined, we can calculate the maximum
service reliability that the system can achieve by introducing an alternative model (4.6):
max
R =
n
i=1
m
j=1
ij
i[1e
j
(T
ij
)(1
j
)
]
n
i=1
i
s.t.
n
i=1
ij
i
j
, j = 1, 2, . . . , m,
m
j=1
ij
= 1 i = 1, 2, . . . , n,
ij
0, i = 1, 2, . . . , n; j = 1, 2, . . . , m,
(4.6)
Model (4.6) is similar to model T except that the values for
j
are predetermined and
its objective is to maximize the service reliability. For example, with = 110, 110, we
obtain the maximum service reliability
R = 0.914 from model (4.6), and the optimal demand
allocation strategy as shown below. The average waiting time is 2.71.
=
_
_
_
_
1 0.747 1 0 1 0
0 0.253 0 1 0 1
_
_
_
_
Model (4.6) can be used to study the robustness of the system, i.e., the maximum service
reliability that the system can maintain when one or more service facilities suer(s) from
capacity degradation.
88
4.5.2 Extension two: limited total capacity
When there is limit to the total capacity of the service facilities, we obtain the following
alternative model:
min C =
m
j=1
k
j
j
+
n
i=1
m
j=1
c
ij
ij
ij
i
s.t.
R =
n
i=1
m
j=1
ij
i[1e
j
(T
ij
)(1
j
)
]
n
i=1
i
r
0
m
j=1
j
0
,
n
i=1
ij
i
j
, j = 1, 2, . . . , m,
m
j=1
ij
= 1 i = 1, 2, . . . , n,
ij
0, i = 1, 2, . . . , n; j = 1, 2, . . . , m,
(4.7)
We set the total capacity
0
= 230. The following matrix shows the optimal demand
allocation strategy, where the row index represents the service facility and the column index
represents the demand source. The corresponding capacities are = 85.46, 144.54. The
service reliability is
R = 0.98, which indicates constraint (4.2) is binding, as proved in
Proposition 6. The minimum total cost is 3684.79, and the average waiting time is 2.66
days.
=
_
_
_
_
1 1 1 0.233 0 0.101
0 0 0 0.767 1 0.899
_
_
_
_
4.5.3 Extension three: delay before service
Comparing to Example 2, where there is a travel delay after the service, we now assume that
customers have a travel delay before receiving the service. As a result, the aggregated arrival
process no longer follows Poisson distribution. Since it is hard to derive the mathematical
89
formulation of the service reliability, we use simulation to analyze the dierences. The
simulation model in Arena contains the module for demand assignment and the module for
verifying service reliability.
To get the optimal solution, we use the tool Opt Quest in Arena. The initial solution for
the model is derived from Example 2. The number of replication is set at 3. Each replication
contains 200 days, with 10 days of warm-up period. Each day contains 24 hours. After the
running of total 422 simulations, the best solution is found at the 322th running. The
following matrix shows the optimal demand allocation strategy. The row index represents
the service facility and the column index represents the demand source. The corresponding
capacities are = 177.40, 54.90. The service reliability is
R = 0.98. The minimum total
cost is 3565.89, and the average waiting time is 2.76 days.
=
_
_
_
_
1 1 1 1 0.0585 1
0 0 0 0 0.9415 0
_
_
_
_
4.5.4 Extension four: other demand distributions
When demand no longer follows Poisson distribution, the situation becomes more compli-
cated. Since it is hard to derive the mathematical formulation of the service reliability, we
turn to simulation for further analysis. We setup the experiment in Arena, where demand
sources at points one, two, three and six follow Poisson distribution as in Example 2,
demand source at point four follows Erlang distribution (1/80,2) with scale parameter
1/80 and shape parameter 2, and demand source at point ve follows Uniform distribution
(40,60) with minimum value 40 and maximum value 60.
90
To get the optimal solution, we use the tool Opt Quest in Arena. The initial solution for
the model is derived from Example 2. The number of replication is set at 3. Each replication
contains 200 days, with 10 days of warm-up period. Each day contains 24 hours. After the
running of total 414 simulations, the best solution is found at the 314th running. The
following matrix shows the optimal demand allocation strategy. The row index represents
the service facility and the column index represents the demand source. The corresponding
capacities are = 176.09, 58.52. The service reliability is
R = 0.98. The minimum total
cost is 3567.15, and the average waiting time is 2.74 days.
=
_
_
_
_
1 1 1 1 0.0345 1
0 0 0 0 0.9655 0
_
_
_
_
4.5.5 Extension ve: dierent customer priorities
When demand sources have dierent priorities, we also use simulation for analysis since it is
hard to explicitly formulate the service reliability. We setup the experiment in Arena, where
demand sources at points one to six follow the Poisson distribution as in Example 2, but
with decreasing priorities.
To get the optimal solution, we use the tool Opt Quest in Arena. The initial solution for
the model is derived from Example 2. The number of replication is set at 3. Each replication
contains 200 days, with 10 days of warm-up period. Each day contains 24 hours. After the
running of total 344 simulations, the best solution is found at the 244th running. The
following matrix shows the optimal demand allocation strategy. The row index represents
the service facility and the column index represents the demand source. The corresponding
91
capacities are = 194.21, 54.57. The service reliability is
R = 0.98. The minimum total
cost is 3752.31, and the average waiting time is 2.73 days.
=
_
_
_
_
0.762 0.945 0.99 1 0.164 0.959
0.238 0.055 0.01 0 0.836 0.041
_
_
_
_
4.6 Summary for the service delivery network problem
In this topic, we study a service delivery problem in supply chain management, and build a
model to jointly allocate the capacity and demand to each service facility, in order to minimize
the sum of the capacity operating cost and the transportation cost, while satisfying a required
service reliability. We discuss some properties of the model, and use numerical optimization
to provide optimal allocation strategy. We perform sensitivity analysis to study the eects
of the total demand rate, the delivery time interval, and the required service reliability on
the optimal solution. Finally, we extend the model to several dierent cases, and use both
optimization and simulation to study the properties of these extentions.
92
Chapter 5
Conclusions and Future Research
This chapter gives the summary of the work, provides potential applications, and proposes
directions for future research.
5.1 Summary
This dissertation discusses about the modeling and optimization of resource allocation
in supply chain management. Three topics are addressed: the MCNF-VLB (minimum
cost network ow with variable lower bounds) problem, which optimizes the utilization
of distribution channels (i.e., resources) in a supply chain network; the multi-stream data
prefetching problem, which applies the methods from supply chain modeling to the data
prefetching problem in computer science, in order to allocate the cache space and the
frequency (i.e., resources) eectively; the service delivery network problem, which jointly
allocated the capacity (i.e., resources) and demand to minimize the total cost, while satisfying
a required service reliability.
93
5.2 Potential applications
There are numerous applications of resource allocation methods in supply chain management.
With regard to the three topics, the following areas can apply the methods/models
introduced in this dissertation.
The MCNF-VLB problem has practical applications in many supply chain distribution
areas, e.g., minimizing the total cost for transportation via oil pipeline/airline network where
some pipelines/ight-legs have to be closed if the ow/passenger volumes are less than their
threshold values.
The multi-stream data prefetching problem has many applications in the high-end
le systems, cloud computing management systems, and so on. We believe inventory
management methods has the potential of becoming a powerful tool in computer science
research.
The service delivery network problem nds many applications in distributed service
system, where cost-eective and timely delivery of service is important, e.g., government
service centers and maintenance chain-stores.
5.3 Future research
Besides a variety of potential research areas for resource allocation in supply chain
management, the three topics discussed also have several directions for future research.
For the MCNF-VLB problem, specially designed exact and heuristic methods should
be developed for solving large-scale MCNF-VLB instances, for which CPLEX fails to nd
optimal solutions.
94
For the multi-stream data prefetching problem, the disk access time could be modeled as
a random variable whose probability distribution depends on the batch size and the system
status (e.g., the data transfer frequency, the occupied storage space, etc). This is more
realistic than the present disk access time model and will make the model more suitable
for dynamic environments. Another interesting direction for future study is to realize the
multi-level, multi-stream (Q, r) model in the operating system (e.g., the Linux kernel). For
such a complex problem, the optimal management policy ought to be simple enough to
allow a practical implementation.
For the service delivery network problem, there are several interesting areas for further
research. For example, when the facility has dierent service times for dierent demand
sources, the mathematical formulation for the service reliability becomes a dicult problem.
Also, one can study how to dynamically assign the demand with higher priority when its
delivery deadline is approaching, which can further increase the systems service reliability.
95
Bibliography
96
Bibliography
Ahuja, R. K., Goldberg, A. V., Orlin, J. B., and Tarjan, R. E. (1992). Finding minimum-cost
ows by double scaling. Math. Program., 53(3):243266.
Ahuja, R. K., Hochbaum, D. S., and Orlin, J. B. (2003). Solving the convex cost integer
dual network ow problem. Management Sci., 49(7):950964.
Ahuja, R. K., Magnanti, T. L., and Orlin, J. B. (1993). Network Flows: Theory, Algorithms,
and Applications. Prentice Hall, Englewood Clis, NJ.
Amiri, A. and Pirkul, H. (1997). New formulation and relaxation to solve a concave-cost
network ow problem. J. Oper. Res. Soc., 48(3):278287.
Azi, N., Gendreau, M., and Potvin, J.-Y. (2010). An exact algorithm for a vehicle routing
problem with time windows and multiple use of vehicles. Eur. J. Oper. Res., 48(3):756763.
Bazaraa, M. S. and Jarvis, J. J. (1977). Linear programming and network ows. John Wiley
& Sons, New York, NY.
Bazaraa, M. S., Sherali, H. D., and Shetty, C. M. (2006). Nonlinear Programming: Theorey
and Algorithms. John Wiley & Sons, Hoboken, NJ, 3rd edition.
97
Benjaafar, S., ElHafsi, M., and Vericourt, F. (2004). Demand allocation in multiple-product,
multiple-facility, make-to-stock systems. Management Sci., 50(10):14311448.
Benjaafar, S., Li, Y., Xu, D., and Elhedhli, S. (2008). Demand allocation in systems with
multiple inventory locations and multiple demand sources. Manufacturing Service Oper.
Management, 10(1):4360.
Bertsekas, D. P. (1999). Nonlinear programming. Athena Scientic, Belmont, MA, 2nd
edition.
Bertsekas, D. P. and Tseng, P. (1988). Relaxation methods for minimum cost ordinary and
generalized network ow problems. Oper. Res., 36(1):93114.
Bodt, M. A. D. and Graves, S. C. (1985). Continuous-review policies for a multi-echelon
inventory problem with stochastic demand. Management Sci., 31(10):12861299.
Bradley, G. H., Brown, G. G., and Graves, G. W. (1977). Design and implementation of
large scale primal transshipment algorithms. Management Sci., 24(1):134.
Butt, A. R., Gniady, C., and Hu, Y. C. (2005). The performance impact of kernel prefetching
on buer cache replacement algorithms. In Proc. 2005 ACM SIGMETRICS Internat. Conf.
Measurement and Modeling of Comput. Systems, pages 157168, New York. ACM.
Cabot, A. V. and Erenguc, S. S. (1984). Some branch-and-bound procedures for xed-cost
transportation problems. Nav. Res. Logist. Q., 31(1):145154.
Cao, P. (1996). Application-controlled le caching and prefetching. PhD thesis, Princeton
University, Princeton, NJ.
98
Chauhan, S. S., Nagi, R., and Proth, J. (2004). Strategic capacity planning in supply chain
design for a new market opportunity. Int. J. Prod. Res., 42(11):21972206.
Chopra, S. and Meindl, P. (2003). Supply Chain Management: Strategy, Planning, and
Operations. Prentice Hall, Upper Saddle River, NJ, 2nd edition.
Connors, M. M. and Zangwill, W. I. (1971). Cost minimization in networks with discrete
stochastic requirements. Oper. Res., 19(3):794821.
Costa, A. M. (2005). A survey on benders decomposition applied to xed-charge network
design problems. Comput. Oper. Res., 32(6):14291450.
CPLEX Documentation (2007). ILOG CPLEX 11.0 Users Manual. http://www.lingnan.
net/lab/uploadfile/200864184419679.pdf.
Cruz, F. R. B., Smith, J. M., and Mateus, G. R. (1998). Solving to optimality the
uncapacitated xed-charge network ow problem. Comput. Oper. Res., 25(1):6781.
Dantzig, G. B. (1951). Application of the simplex method to a transportation problem.
In Activity Analysis of Production and Allocation, pages 359373. Cowles Commission
Monograph 13.
Dillenberger, C., Escudero, L. F., Wollensak, A., and Zhang, W. (1994). On practical resource
allocation for production planning and scheduling with period overlapping setups. Eur. J.
Oper. Res., 75(2):275286.
Edmonds, J. and Karp, R. M. (1972). Theoretical improvements in algorithmic eciency
for network ow problems. J. ACM, 19(2):248264.
99
Erickson, R. E., Monma, C. L., and Veinott, A. F. (1987). Send-and-split method for
minimum-concave-cost network ows. Math. Oper. Res., 12(4):634664.
Fedex Supply Chain (2011). The online documentation for orchestrated delivery
management.
Figueira, J., Silti, H. M., and Tolla, P. (1998). Using mathematical programming heuristics
in a multicriteria network ow context. J. Oper. Res. Soc., 49(8):878885.
Ford, L. R. and Fulkerson, D. R. (1957). A primal-dual algorithm for the capacitated
hitchcock problem. Nav. Res. Logist. Q., 4(1):4754.
Ford, L. R. and Fulkerson, D. R. (1962). Flow in Networks. Princeton University Press,
Princeton, NJ.
Fulkerson, D. R. (1961). An out-of-kilter method for minimal-cost ow problems. SIAM J.
Appl. Math., 9(1):1827.
Geunes, J. and Pardalos, P. M. (2005). Supply Chain Optimization. Springer, Berlin,
Germany.
Ghalebsaz-Jeddi, B., Shultes, B. C., and Haji, R. (2004). A multi-product continuous review
inventory system with stochastic demand, backorders, and a budget constraint. Eur. J.
Oper. Res., 158(2):456469.
Ghatee, M. and Mehdi, S. H. (2009). Application of fuzzy minimum cost ow problems
to network design under uncertainty. Fuzzy Sets and Systems, 160(22):32633289.
ce:titleFeatured issue: Aspects of fuzzy decision making/ce:title.
100
Gill, B. and Bathen, L. (2007). Amp: Adaptive multi-stream prefetching in a shared cache.
In Proc. 5th USENIX Conf. File and Storage Technologies (FAST 07), pages 185198,
Berkeley, CA. USENIX Association.
Goldberg, A. V., Tardos, E., and Tarjan, R. E. (1989). Network ow algorithms. Technical
Report 860, School of Operations Research and Industrial Engineering, Cornell University,
Ithaca, NY.
Goldberg, A. V. and Tarjan, R. E. (1989). Finding minimum-cost circulations by canceling
negative cycles. J. ACM, 36(4):873886.
Hariga, M. (2009). A continuous review (Q, r) model with owned and rented storage facilities.
In Proc. of the 2009 Internat. Conf. Comput. and Ind. Eng. (CIE 09), pages 12971301,
Amsterdam, Netherlands. Elsevier.
Harkan, I. A. and Hariga, M. (2007). A simulation optimization solution to the inventory
continuous review problem with lot size dependent lead time. Arab. J. Sci. Eng.,
32(2B):327338.
Hennessy, J. L. and Patterson, D. A. (2003). Computer Architecture: A Quantitative
Approach. Morgan Kaufmann, San Francisco, CA, 3rd edition.
Hopp, W. J. and Spearman, M. L. (2000). Factory Physics. McGraw-Hill/Irwin Publishers,
New York, 2nd edition.
Hsu, W. and Smith, A. (2004). The performance impact of I/O optimizations and disk
improvements. IBM J. Res. Dev., 2(48):255289.
101
Huang, X. (2008). Capacity Planning in a General Supply Chain with Multiple Contract
Types. PhD thesis, Massachusetts Institute of Technology, Cambridge, MA.
Iri, M. (1960). A new method for solving transportation-network problems. J. Oper. Res.
Jpn., 3:2787.
Jernigan, S. A. (2004). Multi-tier Inventory Systems With Space Constraints. PhD thesis,
Georgia Institute of Technology, Atlanta, GA.
Johnson, E. L. (1966). Networks and basic solutions. Oper. Res., 14(4):619623.
Kennington, J. L. and Helgason, R. V. (1980). Algorithms for Network Programming. John
Wiley & Sons, New York, NY.
Klein, M. (1967). A primal method for minimal cost ows with applications to the assignment
and transportation problems. Management Sci., 14(3):205220.
Lau, H. (1997). Simple formulas for the expected costs in the newsboy problem: An
educational note. Eur. J. Oper. Res., 100(3):557561.
Lau, H. C., S., M., and Teo, K. M. (2003). Vehicle routing problem with time windows and
a limited number of vehicles. Eur. J. Oper. Res., 148(3):559569.
Lee, H. (1994). Simultaneous determination of capacities and load in parallel M/M/1 queues.
Eur. J. Oper. Res., 73:95102.
Li, C., Shen, K., and Papathanasiou, A. E. (2007). Competitive prefetching for concurrent
sequential I/O. SIGOPS Oper. Syst. Rev., 41(3):189202.
102
Liang, S., Jiang, S., and Zhang, X. (2007). Step: Sequentiality and thrashing detection
based prefetching to improve performance of networked storage servers. In Proc. 27th
Internat. Conf. Distributed Comput. Systems (ICDCS 07), page 64, Washington, DC.
IEEE Computer Society.
Magnanti, T. L. . and Wong, R. T. (1983). Network design and transportation planning:
models and algorithms. Transport. Sci., 18:155.
Matlab Documentation (2010). Matlab R2010b Optimization Toolbox Documentation.
http://www.mathworks.com/help/toolbox/optim/ug/fmincon.html.
MITEL White Paper (2007). Simplifying and transforming service delivery in government.
Technical report, Citizen Interaction Centers.
Monma, C. L. and Segal, M. (1982). A primal algorithm for nding minimum-cost ows in
capacitated networks with applications. Bell Syst. Tech. J., 61:949968.
Montgomery, D. C. and Runger, G. C. (2010). Applied Statistics and Probability for
Engineers. John Wiley & Sons, Hoboken, NJ, 5nd edition.
Moon, I. and Cha, B. C. (2005). A continuous review inventory model with the controllable
production rate of the manufacturer. Internat. Trans. Oper. Res., 12(2):247258.
Moon, I. and Choi, S. (1994). The distribution free continuous review inventory system with
a service level constraint. Comput. Ind. Engrg., 27(1-4):209212.
Mulvey, J. M. (1978). Pivot strategies for primal-simplex network codes. J. ACM, 25(2):266
270.
103
Orlin, J. B. (1984). Minimum convex cost dynamic network ows. Math. Oper. Res.,
9(2):190207.
Orlin, J. B. (1988). A faster strongly polynomial minimum cost ow algorithm. In In Proc.
of the 20th Annual ACM Symposium on Theory of Comput., pages 377387.
Ortega, F. and Wolsey, L. A. (2003). A branch-and-cut algorithm for the single-commodity,
uncapacitated, xed-charge network ow problem. Networks, 41(3):143158.
Ouyang, L. Y. and Wu, K. S. (1997). Mixture inventory model involving variable lead time
with a service level constraint. Comput. Oper. Res., 24(9):875882.
Palekar, U. S., Karwan, M. H., and Zionts, S. (1990). A branch-and-bound method for the
xed charge transportation problem. Management Sci., 36(9):10921105.
Phillips, D. T. and Garcia-Diaz, A. (1981). Fundamentals of Network Analysis. International
Series in Industrial and Systems Engineering. Prentice Hall, Englewood Clis, NJ.
R ock, H. (1980). Discrete Structures and Algorithms. Carl Hanser Press, Carl Hanser,
Munich, Germany.
Schrady, D. A. and Choet, U. C. (1971). Models for multi-item continuous review inventory
policies subject to constraints. Naval Res. Logist. Quart., 18(4):451463.
Schroeder, R. G. (1974). Managerial inventory formulations with stockout objectives and
scal constraints. Naval Res. Logist. Quart., 21(3):375388.
Shih, H. and Lee, E. S. (1999). Fuzzy multi-level minimum cost ow problems. Fuzzy Sets
and Systems, 107(2):159176.
104
Sox, C. R., Thomas, L. J., and McClain, J. O. (1997). Coordinating production and inventory
to improve service. Management Sci., 43(9):11891197.
Sun, M. and McKeown, P. G. (1993). Tabu search applied to the general xed charge
problem. Ann. Oper. Res., 41(1-4):405420.
Tomkins, A., Patterson, R. H., and Gibson, G. (1997). Informed multi-process prefetching
and caching. In Proc. 1997 ACM SIGMETRICS Internat. Conf. Measurement and
Modeling of Comput. Systems, pages 100114, New York. ACM.
Walker, W. E. (1976). A heuristic adjacent extreme point algorithm for the xed charge
problem. Management Sci., 22(5):587596.
Wang, N., Lu, J.-C., and Kvam, P. (2006). Reliability modeling in spatially distributed
logistics systems. IEEE Trans. Reliab., 55(3):525534.
Weintraub, A. (1974). A primal algorithm to solve network ow problems with convex costs.
Management Sci., 21(1):8797.
Wollmer, R. D. (1968). Maximizing ow through a network with node and arc capacities.
Transport. Sci., 2(3):213232.
Zangwill, W. I. (1968). Minimum concave cost ows in certain networks. Management Sci.,
14(7):429450.
Zhang, W. Y., Zhang, S., Cai, M., and Huang, J. X. (2011). A new manufacturing resource
allocation method for supply chain optimization using extended genetic algorithm. Int. J.
Adv. Manuf. Technol., 53:12471260.
105
Zhang, Z., Kulkarni, A., Ma, X., and Zhou, Y. (2009). Memory resource allocation for le
system prefetching: From a supply chain management perspective. In Proc. 4th EuroSys.
Conf., pages 7588, New York. ACM.
106
Appendix
107
Appendix A
A.1 Proofs of propositions 1 to 7
Proof of proposition 1. Using Equation (3.5), we have
B(Q, r)
r
i
=
1
Q
i
[
B
i
(r
i
+ Q
i
; Q
i
)
B
i
(r
i
; Q
i
)]
=
r
i
Q
i
[G
i
(r
i
+ Q
i
; Q
i
) G
i
(r
i
; Q
i
)] [1 G
i
(r
i
+ Q
i
; Q
i
)]
1
Q
i
_
r
i
+Q
i
r
i
yg
i
(y ; Q
i
)dy.
B
i
(x; Q
i
) is a decreasing function of x. Thus, B(Q, r)/r
i
0, which means B(Q, r) is
a decreasing function of r
i
. Also, with Equation (3.5), it is easy to show that
B
i
(x; Q
i
) =
_
0
yg
i
(y + x; Q
i
) dy =
1
2
2
i
L
i
_
0
y exp
_
(y+x
i
L
i
)
2
2
2
i
L
i
_
dy. When r
i
approaches innity,
B
i
(x; Q
i
)
1
2
2
i
L
i
_
0
y exp
_
(y+x
i
L
i
)
2
2
i
L
i
_
dy =
1
2
2
i
L
i
exp
_
(x
i
L
i
)
2
2
i
L
i
_
_
0
y exp
_
y
2
2
i
L
i
_
dy,
which means
B
i
(x; Q
i
) is less than the order of e
x
. With this knowledge in Equation (3.5),
B
i
(Q, r
i
) approaches zero as r
i
approaches innity. These imply the statements in the
proposition.
108
Proof of proposition 2. By the proof of Proposition 1, B(Q
, r
)/r
i
0 and B(Q
, r
)/r
i
approaches zero when r
i
approaches innity for i = 1, 2, . . . , N. Then, by condition (2),
1
> 0 and approaches zero accordingly. To ensure complementary condition (3), space
constraint (3.2) must be binding whenever
1
> 0.
Proof of proposition 3. By Equations (3.6) and (1), the cache hit ratio of stream i for
i = 1, 2, . . . , N is R
i
= 1 + B(Q, r)/r
i
. Model (3.8) and model (3.11) have the same
Lagrangian function as Equation (3.9), and thus the optimal solution of model (3.11) must
satisfy condition (2), which is one of the KKT conditions for model (3.11). Therefore,
B(Q
, r
)/r
i
=
1
and R
i
= 1
1
for all i = 1, 2, . . . , N.
Proof of proposition 4. The feasible set of model (3.11) is H = (Q, r) : S(Q, r) =
N
i=1
(r
i
+ Q
i
/2) = s
0
; F(Q) =
N
i=1
i
/Q
i
f
0
; and Q, r 0. It is easy to show that
S(Q, r) s
0
and F(Q) f
0
are convex functions over the region of Q, r 0. Because set
x : g(x) 0 is convex if function g(x) is a convex function and the intersection of convex
sets is convex (Bazaraa et al. 2006), set H is convex.
Proof of proposition 5. From Equation (1), we have for all i, j 1, 2, . . . , N and i ,= j,
2
B(Q, r)
r
2
i
=
1
Q
i
[G
i
(r
i
+ Q
i
; Q
i
) G
i
(r
i
; Q
i
)] > 0 and
2
B(Q, r)
r
i
r
j
= 0.
Therefore, the Hessian matrix associated with function B(Q, r) with variables Q xed is
positive denite (Bazaraa et al. 2006). By Proposition 4, the feasible set is convex. Therefore,
when variables Q are xed, the corresponding model (3.11) is convex programming.
109
Proof of proposition 6. Substituting the expression of
j
=
n
i=1
ij
i
/
j
=
j
/
j
into
constraint (4.2), we can get its alternative form
n
i=1
m
j=1
ij
1e
(T
ij
)(
j
n
i=1
ij
i
)
n
i=1
i
r
0
.
It is easy to show that the left-hand-side of the expression is an increasing function of
j
. Also, constraint (4.3) cannot be binding for all
j
, otherwise constraint (4.2) will be
violated. If constraint (4.2) is non-binding under the optimal solution, we can decrease
j
by a small amount
j
in a non-binding constraint (4.3), such that the feasibility of
constraints (4.2) and (4.3) are maintained. Thus, the total cost can be further reduced,
violating the optimality of the solution. As a result, constraint (4.2) must be binding under
the optimal solution.
Proof of proposition 7. When the demand allocation variables are xed, the feasible set of
model T is H = : g
1j
() =
n
i=1
ij
i
j
; g
2
() =
n
i=1
m
j=1
ij
1e
(T
ij
)(
j
n
i=1
ij
i
)
n
i=1
r
0
. It is easy to show that g
1j
()
j
and g
2
() +r
0
are convex functions over the region
of 0. Because set x : g(x) 0 is convex if function g(x) is a convex function
and the intersection of convex sets is convex (Bazaraa et al., 2006), set H is convex. The
objective function of model T is linear, thus also convex. Therefore, when demand allocation
variables are xed, the corresponding model T with capacity allocation variables is
convex programming (Bazaraa et al., 2006).
A.2 The KKT and second order sucient conditions
For convenience, we denote
S(Q, r) = S(Q, r) s
0
and
F(Q, r) = F(Q) f
0
. Then the
standard formats of space constraint (3.2) and frequency constraint (3.3) are
S(Q, r)
0 and
F(Q, r) 0, respectively. The gradients of
S(Q, r) and
F(Q, r) with respect to
110
(Q
1
, Q
2
, . . . , Q
N
, r
1
, r
2
, . . . , r
N
) are:
S(Q, r) =
_
1
2
,
1
2
, . . . ,
1
2
, 1, 1, . . . , 1
_
F(Q, r) =
_
1
Q
2
1
,
2
Q
2
2
, . . . ,
N
Q
2
N
, 0, 0, . . . , 0
_
,
where vector
S(Q, r) has the rst N elements of 1/2 and the last N elements of 1, and vector
F(Q, r) has the last N elements of 0. To obtain the second order sucient conditions,
rst dene the critical cone T(Q, r,
1
,
2
) at solution (Q, r) for dierent cases as follows.
If the space and frequency constraints are both binding, then
T(Q, r,
1
,
2
) =
_
y
2N
:
N
i=1
y
i
/2 +
2N
i=N+1
y
i
= 0 and
N
i=1
i
y
i
/Q
2
i
= 0
if
1
> 0,
2
> 0
y
2N
:
N
i=1
y
i
/2 +
2N
i=N+1
y
i
= 0 and
N
i=1
i
y
i
/Q
2
i
0
if
1
> 0,
2
= 0
y
2N
:
N
i=1
y
i
/2 +
2N
i=N+1
y
i
0 and
N
i=1
i
y
i
/Q
2
i
= 0
if
1
= 0,
2
> 0
y
2N
:
N
i=1
y
i
/2 +
2N
i=N+1
y
i
0 and
N
i=1
i
y
i
/Q
2
i
0
if
1
= 0,
2
= 0.
If the space constraint is binding and the frequency constraint is non-binding, then
T(Q, r,
1
,
2
) =
_
_
_
y 1
2N
:
N
i=1
y
i
/2 +
2N
i=N+1
y
i
= 0
_
if
1
> 0
_
y 1
2N
:
N
i=1
y
i
/2 +
2N
i=N+1
y
i
0
_
if
1
= 0.
If the space constraint is non-binding and the frequency constraint is binding, then
T(Q, r,
1
,
2
) =
_
_
_
y 1
2N
:
N
i=1
i
y
i
/Q
2
i
= 0
_
if
2
> 0
_
y 1
2N
:
N
i=1
i
y
i
/Q
2
i
0
_
if
2
= 0.
111
If the space and frequency constraints are both non-binding, then
T(Q, r,
1
,
2
) = 1
2N
.
Because
S(Q, r) and
, r
1
,
2
) must satisfy the
following KKT conditions with respect to Lagrangian function (3.9) (Bazaraa et al. 2006):
L(Q
, r
1
,
2
)
Q
i
=
B(Q
, r
)
Q
i
+
1
2
2
i
(Q
i
)
2
= 0, i = 1, 2, . . . , N (1)
L(Q
, r
1
,
2
)
r
i
=
B(Q
, r
)
r
i
+
1
= 0, i = 1, 2, . . . , N (2)
1
_
N
i=1
_
r
i
+
Q
i
2
_
s
0
_
= 0 (3)
2
_
N
i=1
i
Q
i
f
0
_
= 0 (4)
N
i=1
_
r
i
+
Q
i
2
_
s
0
;
N
i=1
i
Q
i
f
0
(5)
1
,
2
0, (6)
where B(Q, r)/r
i
is given in Equations (1) and (1), and
B(Q, r)
Q
i
=
N
j=1
1
Q
j
_
r
j
+Q
j
r
j
_
x
(y x)
g
i
(y ; Q
i
)
Q
i
dydx
+
1
Q
i
_
r
i
+Q
i
(y r
i
Q
i
)g
i
(y ; Q
i
) dy
1
Q
2
i
_
r
i
+Q
i
r
i
_
x
(y x)g
i
(y ; Q
i
) dydx,
112
assuming that partial derivative of g
i
(y ; Q
i
) exists.
Furthermore, a solution (Q
, r
1
,
2
) satisfying the KKT conditions (1) (6) is a strict
local minimizer if any nonzero vector y in the critical cone T(Q
, r
1
,
2
) satises:
y
2
L(Q
, r
1
,
2
)y
T
> 0, (7)
where the Hessian matrix is
2
L(Q
, r
1
,
2
) =
_
2
L(Q
, r
1
,
2
)
x
i
x
j
_
, x
i
, x
j
Q
1
, Q
2
, . . . , Q
N
, r
1
, r
2
, . . . , r
N
.
The detailed expression of the Hessian matrix
2
xx
L(Q
, r
1
,
2
) can be obtained, but it
is too complicated to analyze. Thus, we ignore the details to save space.
113
Vita
Qi Yuan is a Ph.D. candidate at the Department of Industrial and Systems Engineering,
The University of Tennessee, Knoxville. He is expected to complete his study in 2013.
His research interests include supply chain modeling, network ow, and transportation
optimization in the operations research area. He is a student member of the Institute of
Industrial Engineers (IIE) and Institute for Operations Research and Management Sciences
(INFORMS). He worked as an operations research intern at Norfolk Southern Corporation,
Atlanta, GA in 2012, and is now working as a supply chain research analyst at Niagara
Bottling, a major beverage company in the Greater Los Angeles Area.
114