European Journal of Operational Research 183 (2007) 564–577 www.elsevier.com/locate/ejor
Discrete Optimization
Three-stage approaches for optimizing some variations of the resource constrained shortest-path sub-problem in a column generation context Xiaoyan Zhu a, Wilbert E. Wilhelm
b,*
a
b
406 Ferris Hall, University of Tennessee, Knoxville, TN 37996-2100, United States Industrial and Systems Engineering Department, Texas A&M University, TAMUS 3131, College Station, TX 77843-3131, United States Received 7 September 2005; accepted 19 October 2006 Available online 22 December 2006
Abstract This paper presents a unified three-stage approach (TSA), comprising preprocessing, setup, and iterative solution stages, for solving several variations of the resource constrained shortest-path problem (RCSP). TSA is designed specially for column-generation applications in which sub-problems must be solved repetitively. The first two stages are implemented one time and only the third stage need be applied repetitively. In a companion paper, the authors proposed a TSA for solving RCSP on an acyclic graph with upper bound resource-limitation constraints. This paper shows that a TSA can be designed to solve each of several related problems: shortest-path with equality resource-limitation constraints; shortest-path with resource windows; resource-constrained, k-shortest path; and multiple-resource, multiple-choice knapsack. A numerical example demonstrates application of a TSA to design an international assembly system and its supply chain using branch and price with multiple-choice knapsack sub-problems. Computational results show that our TSA can solve this sub-problem effectively in such a column-generation environment. Ó 2006 Elsevier B.V. All rights reserved. Keywords: Discrete optimization; (T) Integer programming; (T) Graph theory; Column-generation; Resource-constrained shortest-path problem; Multiple-resource; Multiple-choice knapsack problem; Shortest-path problem with resource windows
1. Introduction A resource constrained shortest-path problem (RCSP) is a variant of the classical shortest-path problem (SPP). Consider a special case of RCSP, that is posed on an acyclic, directed graph G = (V, A) with n = jVj topologically ordered nodes v1, . . . , vn and m = jAj arcs. A topological order of all the nodes in G is a linear ordering such that arc (i, j) 2 A if and only if 1 6 i < j 6 n. Each arc (i, j) 2 A has an associated cost cij and an jRj-dimensional resource requirement vector uij ¼ ðuij1 ; . . . ; uijjRj Þ representing the resources required to
*
Corresponding author. Tel.: +1 409 845 5531; fax: +1 409 847 9005. E-mail addresses:
[email protected] (X. Zhu),
[email protected] (W.E. Wilhelm).
0377-2217/$ - see front matter Ó 2006 Elsevier B.V. All rights reserved. doi:10.1016/j.ejor.2006.10.012
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
565
traverse it, where R is a set of non-negative discrete-valued resources. RCSP is to find a shortest path (i.e., the path with the least total arc cost) from the start node v1 to the end node vn with a total consumption of each type of resource r 2 R that observes a given upper bound, Tr. Denote T ¼ ðT 1 ; . . . ; T jRj Þ as the vector of resource limitations. Typical resources are time, distance, capacity, money, workload, and reliability requirement. RCSP is often used as a sub-problem in column-generation (CG) (e.g., crew scheduling, Mingozzi et al., 1999; Desrochers and Soumis, 1989), prescribing the content and timing of products upgrades (Wilhelm et al., 2003), optimizing picking (Wilhelm et al., 2006b) and placing (Wilhelm et al., 2006a) operations on dual-head placement machines, and multicommodity flow problems (Holmberg and Yuan, 2003). Many applications (e.g., in scheduling (Mingozzi et al., 1999)) may be modeled using an acyclic graph and multiple resource restrictions. Motivated by these applications, Zhu and Wilhelm (2005a) proposed a three-stage approach (TSA), which is designed for solving RCSP repeatedly with single or multiple resource constraints on an acyclic graph in the context of CG. The objectives of this paper are to design a TSA, comprising preprocessing, setup, and iterative solution stages, to solve each of several variations of RCSP (shortest-path with equality resource-limitation constraints; shortest-path with resource windows; resource-constrained, k-shortest path; and multiple-resource, multiplechoice knapsack) and to demonstrate the effectiveness of a TSA in solving a related problem repeatedly as a sub-problem in CG. This work is motivated by the fact that each of these well-known problem types invokes a logic that makes it well suited to address practical issues in a model that is amenable to CG. To flesh out the idea of a TSA, we briefly review the one described by Zhu and Wilhelm (2005a). Stage 1 uses a preprocessing algorithm (PPA) to reduce an instance size by: (i) identifying and deleting nodes and arcs that cannot be on any resource-feasible (i.e., satisfying all resource limitations) v1 vn path, and (ii) formulating a tight resource window relative to each resource-limitation constraint at each remaining node. PPA transforms RCSP on G to SPP with resource windows (SPPRW) on reduced graph GR = (VR, AR). In SPPRW, a variant of SPP, the cumulative resource requirement (CRR) of each resource at each node along the solution path must lie within the specified resource window associated with that node. Stage 2 uses an expansion procedure (EP) to set up an expanded graph GE = (VE, AE) so that SPPRW on GR can be solved as SPP on GE. Stage 3 incorporates an optimizing algorithm (OA) to solve SPP, prescribing a shortest path through GE. The solution to SPP corresponds to the solution of the original RCSP. OA is a labeling algorithm for SPP (see Gallo and Pallottino, 1986 for a review on SPP). This TSA comprises a series of three algorithms (PPA, EP, and OA), and runs in pseudo-polynomial time. When RCSP is used as a sub-problem in CG, arc costs (i.e., objective function coefficients) are updated using new values of dual variables at each CG iteration. Stages 1 and 2 are implemented just once; only stage 3 is invoked to optimize the resulting SPP at each iteration. The size of the expanded graph grows pseudo-polynomially; in the practical applications we have observed the size of expanded graphs has allowed stage 3 to be solved very quickly. Zhu and Wilhelm (2005a) describe preliminary benchmarking tests and Zhu and Wilhelm (2005b) relate comprehensive tests, which demonstrate that this TSA is suitable for iterative reoptimization in the context of column generation, especially when resource limitations are tight as they can be expect to be in practical applications. Zhu and Wilhelm (2005c) extended this TSA with the goal of enhancing its efficacy. They proposed a reoptimizing algorithm (ROA) to facilitate reoptimization at each CG iteration. Their computational results showed that, on average, ROA is faster than OA if only several (<5) arcs are assigned new costs at an iteration. They also proposed a method for dealing with fixed arcs (MDFA) (i.e., corresponding decision variables are fixed to 0 or 1 by the branching rule) in CG. Their computational results show that MDFA is effective in the CG environment in which RCSP must be solved repeatedly while subject to a set of fixed arcs at a node in the branch-and-bound (B&B) search tree. This paper presents extensions of TSA for solving several variations of the RCSP. Section 2 introduces the problems we study and reviews relevant literature. Then, this paper proposes extensions of TSA to solve RCSP with equality constraints (RCSPE) (Section 3); SPPRW and a generalized resource-constrained SPP that has both resource-limitations and resource-window constraints (SPRCRW) (Section 4); resource-constrained k-SPP (RCkSP) (Section 5); and multiple-resource, multiple-choice knapsack problem (MMCKP) (Section 6). Section 7 demonstrates an application of MMCKP to design an international assembly system under
566
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
Table 1 Acronyms Acronyms for problem types KP MCKP MMCKP NAFTAP RCkSP RCSP RCSPE SPP SPPRW SPPTW SPRCRW VRPTW
Knapsack problem Multiple-choice knapsack problem Multiple-resource, multiple-choice knapsack problem Design an international assembly system under NAFTA Resource-constrained k-SPP Resource-constrained SPP (with upper bound resource limitation(s)) Resource-constrained SPP (with equality resource limitation(s)) (unconstrained) shortest path problem SPP with a window for each of several types of resources at each node SPP with a window for one type of resource (e.g., time) at each node SPP with both resource-limitation and resource-window constraints Vehicle routing problem with time windows
Acronyms for algorithms and procedures EP EP-E MDFA OA PPA PPA-A PPA-G PPA-M ROA TSA
Expansion procedure Expansion procedure specialized for RCSPE Method for dealing with fixed arcs Optimizing algorithm Preprocessing algorithm for RCSP, RCSPE, RCkSP, and MMCKP Preprocessing algorithm for SPPRW Preprocessing algorithm for SPRCRW Preprocessing algorithm for MMCKP Reoptimizing algorithm Three-stage approach
Acronyms for cumulative resource requirements CRR CRR-r
Cumulative resource requirement Cumulative requirement of rth resource
Table 2 Stages 1, 2, and 3 algorithms in a TSA for each problem type Stages
Problem types RCSP
Stage 1: (preprocessing) Stage 2: (setup) (dealing with fixed arcs)
a
PPA EP
Stage 3: (iterative solution) a b
a
RCSPE
SPPRW SPPTW
SPRCRW
RCkSP
PPA
PPA-A
PPA-G
PPA
EP-E
MMCKP MCKP, KP PPA-M EP
a
MDFAb or traditional method OAa or ROAb
Unconstrained k-SPP algorithm
OAa or ROAb
Zhu and Wilhelm (2005a). Zhu and Wilhelm (2005c).
the North American Free Trade Agreement (NAFTA). Finally, Section 8 gives conclusions and discusses opportunities for future research. This paper presents a solution algorithm or procedure for each stage in a TSA to solve each of problem type; we designate each using an acronym. For reader convenience, Table 1 summarizes these acronyms: the first section addresses problem types; the second, algorithms and procedures; and the third, resource requirements. To save space, common acronyms (B&B, B&P, CG, DP, MIP, and NAFTA) are not listed. Table 2 summarizes the algorithms we describe for each stage of the TSA that we propose for each problem type. 2. Literature review RCSP and RCSPE find application in many areas such as scheduling, communications, and transportation. It is well known that RCSP is NP-hard (Handler and Zang, 1980; Jaffe, 1984). Dumitrescu and Boland (2003) indicated that RCSP is NP-hard even if the graph is acyclic, only one resource constraint is involved, and all
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
567
resource requirements and costs are positive. This result has motivated development of heuristics (e.g., Hassin, 1992; Lorenz and Raz, 2001; Avella et al., 2002), but we focus on optimizing algorithms because they are effective in many practical cases. Beasley and Christofides (1989) proposed a method based on Lagrangian relaxation to optimize RCSP with resource constraints that impose lower and upper bounds on consumption. By setting both bounds to a same value, their method can be used to solve RCSPE. They used subgradient optimization to (approximately) solve the Lagrangian dual to get lower and upper bounds for the optimal solution of RCSPE and closed the duality gap using B&B. Mehlhorn and Ziegelmann (2000) proposed a hull approach for solving the linear-relaxation of RCSP and closed the gap between lower and upper bounds in one of three ways: by enumerating paths as in Hassin (1992), by applying a kth-shortest path algorithm as in Handler and Zang (1980), or by enumerating paths in order of increasing reduced cost in combination with pruning unpromising paths. Other methods involve dynamic programming (DP) (e.g., Joksch, 1966; Aneja et al., 1983; Dumitrescu and Boland, 2001, 2003). Dumitrescu and Boland (2003) investigated variants of the label-setting algorithm of Desrochers and Soumis (1988b) for both SRCSP and MRCSP, focusing on computational results. For SRCSP, they presented an improved version of the label-setting algorithm and an exact algorithm based on the weight-scaling method of Dumitrescu and Boland (2001), which scales weights (i.e., resource requirements) before applying the labelsetting algorithm. Their algorithms integrate information obtained from preprocessing. They also presented an extension that integrates information from applying Lagrangian relaxation. Most recently, Boland et al. (2006) proposed a label-setting algorithm for solving the elementary RCSP (no node can be visited more than once on a path). These methods do not exploit the context of CG; each must be implemented in its entirety to reoptimize at each iteration. Wilhelm et al. (2003) reported a pseudo-polynomial, two-phase approach for solving RCSPE on an acyclic graph in which each arc is incident from a node in one level to a node in the next level. Their first phase constructs an expanded graph on which RCSPE can be solved as (unconstrained) SPP and their second phase uses a shortest-path algorithm to prescribe an optimal path through the expanded graph. The expanded graph need be constructed only once, and each sub-problem is solved as a SPP on each CG iteration in an attempt to generate an improving column. The SPP with time windows (SPPTW), or, more generally, resource windows (SPPRW), is another problem that is amenable to a TSA. SPPRW is to find a shortest path from a start node to an end node such that the CRR of each resource at each node on the shortest path lies within a given window associated with that node. Resource windows can be classified into two types: ‘‘hard’’ or ‘‘soft’’. In the former case, a path is feasible only if the resource-window constraint(s) at each of its nodes is(are) satisfied (Kolen et al., 1987; Russell, 1995; Bramel and Simchi Levi, 1996). In the latter case, a cost penalty is incurred if the CRR at a node is outside its resource window (Balakrishnan, 1993) (the penalty is typically assumed to be a linear function of the amount of violation). For example, if the resource is time, as in a vehicle routing problem with time windows (VRPTW), a hard window requires a vehicle that arrives at a customer before the lower bound of the window to wait to serve the customer within the window and does not permit a vehicle to arrive later than the upper bound of the window. Because hard resource windows have been most extensively investigated, this paper considers SPPRW with hard resource windows. An SPPTW with the requirement that the shortest path be elementary is NP-hard in the strong sense (Dror, 1994); an SPPTW that does not invoke this elementary path requirement is NP-hard in the ordinary sense and can be solved in pseudo-polynomial time (Garey and Johnson, 1979). The solution is guaranteed to be elementary if arc costs are nonnegative and resource constraints have only upper bounds, or if the graph is acyclic (Beasley and Christofides, 1989). SPPTW appears as a sub-problem in CG in an important class of applications that has been successfully used to solve well-known problems like vehicle routing (Desrochers et al., 1992, 1988, 1984). Most methods for SPPRW involve DP algorithms. For SPPTW, Desrochers and Soumis (1988b) presented a pseudo-polynomial time, generalized permanent-labeling algorithm. Desrochers and Soumis (1988a) proposed a primal-dual reoptimization approach for SPPTW and Desrochers (1988) generalized it to solve SPPRW (with multiple resources). Recently, Feillet et al. (2004) studied SPPRW, restricting the optimal path to be elementary, even if negative cost cycles exist. SPRCRW is a generalization of RCSP and SPPRW that involves both resource-limitation and resourcewindow constraints. A typical application of SPRCRW is as the sub-problem in CG to solve VRPTW in
568
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
which multiple resource constraints represent vehicle capacities and time windows. Desrochers et al. (1992) solved VRPTW using a branch and price (B&P) approach for the integer set-partitioning formulation of VRPTW. They solved the linear relaxation of this set-partitioning formulation by CG, generating feasible columns by solving SPRCRW using DP. This paper describes a TSA to solve SPRCRW as a sub-problem in CG (e.g., to solve VRPTW). RCkSP is NP-hard since it contains RCSP (k = 1) as a special case. A k-SPP is to find the first k shortest paths. Efficient algorithms for k-SPPs were proposed by Yen (1971) and Eppstein (1998) for general graphs; Katoh et al. (1982) for undirected graphs; and Lawler (1976) for acyclic paths. Eppstein (1998) gives a recent survey on k-SPP; RCkSP has not been studied. MMCKP is a 0-1 knapsack problem (KP) with disjoint multiple-resource, multiple-choice constraints and MCKP (i.e., multiple-choice KP) is a MMCKP with just one resource. MCKP is NP-hard as it contains KP as a special case, but it can be solved in pseudo-polynomial time using DP (Dudzinski and Walukiewicz, 1987). MCKP has a wide range of applications: capital budgeting (Nauss, 1978); determining which components should be linked in series in order to maximize fault tolerance (Sinha and Zoltners, 1979); and menu planning (Sinha and Zoltners, 1979). MCKP often arises as a sub-problem in CG (e.g., Wilhelm et al., 2005; Fisher, 1981). Algorithms available to solve MCKPs are typically based on B&B (Nauss, 1978; Sinha and Zoltners, 1979) and DP (Dudzinski and Walukiewicz, 1987; Pisinger, 1994). Research on MMCKP is sparse. This paper describes a TSA, which opens a new and effective way to solve MMCKP (MCKP and KP) as a sub-problem in CG. In the context of CG, a sub-problem must be solved a number of times. Each time, its objective function coefficients are updated with the current (optimal) values of dual variables in the master problem, while the resource constraints do not change. When one of the problems this paper addresses (e.g., RCSP, RCSPE, SPPRW, SPRCRW, RCkSP, and MMCKP) is used as a sub-problem in CG, most algorithms available must be employed from scratch to reoptimize at each CG iteration. This motivates the development of methods that are explicitly designed to reoptimize effectively in CG, while systematically addressing relevant issues such as preprocessing, reoptimization, and fixed arcs. The TSA provides a unified structure for solving each of these problems as a sub-problem in the context of CG. 3. RCSPE RCSPE is to find a shortest path from start node v1 to end node vn in G with resource-limitation constraints (1c), which require the total consumption of resource r on the shortest v1 vn path to be exactly equal to resource limitation Tr. Let xij be a binary decision variable associated with arc (i, j) 2 A. xij = 1 if arc (i, j) is on the shortest path, 0 otherwise. RCSPE can be formulated as mixed integer linear program (MIP) (}1): X cij xij ; ð1aÞ RCSPE ð}1Þ: min z ¼ ði;jÞ2A
s:t:
8 > < 1; xij xjk ¼ 0; > : ði;jÞ2A ðj;kÞ2A 1; X uijr xij ¼ T r 8r 2 R; X
X
j ¼ 1; j ¼ 2; . . . ; n 1;
ð1bÞ
j ¼ n; ð1cÞ
ði;jÞ2A
xij 2 f0; 1g
8ði; jÞ 2 A:
Changing equality resource constraint (1c) to an upper bound resource constraint X uijr xij 6 T r 8r 2 R;
ð1dÞ
ð1c0 Þ
ði;jÞ2A
we obtain RCSP: (1a), (1b), (1c 0 ), and (1d). The TSA for RCSP can be extended to solve RCSPE by changing the way EP calculates the CRR vector in stage 2. We use EP-E to denote this extension of EP and describe it using skj 2 V E to denote the kth node in GE
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
569
that is associated with node vj 2 VR; ykj ¼ ðy kj1 ; . . . ; y kjjRj Þ, a CRR vector at skj ; and Yj, the set of CRR vectors ykj such that tjr 6 y kjr 6 tjr , r 2 R, where ½tjr ; tjr is the window for resource r at node vj, which is established by PPA. As it expands GR to form GE, EP processes vj 2 VR in order of increasing index, calculating ykj , associating a node skj with each unique vector ykj 2 Y j , and connecting shi to skj if ykj is calculated from yhi . EP-E extends EP except by calculating CRR vectors in a unique manner. L L Begin by defining RLjr ¼ fd 1jr ; . . . ; d jrjr g, an ordered set with jRLjrj = Ljr, where d 1jr ¼ tjr , d jrjr ¼ tjr and ‘1 ‘ d jr < d jr , for ‘ = 2, . . . , Ljr. For each vj 2 VR in decreasing order, calculate RLjr according to: RLnr ¼ fT r g;
8r 2 R;
RLjr ¼ fd jr jd jr ¼ d ir ujir ; tjr 6 d jr 6 tjr ; d ir 2 RLir ; ði; jÞ 2 AR g [ ftjr ; tjr g;
8r 2 R:
ð2Þ
By way of (2), each element in RLjr represents an amount of resource r 2 R left over (i.e., available) for v1 vj paths that may be used to continue with a vj vn path so that the total consumption of resource r on the resulting v1 vn path equals Tr and is restricted to lie within window ½tjr ; tjr . Expression (2) starts from the end node vn, initializing RLnr = {Tr} (i.e., the amount of resource r left over for v1 vn paths is Tr). In decreasing order of vj 2 VR, expression (2) calculates RLjr, determining RL1r for each node, ending with the start node v1. EP-E and EP both determine RLjr using (2). Next, initialize Y 1 ¼ fy11 ¼ 0g. For each vj 2 VRn{v1} in increasing order, EP-E calculates y kjr in two steps. First compute gkjr ¼ y hir þ uijr ;
for yhi 2 Y i ; ði; jÞ 2 AR and r 2 R:
ð3Þ
Second, the value of gkjr is adjusted using RLjr to define y kjr according to y kjr ¼ d ‘jr if gkjr ¼ d ‘jr for some ‘ ¼ 1; . . . ; Ljr ; þ1 otherwise:
ð4Þ
Expression (4) indicates that it is possible to augment a v1 vj path to form a v1 vn path so that cumulative requirement of resource r (CRR-r) at node vn equals Tr only if this v1 vj path has a CRR-r equal to one of the values in RLjr; otherwise y kjr ¼ þ1 and this v1 vj path will not be considered further by EP-E. EP-E extends EP by specializing (3) and (4) to calculate each CRR vector. Then, by using EP-E in stage 2 in place of EP, a TSA for RCSPE results (see Table 2). For RCSP, the resource windows established by PPA imply that any v1 vj path with CRR-r larger than tjr is resource infeasible (i.e., cannot be on a feasible v1 vn path); if CRR-r along a v1 vj path is lower than t jr, then CRR-r for that path is increased to tjr. For RCSPE, the resource windows established by PPA imply that any v1 vj path with CRR-r larger than tjr or less than tjr is resource infeasible. Because the resource constraints in RCSP give upper bound restrictions and the resource constraints in RCSPE are equalities, a CRR-r value at vj that is either too small or too large implies resource infeasibility. 4. SPPRW and SPRCRW SPPRW is to find a shortest v1 vn path in G with resource-window constraints. Let tjr be a decision variable representing CRR-r for r 2 R at vj 2 V and tj ¼ ðtj1 ; . . . ; tjjRj Þ be a CRR vector at vj 2 V. Let ½tjr ; tjr be a hard resource window for r 2 R at vj. Then, SPPRW can be formulated as MIP (}2): X SPPRW ð}2Þ: min z ¼ cij xij ; ð5aÞ ði;jÞ2A
s:t:
Constraints ð1bÞ; ð1dÞ; and tjr 6 tjr 6 tjr j ¼ 1; . . . n; 8r 2 R; tir þ uijr tjr 6 Mð1 xij Þ
8ði; jÞ 2 A; r 2 R;
ð5bÞ ð5cÞ
in which M is a large number. Constraints (5b) and (5c) require that CRR-r at vj lie within a hard resource window at each vj 2 V. We now describe a TSA for solving SPPRW. Because the resource windows that are given initially for each node may or may not be tight, we use stage 1 to tighten initial windows. Desrochers et al. (1992) introduced a
570
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
Fig. 1. PPA-A: stage 1 preprocessing algorithm for SPPRW.
technique for tightening time windows (i.e., with only one type of resource) that has been widely used and proven to be effective in practice. We generalize this technique to deal with multiple types of resource windows as shown by Fig. 1, which details our stage 1 preprocessing algorithm PPA-A for SPPRW. At the end of PPAA, it is likely that some arcs can be deleted. We refer the reader to Desrochers et al. (1992) for an illustration of their technique. Stages 2 and 3 of our TSA for SPPRW are exactly the same as stages 2 and 3 of our TSA for RCSP. This approach can be generalized to SPRCRW (i.e., SPP with both resource-limitation and resource-window constraints), which can be formulated as MIP (}3): X SPRCRW ð}3Þ: min z ¼ cij xij ; ð6aÞ ði;jÞ2A
s:t:
Constraints ð1bÞ; ð1dÞ; and X uijr xij 6 T r 8r 2 R1 ;
ð6bÞ
ði;jÞ2A
tjr 6 tjr 6 tjr
j ¼ 1; . . . n; 8r 2 R2 ;
tir þ uijr tjr 6 Mð1 xij Þ 8ði; jÞ 2 A; 8r 2 R2 :
ð6cÞ ð6dÞ
Here, R1 is the set of resources limited by constraint (6b) and R2 is the set of resources constrained by resource ¼ R1 \ R2 involves both resource windows (6c) and (6d), so that R ¼ R1 [ R2 . In SPRCRW, resource r 2 R 6¼ ;. If R2 ¼ ;, (}3) reduces to (}1), RCSP; limitation (6b) and resource window constraints (6c) and (6d) if R and if R1 ¼ ;, (}3) reduces to (}2), SPPRW. A typical application of model (}3) is as a sub-problem in CG to solve VRPTW, in which multiple resource constraints represent vehicle capacity constraints (6b) and timewindow constraints (6c) and (6d). Fig. 2 details our stage 1 preprocessing algorithm PPA-G, which is designed specifically for a TSA to solve SPRCRW. In Fig. 2, PPA-G transforms resource-limitation constraint (6b) to resource-window constraints (6c) and (then (6d) using PPA and then tightens the resource windows, if possible, using PPA-A (see Fig. 1). For r 2 R r 2 R1 ), step 1 transforms constraint (6b) to a resource-window at each node; then step 2 takes the union of the resource window from step 1 and the resource window that is given initially in model (}3) for each node;
Fig. 2. PPA-G: stage 1 preprocessing algorithm for SPRCRW.
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
571
and; finally, step 3 applies PPA-A to tighten the resulting resource windows. Stages 2 and 3 of our TSA for SPRCRW are exactly the same as stages 2 and 3 of our TSA for RCSP. 5. RCkSP Recall that stages 1 and 2 relax resource constraints by setting up expanded graph GE. Stages 1 and 2 of our TSA for RCkSP, which involve PPA and EP, respectively (see Table 2), can transform RCkSP into an unconstrained k-SPP on expanded graph GE. Thus, incorporating a classical unconstrained k-SPP algorithm (e.g., Lawler’s algorithm, Lawler, 1976) in stage 3, the resulting TSA can solve RCkSP on an acyclic graph and is suitable for solving RCkSP repeatedly as in CG. 6. MMCKP This section shows that MMCKP can be recast as RCSP on an acyclic graph and describes a new stage 1 algorithm. We begin by presenting a formal description of MMCKP. Given j sets H1, . . . , Hj of items to pack in a knapsack with multiple capacity constraints (i.e., resource limitations) T 1 ; . . . ; T jRj for which each item j 2 Hi has profit cij and resource requirement vector uij ¼ fuij1 ; . . . ; uijjRj g, MMCKP is to choose exactly one item from each set so that the total profit is maximized without exceeding resource limitations Tr, r 2 R. We formulate MMCKP as model (}4): j X X MMCKP ð}4Þ: max z ¼ cij xij ; ð7aÞ s:t:
X
i¼1 j2H i
xij ¼ 1
i ¼ 1; . . . ; j;
ð7bÞ
j2H i j X X
uijr xij 6 T r
8r 2 R;
ð7cÞ
i¼1 j2H i
xij 2 f0; 1g i ¼ 1; . . . ; j; j 2 H i :
ð7dÞ
All uijr and Tr coefficients are positive, discrete values; coefficients cij are unrestricted; and P sets H1, . . . , Hj are j mutually disjoint with jHij = hi. The total number of items from which to choose is m ¼ i¼1 hi . If jRj ¼ 1, MMCKP reduces to the classical MCKP, which is defined as a 0-1 knapsack problem (KP) with additional, disjoint multiple-choice constraints (7b). MMCKP can be represented as RCSP on an acyclic graph. Fig. 3(a) uses an acyclic multigraph (with parallel arcs connecting certain pairs of nodes) to formulate MMCKP with (parallel) arc (vi, vi+1)j representing item j in set Hi. Such a special multigraph has node set V with jVj = j + 1; each arc has tail at vi and head at vi+1, i = 1, . . . , j. Arc (vi, vi+1)j appears in the graph if and only if there is a corresponding decision variable xij in MMCKP. To avoid parallel arcs, we construct an equivalent simple graph G (i.e., with no parallel arcs) by adding node v_ ij in the middle of arc (vi, vi+1)j, as shown in Fig. 3(b). We call such a node as an arc-node and denote the set of all arc-nodes as V_ . The node set of graph G becomes V [ V_ with jV [ V_ j ¼ m þ j þ 1. G comprises two types of arcs: type 1 arcs, denoted by eij , point from node vi to arc-node v_ ij ; type 2 arcs, denoted by e_ ij , point from arc-node v_ ij to node vi+1 for i = 1, . . . , j. Each type 1 arc is paired with a type 2 arc. The arc set
Fig. 3. Representation of MMCKP on an acyclic graph: (a) multigraph; (b) MMCKP-graph.
572
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
of G is denoted A with jAj = 2m. Such a special graph GðV þ V_ ; AÞ is called an MMCKP-graph because MMCKP as defined in model (}4) is equivalent to RCSP on this graph with resource requirement vector and cost associated with eij ð_eij Þ as uij and cij (as the zero vector and zero). The equivalent RCSP is to find a shortest path from v1 to vj+1 with respect to cij so that the total requirement of resource r observes its limit Tr for r 2 R. The optimal value of MMCKP is the negative of the minimum cost for RCSP. The following propositions underlie a TSA to solve RCSP on the MMCKP-graph. Define a bottleneck arc (node) as one that cannot be on a feasible v1 vn path. A bottleneck arc (i, j) is an arc that renders the resource available at vj insufficient to continue a path to the end node. A bottleneck node has no arcs incident to it (neither incoming nor outgoing arcs) that can be on a feasible path to the end node. Thus, all arcs incident to a bottleneck node are bottleneck arcs. We now introduce additional notation we use to relate our propositions. Let f jr ðf jr Þ denote the minimum (maximum) requirement for resource r 2 R for traversing from v1 to vj over all v1 vj paths. Similarly, let ajr ðajr Þ denote the corresponding minimum (maximum) amount of resource r required for traversing from vj to vn and let bjr ¼ T r ajr ðbjr ¼ T r ajr Þ denote the corresponding minimum (maximum) amount of resource r that would be left over (i.e., available) for a v1 vj path. Proposition 1. Three conditions are equivalent: (a) arc eij is a bottleneck; (b) arc e_ ij is a bottleneck; and (c) arcnode v_ ij in V_ is a bottleneck. Proof. If arc eij , arc e_ ij , or arc-node v_ ij is a bottleneck and is deleted, then the other two are not on any v1 vj+1 path. Thus, they all must be bottlenecks. h By Proposition 1, it is sufficient to check whether arc eij is a bottleneck without checking arc e_ ij and arcnode v_ ij because eij is a bottleneck arc if and only if arc e_ ij and arc-node v_ ij are bottlenecks. Once arc eij is judged to be a bottleneck, bottleneck arcs eij and e_ ij and arc-node v_ ij can all be deleted from the graph. Proposition 3 establishes the criteria to determine whether arc eij is a bottleneck or not. Let H 0i be a subset of Hi that is formed by removing item j P from Hi if arcs eij and e_ ij arePbottlenecks and j j have, thus, been deleted from the MMCKP-graph. Let M r ¼ i¼1 minj2H 0i fuijr g and M r ¼ i¼1 maxj2H 0i fuijr g for r 2 R. Define Dr ¼ M r T r and Dr = Tr Mr. Proposition 2. For the MMCKP-graph, bir ¼ f ir Dr and bir ¼ f ir þ Dr for vi 2 V ; r 2 R. Proof. By induction in decreasing order of i. When i = j + 1, f jþ1;r ¼ M r ; fj+1,r = Mr, so the statement is true. Suppose the statement is true for i > k and consider the case for which i = k; then, (i) f kþ1;r ¼ f kr þ maxj2H 0k fukjr g; (ii) f kþ1;r ¼ f kr þ minj2H 0k fukjr g; (iii) bkr ¼ bkþ1;r minj2H 0k fukjr g; and (iv) bkr ¼ bkþ1;r maxj2H 0k fukjr g. By (i) and (iv), we have bkþ1;r ¼ f kþ1;r þ ðbkr f kr Þ and by induction bkr f kr ¼ Dr . Thus, bkþ1;r ¼ f kþ1;r Dr . Similarly, (ii) and (iii) can be used to show that bkþ1;r ¼ f kþ1;r þ Dr . This completes the proof. h Proposition 3. If uijr > minj2H 0i fuijr g þ Dr for some r 2 R, then arc eij is a bottleneck arc. Proof. Arc eij is a bottleneck if f ir þ uijr > bjr for some r 2 R because the minimum amount of resource r required to traverse from start node v1 via vi to reach vj is larger than the maximum amount of resource r left over by vj vn paths for v1 vj paths. By Proposition 2, bjr ¼ f jr þ Dr ; thus, arc eij is a bottleneck if uijr > f jr f ir þ Dr ¼ minj2H 0i fuijr g þ Dr . h Proposition 4. If Dr 6 0, the rth knapsack capacity constraint is redundant; and if Dr 6 0; 8r 2 R, the optimal solution is xiji ¼ 1 for ji ¼ arg minj2H 0i fcij g; 8i ¼ 1; . . . ; j. Proof. Dr ¼ M r T r 6 0 implies M r 6 T r . This proves first part. If all knapsack capacity constraints are redundant, then the optimal solution will be xiji ¼ 1 for ji ¼ arg minj2H 0i fcij g, i = 1, . . . , j, by the greedy argument. h
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
573
Fig. 4. Stage 2 algorithm PPA-M for the MMCKP-graph.
Proposition 5. If any node in V of the MMCKP-graph is a bottleneck, then MMCKP is infeasible relative to knapsack capacity constraints (7c). Proof. If any node in V of the MMCKP-graph is a bottleneck, then there is no connected path from v1 to vj+1. h Corollary 1. For MCKP (i.e., jRj ¼ 1), if Tr P Mr, r 2 R, then arc eij0 with j0 ¼ arg minj2H i fuijr g cannot be a bottleneck. Proof. If arc eij0 is a bottleneck, then node vi is a bottleneck and, by Proposition 5, MCKP is infeasible with respect to resource limitations, contradicting the fact that Tr P Mr, r 2 R. h Based on Propositions 1–5, Fig. 4 details a specialized version of PPA (PPA-M) for use in stage 1 of a TSA to solve MMCKP as a RCSP on the MMCKP-graph. Step 2(i) assures that the problem is feasible; otherwise, the algorithm stops at step 2. Step 2(i) also checks and removes redundant resource constraints using Proposition 4 and, if all resource constraints are judged to be redundant during the iterative process (steps 2 and 3), the greedy algorithm prescribes the optimal solution in step 3. Step 2(ii) uses Proposition 3 to detect each arc that is a bottleneck relative to each resource; according to Propositions 1 and 2, we need not test for bottleneck nodes. Step 3 iterates step 2 until no further reduction is possible. After deleting bottleneck arcs, steps 4(i-ii) use Proposition 2 to further simplify the calculations of bir and fir for nodes in V. Step 4(iii) calculates f ij ;r , bij ;r , f ij ;r , bij ;r , tij ;r and tij ;r for nodes in V_ easily because the in- and out-degrees of each node in V_ are 1. After stage 1, EP can be applied in stage 2 and either OA or ROA can be used in stage 3, forming a TSA for MMCKP that is suitable for solving MMCKP as RCSP on an MMCKP-graph repeatedly as in CG. 7. An application of MMCKP In this section, we apply our TSA for MMCKP, demonstrating its performance by a numerical example. In the example, MMCKP is a sub-problem that must be solved repeatedly in a B&P approach to solve a problem
574
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
we call NAFTAP, which prescribes a strategic design of an assembly system and its supporting supply chain in the international business environment under NAFTA. The strategic design problem is to prescribe a set of facilities, including their locations, technologies, and capacities, as well as strategic aspects of its supporting supply chain, selecting suppliers; locating distribution centers; planning transportation modes; and allocating target levels (i.e., amounts) for production, assembly, and distribution (Wilhelm et al., 2005). The objective is to maximize after-tax profits. Our previous paper (Wilhelm et al., 2005) presented a comprehensive MIP that models this complex international design problem. It deals with multiple time periods, multiple (end) products each with a bill-of-materials that has multiple echelons, and multiple countries but focuses on the relationship between the US and Mexico that was established by NAFTA. It also incorporates generic international business issues, such as border crossing costs, transfer prices, exchange rates, local content rules, safe harbor rules, etc. We refer the reader to Wilhelm et al. (2005) for details. The NAFTAP model was crafted for a B& P approach; decomposition results in a set of mutually independent sub-problems, one for each end product pe 2 PE (PE is a set of end products) (SP(e)), which prescribes a system design for end product pe by prescribing a subset of alternative facilities. We use the term ‘‘component’’ to indicate a raw material, an in-process-part, an end product, or an end product in the distribution subsystem and the term ‘‘process’’ to indicate outsourcing, production, assembly, or stocking operations. Correspondingly, we use the term ‘‘alternative facility’’ to indicate each possible combination of location, technology, and capacity that can perform a process (i.e., supplier, manufacturing, subassembly, assembly, or distribution). Thus, we represent supplier, production, assembly, and distribution decisions using a common terminology. Let Pe be the set of components required to assemble and distribute end product pe 2 PE and Fp be the set of alternative facilities that can process component p. For end product pe 2 PE, SP(e) involves only binary decision variables y epf for p 2 Pe and f 2 Fp. y epf equals 1 if facility f 2 Fp is open for processing p 2 Pe, otherwise 0. With this notation, SP(e) can be formulated as follows: XX e 1 NAFTAP SPðeÞ: min Z SP ¼ wpf y epf ; ð8aÞ e s:t:
X
p2P e f 2F p
y epf
¼1
8 raw-material p 2 P e ;
ð8bÞ
f 2F p
X
y epf 6 1
8 non raw-material p 2 P e ;
ð8cÞ
f 2F p
XX
GOpf y epf 6 Le ;
ð8dÞ
p2P e f 2F p
y epf 2 f0; 1g
8p 2 P e ;
f 2 F p:
ð8eÞ
The objective function (8a) minimizes the total reduced cost associated with decision variables y epf , where wepf denotes the reduced cost associated with y epf . Equality (8b) assures that a solution prescribes exactly one supplier to provide each raw material. Inequality (8c) assures that a solution prescribes at least one facility (distribution center) to manufacture each component (store the end product), allowing facility flexibility (e.g., one facility can process several components and one component may be processed in several facilities except for raw materials, each of which must be provided by one supplier selected from alternatives input to the model). Inequality (8d) invokes a budget (resource) limitation, assuring that the total fixed cost associated with prescribing facilities for end product pe does not exceed an investment budget of Le dollars. Parameter GOpf represents the fixed cost of opening f 2 Fp to process p 2 Pe. This budget limitation is appropriate because each pe may be viewed as a profit center that serves a unique market segment. Constraints (8e) give binary restrictions. Note that, if we can transform inequality (8c) to an equality, SP(e) becomes MCKP as defined in Section 6 and can be solved as a RCSP on an MMCKP-graph using our TSA. For this purpose, if p represents a component that is not a raw material, let Sp be a set of all nonempty subsets of Fp for p 2 Pe so that each element s 2 Sp represents a set of facilities that can process p. If p represents a raw material, let Sp be a set of singleton subsets of Fp so that each element s 2 Sp represents a set comprising exact one supplier selected to supply p. Then, jS p j ¼ 2jF p j 1 if p is not a raw material and jSpj = jFpj if p is a raw material. Define binary variable y eps
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
575
(for p 2 PeP and s 2 Sp) to equal P1 if aO set of facilities s 2 Sp is prescribed to process component p, otherwise 0. O ps ¼ Let w w and G ¼ ps f 2s ps f 2s Gpf for s 2 Sp. Then, SP(e) can be reformulated as SP ðeÞ, which is MCKP and can be solved as RCSP on an MMCKP-graph using our TSA: XX e y e ; w SPðeÞ: min Z SP1 ¼ ð9aÞ e ps ps s:t:
X
p2P e s2S p
y eps ¼ 1
8p 2 P e
ð9bÞ
s2S
Xp X
GOps y eps 6 p2P e s2S p y eps 2 f0; 1g 8p
Le
ð9cÞ
2 P e; s 2 Sp:
ð9dÞ
Except for the different notation, model SP ðeÞ is the same as MMCKP model (}4) with jRj ¼ 1. Construct ps with the appropriate arc ing the MMCKP-graph and associating the resource requirement GOps and cost w (the one that has its tail at node p and represents s 2 Sp) as illustrated in Section 6, SP ðeÞ (i.e., SP(e)) can be solved as RCSP on the specified MMCKP-graph using our TSA. The optimal solution prescribes an optimal system design for end product pe that observes the budget limit. Consider a numerical example that involves two end products (e1 and e2) representing two types of laptop computers. These two end products have the same bill-of-materials and each end product has 12 raw materials (each with 3 alternative facilities, i.e., suppliers), 3 in-process-parts (each with 4 alternative facilities), one end product (with 4 alternatives facilities), and, in addition, four alternative distribution centers, entailing 56 binary variables y epf , equivalently, 111 binary variables y eps . The planning horizon comprises three time periods and we specify cost parameters and demands randomly. We programmed all algorithms in C/C++ programming language and conducted all experiments on a 3.2 GHz Pentium IV PC with 512 Mb of RAM. B&P solves this laptop example in 26.938 seconds, exploring 27 B&B nodes. It uses our TSA for MMCKP to solve SP(e1) and SP(e2) each 274 times and the total run time to obtain these 548 solutions is only 1.538 seconds. The total run time of stages 1 and 2 on SP(e1) and SP(e2) is 0.016 seconds. The resulting expanded graph has 24(24) nodes and 58(58) arcs for each of SP(e1) and SP(e2). The performance of our TSA for MMCKP in solving sub-problems is quite satisfactory. More computational results will be provided in a later paper. This example demonstrates that the TSA can be used to effectively solve sub-problems in B&P. 8. Conclusions and future work This paper contributes by presenting a unified TSA to solve each of five related, resource constrained shortest path problems (i.e., RCSPE, SPPRW, SPRCRW, RCkSP, and MMCKP). We design each approach specifically for use in solving sub-problem(s) in a CG context; we implement stages 1 (preprocessing) and 2 (setup) just once and stage 3 (iterative solution) each iteration with the goal of identifying the most improving column. Stages 1 and 2 pose an instance that stage 3 can solve rapidly. We present a stage 1 preprocessing algorithm that renders SPPRW and SPRCRW amenable to this approach. Our stage 2 setup algorithm yields a specialization for RCSPE on an acyclic graph. We incorporate a classical unconstrained k-SPP algorithm in stage 3 to solve RCkSP on an acyclic graph. We deal with MMCKP by recasting it as RCSP on an MMCKP-graph. In each case, stage 3 is designed to solve an instance effectively, tailoring the approach for use in generating columns repeatedly in a CG context. Future research can extend the three-stage approach to solve other types of sub-problems in the CG context. Our work continues along those lines, in addition to conducting more extensive computational tests. Acknowledgements We are indebted to an anonymous referee whose comments allowed us to strengthen an earlier version of this paper. This material is based upon work supported by the Texas Advanced Technology Program under Grant No. 000512-0248-2001 and by the National Science Foundation on Grant No. DMI-0217265.
576
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
References Aneja, Y.P., Aggarwal, V., Nair, K.P.K., 1983. Shortest chain subject to side constraints. Networks 13, 295–302. Avella, P., Boccia, M., Sforza, A., 2002. A penalty function heuristic for the resource constrained shortest path problem. European Journal of Operational Research 142, 221–230. Balakrishnan, N., 1993. Simple heuristics for the vehicle routing problem with soft time windows. Journal of Operational Research Society 44, 279–287. Beasley, J.E., Christofides, N., 1989. An algorithm for the resource constrained shortest path problem. Networks 19, 379–394. Boland, N., Dethridge, J., Dumitrescu, I., 2006. Accelerated label setting algorithms for the elementary resource constrained shortest path problem. Operations Research Letters 34 (1), 58–68. Bramel, J., Simchi Levi, D., 1996. Probabilistic analyses and practical algorithms for the vehicle routing problem with time windows. Operations Research 44, 501–509. Desrochers, M., 1988. An algorithm for the shortest path problem with resource constraints. Technical Report G-88-27, GEARD, Ecole des H.E.C., Montreal, Canada. Desrochers, M., Soumis, F., 1988a. A reoptimization algorithm for the shortest path problem with time windows. European Journal of Operational Research 35, 242–254. Desrochers, M., Soumis, F., 1988b. A generalized permanent labeling algorithm for the shortest path problem with time windows. INFOR 26, 193–214. Desrochers, M., Soumis, F., 1989. A column generation approach to the urban transit crew scheduling problem. Transportation Science 23, 1–13. Desrochers, M., Desrosiers, J., Solomon, M., 1992. A new optimization algorithm for the vehicle routing problem with time windows. Operations Research 40 (2), 342–354. Desrosiers, J., Soumis, F., Desrochers, M., 1984. Routing with time windows by column generation. Networks 14, 545–565. Desrosiers, J., Dumas, Y., Soumis, F., 1988. The multiple vehicle dial-a-ride problem. In: Computer-Aided Transit SchedulingLecture Notes in Economics and Mathematical System, vol. 308. Springer, Berlin, pp. 15–27. Dror, M., 1994. Note on the complexity of the shortest path models for column generation in VRPTW. Operations Research 42 (5), 977– 978. Dudzinski, K., Walukiewicz, S., 1987. Exact methods for knapsack problem and its generalizations. European Journal of Operational Research 28, 3–21. Dumitrescu, I., Boland, N., 2001. Algorithm for the weight constrained shortest path problem. International Transactions in Operational Research 8, 15–30. Dumitrescu, I., Boland, N., 2003. Improved preprocessing, labeling and scaling algorithms for the weight-constrained shortest path problem. Networks 42 (3), 135–153. Eppstein, D., 1998. Finding the k shortest paths. SIAM Journal on Computing 28 (2), 652–673. Feillet, D., Dejax, P., Gendreau, M., Gueguen, C., 2004. An exact algorithm for the elementary shortest path problem with resource constraints: Application to some vehicle routing problems. Networks 44 (3), 216–229. Fisher, M.L., 1981. The Lagrangian relaxation method for solving integer programming problems. Management Science 27, 1–18. Gallo, G., Pallottino, S., 1986. Shortest path methods: A unifying approach. Mathematical Programming Study 26, 38–64. Garey, M.R., Johnson, D.S., 1979. Computers and Intractability: A Guide to the Theory of NP-Completeness. Freeman, San Francisco. Handler, G.Y., Zang, I., 1980. A dual algorithm for the constrained shortest path problem. Networks 10, 293–310. Hassin, R., 1992. Approximation schemas for the restricted shortest path problems. Mathematics of Operations Research 17 (1), 36–42. Holmberg, K., Yuan, D., 2003. A multicommodity network-flow problem with side constraints on paths solved by column generation. Informs Journal of Computing 15 (1), 42–57. Jaffe, J.M., 1984. Algorithms for finding paths with multiple constraints. Networks 14, 95–116. Joksch, H.C., 1966. The shortest route problem with constraints. Journal of Mathematical Analysis and Applications 14, 191–197. Katoh, N., Ibaraki, T., Mine, H., 1982. An efficient algorithm for k shortest simple paths. Networks 12, 411–427. Kolen, A., Rinnooy Kan, A., Trienekens, H., 1987. Vehicle routing with time windows. Operations Research 35, 266–273. Lawler, E.L., 1976. Combinatorial Optimization: Networks and Matroids. Holt, Rinehart & Winston, New York. Lorenz, D.H., Raz, D., 2001. A simple efficient approximation scheme for the restricted shortest path problem. Operations Research Letters 28, 213–219. Mehlhorn, K., Ziegelmann, M., 2000. Resource Constrained shortest paths. In: Paterson, M. (Ed.), 7th Annual European Symposium on Algorithms (ESA 2000), LNCS, vol. 1879. Springer-Verlag, Berlin Heidelberg, pp. 326–337. Mingozzi, A., Boschetti, M.A., Ricciardelli, S., Bianco, L., 1999. A set partitioning approach to the crew scheduling problem. Operations Research 47 (6), 873–888. Nauss, R.M., 1978. The 0-1 knapsack problem with multiple choice constraint. European Journal of Operational Research 2, 125–131. Pisinger, D., 1994. A minimal algorithm for the multiple-choice knapsack problem. Technical Report 94/25, DIKU, University of Copenhagen, Denmark. Russell, R.A., 1995. Hybrid heuristics for the vehicle-routing problem with time windows. Transportation Sciences 29, 156–166. Sinha, A., Zoltners, A.A., 1979. The multiple-choice knapsack problem. Operations Research 27, 503–515. Wilhelm, W.E., Damodaran, P., Li, J., 2003. Prescribing the content and timing of product upgrades. IIE Transactions 35 (7), 647–664. Wilhelm, W.E., Liang, D., Rao, B., Warrier, D., Zhu, X., Bulusu, S., 2005. Design of International Assembly Systems and their supply chains under NAFTA. Transportation Research E 41, 467–493.
X. Zhu, W.E. Wilhelm / European Journal of Operational Research 183 (2007) 564–577
577
Wilhelm, W.E., Choudhry, N.D., Damodaran, P., 2006a. A model to optimize placement operations on dual-head placement machines. Discrete Optimization, in press. Wilhelm, W.E., Arambula, I., Choudhry, N.N., 2006b. A model to optimize picking operations on dual-head placement machines. IEEE Transactions on Automation Science and Engineering 3 (1), 1–15. Yen, J.Y., 1971. Finding the k shortest loopless paths in a network. Management Science 17, 712–716. Zhu, X., Wilhelm, E.W., 2005a. A three-stage approach for the resource-constrained shortest-path problem on an acyclic graph. Working paper, Industrial Engineering Department, Texas A&M University. Zhu, X., Wilhelm, E.W., 2005b. Computational evaluation on a three-stage approach for the resource-constrained shortest-path problem on an acyclic graph. Working paper, Industrial Engineering Department, Texas A&M University. Zhu, X., Wilhelm, E.W., 2005c. Implementation of a three-stage approach for the resource-constrained shortest-path problem in column generation and branch-and-bound. Working paper, Industrial Engineering Department, Texas A&M University.