computers & operations researchumsl.edu/~lihait/files/safetystockplacement-aug-2011.pdfnew model...

12
New model and heuristics for safety stock placement in general acyclic supply chain networks Haitao Li a,n , Dali Jiang b a Department of Logistics and Operations Management, College of Business Administration, University of MissouriSt. Louis, One University Blvd, St. Louis, MO 63121, USA b Research Institute of Logistics, Chongqing Logistics Engineering University, Chongqing 400016, P.R. China article info Keywords: Safety stock placement Inventory positioning General acyclic network Project scheduling Constraint programming (CP) Genetic algorithm (GA) abstract We model the safety stock placement problem in general acyclic supply chain networks as a project scheduling problem, for which the constraint programming (CP) techniques are both effective and efficient in finding high quality solutions. We further integrate CP with a genetic algorithm (GA), which improves the CP solution quality significantly. The performance of our hybrid CP–GA algorithm is evaluated on randomly generated test instances. CP–GA is able to find optimal solutions to small problems in fractions of a second, and near optimal solutions of about 5% optimality gap to medium size problems in several minutes on average. & 2011 Elsevier Ltd. All rights reserved. 1. Introduction Supply chains are complex networks integrating suppliers/ven- dors, manufacturers, distributors and retailers to enable physical entities (raw materials, parts, components, semi-finished and finished products) to be produced and distributed at the right quantities, to the right locations and at the right time. Demand uncertainty requires safety stock to be kept through the supply chain network to meet customers’ order and delivery needs. The problem of determining the location and level of safety stock to keep in the supply chain is known as the inventory positioning or safety stock placement problem (cf. [1, 2]). Unlike the traditional strategic supply chain network design problems, the safety stock placement problem addresses the tactical level design for an existing physical supply chain, by optimally balancing system-wide inventory cost and service level. Optimizing the supply chain system-wide safety stock is crucial in today’s complex, competitive and volatile market environment. Since a modern supply chain rarely involves a single isolated firm, the focus here is not limited to coordinating internal materials and inventory management in the traditional material requirement planning (MRP) setting, but also involves external suppliers, vendors, logistics providers and manufacturers ([3], p.1). With the rapid growth of business-to-business (B2B) e-commerce facilitated by the electronic data interchange (EDI) technology and availability of point of sales (POS) data, the ability to redefine inter-firm relation- ships and coordinate activities among supply chain players becomes a key for supply chain success. Such external coordination calls for collaboration among supply chain players, so that decisions can be made in a centralized way. Sometimes the centralized decision- making paradigm is natural. For instance, the logistics of the U.S. Army’s spare parts [4] and the U.S. Navy’s depot level repairable (DLR) line items [5] require inventory positioning decisions to be made in a centralized fashion to support military missions. In the business environment, however, external collaboration and coordi- nation need a well-defined incentive and often comes at a price. Examples of real world practices include the continuous replenish- ment process (CRP), vendor managed inventory (VMI) [6] and supply chain partnership [7]. In the safety stock placement problem addressed in this paper, we assume that supply chain players fully collaborate such that centralized safety stock placement decision can be made. The issues of creating incentive, negotiating and managing such collaborative relationship go beyond the scope of this paper. Safety stock placement is also related to determining the push– pull boundary or implementing the delay differentiation (postpone- ment) strategy in multi-echelon supply chains [8]. An isolated manufacturer often operates either make-to-stock (MTS) or make- to-order (MTO). In an MTS process, components and finished goods are manufactured based on long-term forecasting and planning, and held as inventories to meet the anticipated future demand. MTS is sometimes referred to as the push strategy. In an MTO process, manufacturing is only triggered by a realized order. MTO is often referred to as the pull strategy. In the setting of an integrated supply chain, firms do not have to implement a pure push or pull strategy. By properly coordinating the activities of supply chain players, firms may benefit from storing inventories at certain intermediate stages in the network, giving rise to the hybrid MTS/MTO or push–pull strategy. We refer to [9] for an application of configuring a laptop PC supply chain. Contents lists available at ScienceDirect journal homepage: www.elsevier.com/locate/caor Computers & Operations Research 0305-0548/$ - see front matter & 2011 Elsevier Ltd. All rights reserved. doi:10.1016/j.cor.2011.08.001 n Corresponding author. Tel.: þ1 314 516 5890. E-mail address: [email protected] (H. Li). Please cite this article as: Li H, Jiang D. New model and heuristics for safety stock placement in general acyclic supply chain networks. Computers and Operations Research (2011), doi:10.1016/j.cor.2011.08.001 Computers & Operations Research ] (]]]]) ]]]]]]

Upload: others

Post on 29-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

Computers & Operations Research ] (]]]]) ]]]–]]]

Contents lists available at ScienceDirect

Computers & Operations Research

0305-05

doi:10.1

n Corr

E-m

PleasCom

journal homepage: www.elsevier.com/locate/caor

New model and heuristics for safety stock placement in general acyclicsupply chain networks

Haitao Li a,n, Dali Jiang b

a Department of Logistics and Operations Management, College of Business Administration, University of Missouri—St. Louis, One University Blvd, St. Louis, MO 63121, USAb Research Institute of Logistics, Chongqing Logistics Engineering University, Chongqing 400016, P.R. China

a r t i c l e i n f o

Keywords:

Safety stock placement

Inventory positioning

General acyclic network

Project scheduling

Constraint programming (CP)

Genetic algorithm (GA)

48/$ - see front matter & 2011 Elsevier Ltd. A

016/j.cor.2011.08.001

esponding author. Tel.: þ1 314 516 5890.

ail address: [email protected] (H. Li).

e cite this article as: Li H, Jiang D. Neputers and Operations Research (20

a b s t r a c t

We model the safety stock placement problem in general acyclic supply chain networks as a project

scheduling problem, for which the constraint programming (CP) techniques are both effective and

efficient in finding high quality solutions. We further integrate CP with a genetic algorithm (GA), which

improves the CP solution quality significantly. The performance of our hybrid CP–GA algorithm is

evaluated on randomly generated test instances. CP–GA is able to find optimal solutions to small

problems in fractions of a second, and near optimal solutions of about 5% optimality gap to medium

size problems in several minutes on average.

& 2011 Elsevier Ltd. All rights reserved.

1. Introduction

Supply chains are complex networks integrating suppliers/ven-dors, manufacturers, distributors and retailers to enable physicalentities (raw materials, parts, components, semi-finished and finishedproducts) to be produced and distributed at the right quantities, tothe right locations and at the right time. Demand uncertainty requiressafety stock to be kept through the supply chain network to meetcustomers’ order and delivery needs. The problem of determining thelocation and level of safety stock to keep in the supply chain is knownas the inventory positioning or safety stock placement problem (cf.[1,2]). Unlike the traditional strategic supply chain network designproblems, the safety stock placement problem addresses the tactical

level design for an existing physical supply chain, by optimallybalancing system-wide inventory cost and service level.

Optimizing the supply chain system-wide safety stock is crucialin today’s complex, competitive and volatile market environment.Since a modern supply chain rarely involves a single isolated firm,the focus here is not limited to coordinating internal materials andinventory management in the traditional material requirementplanning (MRP) setting, but also involves external suppliers, vendors,logistics providers and manufacturers ([3], p.1). With the rapidgrowth of business-to-business (B2B) e-commerce facilitated bythe electronic data interchange (EDI) technology and availability ofpoint of sales (POS) data, the ability to redefine inter-firm relation-ships and coordinate activities among supply chain players becomesa key for supply chain success. Such external coordination calls for

ll rights reserved.

w model and heuristics for11), doi:10.1016/j.cor.2011.

collaboration among supply chain players, so that decisions can bemade in a centralized way. Sometimes the centralized decision-making paradigm is natural. For instance, the logistics of the U.S.Army’s spare parts [4] and the U.S. Navy’s depot level repairable(DLR) line items [5] require inventory positioning decisions to bemade in a centralized fashion to support military missions. In thebusiness environment, however, external collaboration and coordi-nation need a well-defined incentive and often comes at a price.Examples of real world practices include the continuous replenish-ment process (CRP), vendor managed inventory (VMI) [6] and supplychain partnership [7]. In the safety stock placement problemaddressed in this paper, we assume that supply chain players fullycollaborate such that centralized safety stock placement decision canbe made. The issues of creating incentive, negotiating and managingsuch collaborative relationship go beyond the scope of this paper.

Safety stock placement is also related to determining the push–pull boundary or implementing the delay differentiation (postpone-ment) strategy in multi-echelon supply chains [8]. An isolatedmanufacturer often operates either make-to-stock (MTS) or make-to-order (MTO). In an MTS process, components and finished goodsare manufactured based on long-term forecasting and planning, andheld as inventories to meet the anticipated future demand. MTS issometimes referred to as the push strategy. In an MTO process,manufacturing is only triggered by a realized order. MTO is oftenreferred to as the pull strategy. In the setting of an integrated supplychain, firms do not have to implement a pure push or pull strategy.By properly coordinating the activities of supply chain players, firmsmay benefit from storing inventories at certain intermediate stagesin the network, giving rise to the hybrid MTS/MTO or push–pullstrategy. We refer to [9] for an application of configuring a laptop PCsupply chain.

safety stock placement in general acyclic supply chain networks.08.001

Page 2: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]]2

We consider a supply chain network consisting of functions,e.g., parts, components or processes, and the demand dependencyamong them as characterized by a bill-of-materials (BOM). Weassume that the network is acyclic, i.e. no directed cycle (‘‘feed-back’’) exists. Each sink node faces a Gaussian normal-distributedcustomer demand to be satisfied. Such external demand will bepropagated backward along the supply chain through the demanddependencies in BOM. Each upstream function will quote aguaranteed delivery time, called outbound service time, to satisfythe demand of its immediately downstream function(s). Since thepromised delivery time for the finished goods is often smallerthan the total supply chain cycle time, certain amount of safetystock needs to be kept at each function to maintain certain servicelevel. We assume that each function operates under a periodicreview policy. Accordingly, the level of safety stock for thecorresponding function is determined by its net replenishmenttime. In addition, there might be capacity limit for storage ofsafety stock that cannot be exceeded at each function. The safetystock placement problem addressed in this paper seeks to findoptimal inbound and outbound service times of each function inthe supply chain to minimize the system-wide safety stock cost.

Complexity of the safety stock placement problem is directlydriven by structure of the supply chain. Fig. 1 illustrates threedifferent supply chain structures. Among them, the serial struc-ture in Fig. 1(a) considers only sequential dependencies amongsupply chain functions, resulting a linear/serial structure.Fig. 1(b) illustrates the spanning tree structure. Clearly, thespanning tree structure is able to model more complex interac-tions among supply chain functions than the serial structure. Forinstance, for every unit of component/part assembled at manu-facturer C, 2 units from supplier A and 1 unit from supplier B arerequired. At the same time, manufacturer C cannot start itsinbound service until its demand for all its immediate predeces-sors, A and B, has been satisfied. Through such demand- and time-dependencies, the decision at one location will be propagated toother functions in the chain. For instance, by promising a promptdelivery lead time to its customers, a car dealer will not onlypotentially carry more safety stock himself, but would also like torequire an early receipt of the order from his warehouse, whichcreates pressure for the warehouse to carry more inventory as

AC

B

2

1

Fig. 1. Supply chain networks with different structures: (a) serial network, (b)

spanning tree network, (c) general acyclic network, (d) general acyclic network

with arbitrary arcs.

Please cite this article as: Li H, Jiang D. New model and heuristics forComputers and Operations Research (2011), doi:10.1016/j.cor.2011.

well. Two special cases of the spanning tree structure include theassembly (convergent) network where each node has at most oneoutgoing arc, and the distribution (divergent) network whereeach node has at most one incoming arc. The structure of real-lifesupply chains often goes beyond the complexity of a spanningtree, i.e. the number of arcs in the network will often exceed thenumber of functions minus one. These supply chains are char-acterized by a general acyclic network as depicted in Fig. 1(c). Moregeneral cases include those where arcs may exist between anarbitrary pair of supply chain functions as shown in Fig. 1(d).

It is well-known that the safety stock placement problem innetworks with special structure such as the serial and spanning treestructures can be efficiently solved by dynamic programming (cf.[10,11]). The one with the general acyclic structure involvesminimizing a concave function, and it is well-known that thegeneral problem of minimizing a concave function is NP-hard [12].

Networks with general structure have been a focal subject in theresearch field of project scheduling. Since the development of thewell-known critical path method (CPM; [13]) and program evalua-tion and review technique (PERT; [14]) in the early sixties, theproject scheduling field has devised numerous efficient solutionmethods for scheduling activities in large-size general project net-works (cf. [15,16]). This has motivated us to resort to the modelingand solution techniques in project scheduling to address the safetystock placement problem in general acyclic supply chain networks.

In our modeling framework, an acyclic supply chain network istransformed into a project scheduling network, with each supplychain function being modeled as a project activity. We show thattime-related dependencies among inbound and outbound servicetimes can be modeled as temporal relationships among projectactivities. Then the problem of finding optimal inbound and out-bound service times becomes equivalent to the problem of sche-duling project activities’ starting times. Such a transformationenables us to borrow a large set of well-developed algorithms inthe project scheduling field (cf. [15]) to tackle the safety stockplacement problem. In this paper, we devise a constraint program-ming (CP; [17]) based algorithm to solve the transformed problem.We embed heuristic branching rules exploiting the schedulingcharacteristics of the problem to enhance CP’s performance. Oneadvantage of the CP algorithm is its ability to generate high-qualityfeasible solutions fast. When used as initial solutions, these feasiblesolutions obtained by CP can be improved by a number of localsearch [18] and metaheuristic methodologies [19]. We design ahybrid framework that integrates CP and genetic algorithm (GA),called CP–GA, to enhance solution quality. Computational resultsshow that our CP–GA algorithm is able to find optimal solutions tosmall instances of the problems within fractions of a second, andobtain near optimal solutions to medium size problems in reason-able computational time.

The remainder of our paper is organized as follows. Section 2reviews the related literature. We present the project-scheduling-based modeling framework and CP model in Section 3. Section 4describes the CP solution procedures including constraint propa-gation and various search strategies devised in this study. Thehybrid CP–GA algorithm is presented in Section 5. The computa-tional results are provided in Section 6. Section 7 draws conclu-sions and suggests future research directions.

2. Related literature

The safety stock problem with simple supply chain structure,such as the serial and spanning tree structures, has been extensivelystudied. For a serial supply chain, an ‘‘all or nothing’’ strategy issuggested by [20]. The effect of stochastic lead time on inventorypositioning is studied in [21]. Inventory positioning in multiple

safety stock placement in general acyclic supply chain networks.08.001

Page 3: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

P1

P2

P3

P4

P5

C1

C2

C3

C4

SA1

SA2

SA3

A1

A2

D1

D2

D3

Procurement Manufacturing Subassembly Assembly Retailers

Note: P – Part, C – Component, SA – Subassembly, A – Assembly, D – Demand.

Fig. 2. An example of general acyclic supply chain network.

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]] 3

product supply chains with serial structure has been studied in[22]. A serial structure network can be extended to an assemblynetwork where each node has at most one outgoing arc, or adistribution network where each node has at most one incomingarc. Both are special cases of the spanning tree structure [23].Efficient dynamic programming algorithms have been proposed forserial, divergent (distribution), or convergent (assembly) networks([10,24]). A pseudo-polynomial dynamic programming algorithmwas proposed by [11] for a spanning tree supply chain that consistsof a mixture of assembly and distribution sub-networks.

Recent research efforts have focused on the more challengingand realistic general acyclic supply chain networks. It is shownthat the inventory positioning problem in a general supply chainnetwork is NP-hard [25]. Exact methods such as enumeration andbranch-and-bound [25] are often not able to handle real-worldproblems due to prohibitive amount of computational time forlarge instances. A piecewise linear approximation algorithm wasdevised by [1] to iteratively generate linear pieces to approximatethe concave objective function. Some redundant constraints areformulated to generate strong flow cover cuts. Two heuristicsbased on linear approximation and truncated piecewise MIPformulation (with only two linear pieces) were developed in [2],which are shown to be efficient for obtaining near optimalsolutions: the iterative LP method can efficiently solve problemswith size as large as 8000 nodes and 32,000 arcs.

Project scheduling based approaches have been proposed forvarious manufacturing operations such as order selection, man-ufacturing planning and scheduling in the make-to-order envir-onment [26]. A project scheduling network has been used tomodel a generalized supply chain to minimize the supply chaincycle time [27].

By transforming a supply chain network into a project sche-duling network, a large set of well-developed project schedulingalgorithms can be applied. Effectively and efficiently solvingcomplex scheduling problems can often be achieved by constraintprogramming (CP) based methods. CP originated in the artificiallyintelligence (AI) area for solving constraint satisfaction problem(CSP). We refer to [17] for a general introduction to CP. Witheffective domain reduction (also called constraint propagation)algorithms [28], and efficient search procedures [29], CP basedalgorithms have been successfully applied for solving a variety ofNP-hard scheduling problems (cf. [30]).

For large size scheduling problems, however, CP alone is often notefficient due to the burden of searching the entire solutions space(although reduced through constraint propagation). There exist anumber of integration schemes to take advantage of the comple-mentary strengths of CP and other solution methods. CP has beenused as a preprocessing procedure to reduce the size of projectscheduling problems with resource constraints [31]. CP can also beintegrated with mixed-integer linear programming (MILP) in theframeworks of Benders decomposition [32], Lagrangian relaxation[33] or column generation [34]. Schemes for integrating CP and localsearch (LS) have also been proposed [35]. We refer to [36,37] and[38] for surveys on CP-based hybrid algorithms.

3. Problem description

We now formally describe the safety stock placement problemin general acyclic supply chain networks, then present its CPformulation.

3.1. Problem description

Consider a general acyclic supply chain network G(N,A), withthe node set N representing the set of supply chain functions, and

Please cite this article as: Li H, Jiang D. New model and heuristics forComputers and Operations Research (2011), doi:10.1016/j.cor.2011.

the arc set A denoting the set of demand dependencies andtemporal relationships among functions. A function can be a part,component or a production/assembly process as characterized bythe BOM associated with the product (or family of products). Atypical example of general acyclic supply chain network isillustrated in Fig. 2, which consists of 5 stages (echelons) and 17supply chain functions. It is a ‘‘general’’ network in which itincludes the spanning tree network as a special case (i.e. thenumber of arcs exceeds the number of nodes minus one), andalso allows that arbitrary arcs exist among supply chainfunctions. For instance, Part-1 purchased at the procurementstage is required for manufacturing Component-1 at the manu-facturing stage, as well as assembling finished product A1 at theassembly stage. The network in Fig. 2 is ‘‘acyclic’’ as no directedcycle exists.

An arc (i,j)AA specifies the demand dependencies betweenfunctions i and j. For instance, one unit of Component-1 mayrequire 2 units of Part-1 and 1 unit of Part-2. An arc (i,j) alsospecifies the temporal (time-related) relationships between func-tion i and j. We assume that the downstream function j cannotstart its inbound service time until its upstream (predecessor)function i has been delivered (i’s outbound service has beenfulfilled). Following [1] and [2], each function j is assumed tohave a constant lead time Tj and a safety stock holding cost rate hj

per item per time unit. There is a capacity limit of Cj time periodsof safety stock for each function j. The set D of end products at thedemand stage are assumed to face stochastic external demandsbounded by a non-decreasing concave function, which is neededto establish a meaningful upper bound on demand over varyinghorizon for each end product. We refer to [11] for detailedjustifications for this bounded demand assumption. When theexternal demand is normally distributed ðm,s2Þ and i.i.d., thedemand bound can be expressed as tmþks

ffiffiffitp

, where t is thenet replenishment time, and k is the z-value associated certainservice level. Then the safety stock takes the form ks

ffiffiffitp

and isproportional to s

ffiffiffitp

, which is commonly used in the literature (cf.[1–3]). In our example, the set D includes three different retailers

safety stock placement in general acyclic supply chain networks.08.001

Page 4: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

Function-1

SI S

T

Function-2

SI S

T

Supply Chain Functions

Time

dummy activity

real activity

net replenishment time

Fig. 3. A Gantt Chart illustrating the project-scheduling-based modeling frame-

work for the safety stock placement problem.

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]]4

fD1,D2,D3g. Finished products have to be delivered to themwithin some customer-specified deadline dj on lead time. Thesafety stock placement problem is to find optimal inbound andoutbound service times of each supply chain function, thus thecorresponding optimal safety stock levels at each function, thatminimize the system-wide inventory holding cost of the entiresupply chain network.

Following, we define decision variable Sj as the guaranteedoutbound service time that each function j promises to itsdownstream functions, and SIj as the maximum inbound replen-ishment lead time for function j, i.e. SIjZmax{Si9i:(i,j)AA}, whichis also the upper bound on the difference between the guaranteedservice delivery time Sj and the lead time Tj at j, i.e. SIjZSj�Tj.The mathematical programming formulation of the generalcapacitated safety stock placement problem can be written as

minX

jAN

hjFjðSIjþTj�SjÞ ð1Þ

s:t: Sj�SIjrTj,8jAN ð2Þ

SIj�SiZ0,8ði,jÞAA ð3Þ

Sjrdj,8jAD ð4Þ

SIjþTj�SjrCj, 8jAN ð5Þ

Sj,SIjAZþ ,8jAN ð6Þ

The objective function (1) minimizes the total safety stock costthroughout the entire supply chain, where Fj(U) denotes the levelof safety stock at j in terms of days of demand as a function of netreplenishment lead time, and is assumed to concave and non-decreasing. Constraint (2) enforces that the net replenishmentlead time SIjþTj�Sj of each function j must be non-negative.Constraint (3) specifies the precedence relationship between apair of functions (i,j)AA, i.e. the inbound service time of down-stream function j must be no less than the outbound service timeof upstream function i. Constraint (4) ensures finished productsare delivered to customers within the deadline on lead time.Constraint (5) satisfies the capacity constraint, i.e. the net replen-ishment time of function j cannot exceed Cj. When the lead time islong and/or deadline is tight, but the available capacity is small, aproblem instance might be infeasible. Following [9] and [11], werequire that both Sj and SIj be integer, which is in line with thefundamental periodic review policy assumed for each j. We referto [9] for detailed justifications on the rationale of this integralityrequirement. Note that the integrality constraints make ourmodel more restrictive than the formulation in [1] and [2],although integer solutions can often be guaranteed as long asall the input data are integers, given the intrinsic pure network

structure of the problem [1].The safety stock problem described by (1)–(6) is a separable

concave minimization problem, which is well-known to be NP-

hard [12]. Instead of relying on the above nonlinear programmingformulation, our approach transforms the addressed safety stockplacement problem into a project scheduling problem, andutilizes constraint programming (CP) based methods to solve it.The CP formulation is presented next.

3.2. Constraint programming formulation

Our project-scheduling-based framework for the safety stockplacement problem models the entire supply chain as a project.For each supply chain function jAN, we define a real activity a[j]representing the execution of function j, and a dummy activity b½j�

representing the outbound service of j. For illustration purpose,we use the CP constructs available in ILOG OPL Studio [39] and

Please cite this article as: Li H, Jiang D. New model and heuristics forComputers and Operations Research (2011), doi:10.1016/j.cor.2011.

ILOG CP Optimizer [40] to describe the CP formulation. a[j] andb[j] can be declared as below (with bold words being the key-words in OPL and CP Optimizer):

Activity a½j in N�ðTjÞ ð7Þ

Activity b½j in N�ð0Þ ð8Þ

The value in parenthesis specifies the duration of an activity,i.e. the lead time Tj for a real activity a[j], and 0 for a dummyactivity b[j].

Such a modeling framework is depicted by the Gantt Chart inFig. 3. Consider a pair of directly connected functions Function—1and Function—2. Each function is associated with a real activity

representing the actual execution of the function (represented bya rectangle in the chart) and a dummy activity denoting thepromised outbound service time (represented by a triangle inthe chart). The dummy activity of each function has to start before

the end of the corresponding real activity to ensure a non-negativenet replenishment time. The length of net replenishment time isrepresented by a grayed rectangle in the chart. For instance, thenet replenishment time of Function—1 equals the differencebetween the end of the corresponding real activity and the start

of the dummy activity, i.e. SI1þT1�S1. At the same time, thedownstream Function—2 cannot start before the start of thedummy activity of the upstream Function—1. Such a time-dependency is represented by a solid arrow in the chart. The goalis to find feasible starting times of all real and dummy activitiessatisfying the temporal constraints, such that the total inventorycost expressed as a nonlinear function of these starting times isminimized.

Based on the above modeling framework, we now present theCP formulation.

3.2.1. Non-negative net replenishment time

To ensure non-negative net replenishment time for eachsupply chain function jAN, the associated dummy activity b[j]must start before the end of real activity a[j]:

b½j�:startsBeforeEndða½j�Þ8jAN ð9Þ

Constraint (9) is equivalent to Constraint (2).

3.2.2. Precedence relationships

For every pair of arc (i,j)AA, the real activity a[j] associatedwith function j must not start until the start of the dummyactivity b[i] associated with function i:

a½j� startsAfterStart ðb½i�Þ8ði,jÞAA ð10Þ

Constraint (10) is equivalent to Constraint (3).

safety stock placement in general acyclic supply chain networks.08.001

Page 5: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]] 5

3.2.3. Guaranteed customer delivery lead time

For each finished product jAD, the associated dummy activityb[j] must start before the customer-specified deadline dj ondelivery lead time:

b½j� startsBefore ðd½j�Þ 8jAD ð11Þ

Constraint (11) is equivalent to Constraint (4).

3.2.4. Capacity constraints

In our CP formulation, the capacity constraint (5) becomes

b½j� startsAfterStart ða½j�,Tj�CjÞ, 8jAN ð12Þ

where Tj�Cj is a minimum time-lag between the start of dummyactivity b[j] and the start of real activity a[j] associated withsupply chain function j.

3.2.5. Objective function

Using CP constructs, the objective function (1) can be writtenas

minX

jAN

hjFjða½j�:startþTj�b½j�:startÞ ð13Þ

where a[j].start and b[j].start denote the starting time of realactivity a[j] and dummy activity b[j], respectively.

4. CP algorithm

This section describes the CP algorithms to solve the safetystock placement problem. A CP algorithm consists of two mainsolving techniques: constraint propagation and search. Constraintpropagation is a problem reduction technique that transformsproblems into equivalent problems, which are easier to solve. Itmodifies the domains of all variables in a constraint given thechange of one of the variables in that constraint. We refer to [41]for theoretical background of constraint propagation and defini-tions of different consistency concepts. A search procedure isneeded to explore the remaining solution space, as problemreduction through constraint propagation alone is often NP-hard.

4.1. Constraint propagation

Two types of constraint propagation are implemented in ourCP algorithm: I. the initial constraint propagation to reduce thesolution domain before the search starts; II. constraint propaga-tion during the search.

We use temporal analysis in project scheduling to deduce thetime windows of both real and dummy activities, i.e. the type Iconstraint propagation. Following [16], we solve the followingtwo linear programs (LP):

ES_LP¼

f minX

jAN

ðSIjþSjÞ

s:t: Constraints ð2Þ�ð6Þ

g,

and

LS_LP¼

f maxX

jAN

ðSIjþSjÞ

s:t: Constraints ð2Þ�ð6Þ

g:

ES_LP obtains the earliest start (ES) times of real and dummyactivities, and LS_LP obtains the latest start (LS) times. The timewindow ½ESj,LSj� of real/dummy activity j reduces the domain ofdecision variables.

Please cite this article as: Li H, Jiang D. New model and heuristics forComputers and Operations Research (2011), doi:10.1016/j.cor.2011.

Constraint propagation during the CP search, the type IIconstraint propagation, is based on the fundamental concept ofconsistency, and specifically, the arc-consistency (AC) for binaryconstraints in constraint satisfaction problems (CSP, [17,41]).

Definition 1. A constraint is called binary constraint if it involvesexactly two decision variables.

It is important to note that our entire constraint systemconsists of mainly binary constraints, i.e. (9)–(12), for which ACalgorithms will be especially effective [37]. We now define AC inthe setting of our CP model.

Definition 2. Let X’a denotes an assignment of value a tovariable X. A binary constraint Cinvolving two start times SIx

and SIy of functions x and y, respectively, is arc-consistent, if8tA ½ESx,LSx�, (t0A ½ESy,LSy� such that fSIx’t,SIy’t0g satisfies C, and

8t0A ½ESy,LSy�, (tA ½ESx,LSx� such that fSIx’t,SIy’t0g satisfies C.

In other words, constraint C is said to be arc-consistent, if forevery value t in the time window of x, there always exists a valuet0 in the time window of y satisfying C; at the same time, for everyt0 in the time window of y, there exists a value t in the timewindow of x satisfying C.

Define S as the set of all decision variables, i.e. S ¼ SjAN[SIjAN ,and W as the set of time windows (domains) of variables. Let Cconsist of all binary constraints of (9)–(12). The fundamental ACalgorithm, known as AC-1 [41], for achieving arc-consistency ofthe safety stock placement problem is described below.

Procedure: AC-1 ðS,W,CÞStep 1. Construct constraint list: Q’fCðx,yÞ9Cðx,yÞACg;Step 2. Examine each constraint in the list:

RepeatDomainReduced ’false;For each Cðx,yÞAQ Do

DomainReduced ’ Update_Domain (C(x,y), S,W,C)Until Not DomainReducedReturn ðS,W,CÞ.

Step 1 constructs a list Q of binary constraints, each of whichinvolves two variables x and y, to be checked for consistency. Step2 examines each constraint C(x,y) in the list Q, and removes allvalues, which do not satisfy C(x,y) by calling the sub-procedureUpdate_Domain. If the domain can be reduced, Step 2 is repeated;otherwise, the AC-1 procedure is terminated. The sub-procedureUpdate_Domain is described below:

Sub-Procedure: Update_Domain (C(x,y), S,W,C)Step 1. Initialization: Deleted ’false;Step 2. Check domain of variables:For each tAWx Do

If ) t0AWy such that fx’t,y’t0g satisfies C(x,y), ThenWx’Wx�ftg;Deleted ’true;

saf08.

Return Deleted.

In Step 2 of the sub-procedure, each value t in the current domainWx of x is scanned. If for a specific t, there does not exist a value t0 inthe current domainWy of y, such that the assignment fx’t,y’t0g isfeasible for C(x,y), the value t is removed from Wx. If the maximumnumber of elements in the domains is M, it is straightforward toshow that AC-1 has a time complexity of OðM3

U9S9U9C9Þ. Severalimproved AC algorithms are available in the CSP literature [41]. Inour implementation, the AC-5 arc-consistency algorithm introducedin [42] is used. AC-5 improves over earlier versions of AC algorithm

ety stock placement in general acyclic supply chain networks.001

Page 6: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]]6

by working with a queue that iteratively removes a constraint/valuepair and performs consistency tests, and is significantly moreefficient [43].

4.2. Branching rules

An important component in a CP algorithm is its efficiency tosearch the solution space. We implement two heuristic branchingrules to control the order for selecting variables/values during theCP search.

4.2.1. First-fail rule

The first-fail rule selects the most ‘‘difficult’’ variable first, i.e.the one with the smallest cardinality of domain [41]. It isgenerally believed to result in a smaller search tree, as somevariables can be bounded early during the search. As a genericsearch strategy, however, the first-fail rule does not explore thefeatures of the safety stock placement problem.

4.2.2. Maximal-regret rule

We also implement a branching rule based on the idea ofmaximal-regret principle, which first chooses the variable mostpromising in improving solution quality. The term regret refers tothe difference between what would have been the best decisionin a scenario and what was the actual decision. The key of such abranching rule is that it allows one to exploit the structure of theaddressed problem, which may lead to finding quality solutionsearly during the search. It has been shown that finding goodfeasible solutions early will often reduce the size of CP search tree[41]. The design of maximal-regret rule relies on the followingproperties due to the scheduling characteristics of the safety stockplacement problem.

Property 1. Given a fixed schedule for dummy activities, theobjective function is regular (non-decreasing) w.r.t. the startingtimes of real activities.

Proof. Let tj represent the net replenishment time of supplychain function jAN, i.e. tj¼a[j].startþTj�b[j].start. Since Fj(U) isa non-decreasing function of tj, the objective function f(U) is alsonon-decreasing. Thus tjrt0j implies that f ðtjÞr f ðt0jÞ. Since both Tj

and b[j].start are fixed, f is non-decreasing in a[j].start. Q.E.D.

Property 2. Given a fixed schedule for real activities, the objec-tive function is non-regular (non-increasing) w.r.t. the startingtimes of dummy activities.

Proof. Similar to the proof of Property 1. Q.E.D.

Property 1 and Property 2 imply that an early start time for areal activity, and a late start time for a dummy activity are likelyto produce quality solutions. Such insights lead to the followingcomposite maximal-regret branching rule:

i)

PC

For real activities, we first choose a[j], for which the differencebetween the earliest possible start time and the next earlieststart time is maximal. Then assign the earliest possible starttime to a[j].start.

ii)

For dummy activities, we first choose b[j], for which thedifference between the latest possible start time and the nextlatest start time is maximal. Then assign the latest possiblestart time to b[j].start.

5. Hybrid CP–GA algorithm

Our computational experiences indicate that CP is quiteeffective for small safety stock placement instances. When the

lease cite this article as: Li H, Jiang D. New model and heuristics foromputers and Operations Research (2011), doi:10.1016/j.cor.2011.

problem size increases, it becomes expensive for CP alone tosearch the solution space. This has motivated us to design hybridalgorithms to enhance the quality of CP solutions. Our currentresearch develops a scheme to integrate CP with genetic algo-rithm (GA). GA is a random search technique that mimicsprocesses observed in natural evolution [44]. It combines survivalof the fittest (or best) among solutions with a structured yetrandomized exchange (cf. [45,46]).

In our hybrid CP–GA algorithm, GA is used as a metaheuristicstrategy to improve the CP solutions; on the other hand, CPprovides high-quality solutions, which can construct the initialpopulation or serve as elite individuals in the initial populationfor GA. In addition, CP also provides tighter bounds on thedecisions variables, i.e. the inbound and outbound service times,which can significantly reduce the GA search space. The hybridCP–GA framework is described next, followed by details about theGA components.

5.1. Hybrid CP–GA framework

Our proposed hybrid CP–GA framework is depicted in Fig. 4.The initial population is composed of CP solutions and also by aset of randomly generated feasible solutions. CP solutions areobtained by running the CP algorithm described in Section 4 withcertain limit on the CP search time. We include the best CPsolution together with some intermediate feasible solutionsfound during the CP search. Randomly generated feasible solu-tions are also included to introduce diversity to the initialpopulation. Standard penalty function is employed to penalizeinfeasible solutions. In addition to the initial solutions, CP alsoprovides tight bounds of the decision variables, which cansignificantly reduce the solution space for GA.

Reproduction, crossover and mutation are implemented in aparallel fashion to generate offspring. Crossover enables thealgorithm to extract the best genes from different individualsand recombine them into potentially superior children. Thecrossover operator is applied to each selected pair of parentchromosomes with probability pcross. Mutation adds diversity tothe population, and thereby increases the likelihood of generatingindividuals with better fitness values. The mutation operator isapplied to each individual with probability pmut. Thus the entirenew generation consists of npcross individuals from crossover,npmut individuals from mutation, and the elite individuals fromreproduction. We set Nmax as the maximum number of genera-tions to run. That is, the GA terminates if the number ofgenerations exceeds Nmax.

5.2. Encoding scheme

Each chromosome is encoded as a vector of positive integervalues, which directly represents the decision variables Sj and SIj.Fig. 5 illustrates such encoding scheme, with each chromosomehaving a length of 2n, where n is the number of nodes in thesupply chain network.

5.3. Genetic operators

5.3.1. Parent selection

Parent selection is critical to guide GA toward promisingregions in the solution space. In our implementation, we employthe roulette wheel selection method [47] to keep diversity ofchromosomes.

safety stock placement in general acyclic supply chain networks.08.001

Page 7: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

S S ...... S SI SI …… SI

Fig. 5. Representation of a chromosome.

Constrain Programming

Best CP solution

Generate random feasible solutions

Encoding scheme

Population

Fitness score

Calculate obj.function value

Get fitness

Reproduction Crossover Mutation

Best solution found

T>Nmax

Yes

No

Feasible CP solutions

Initialize populationT:=1

Variablebounds

T:=T+1

Select inheritance

Fig. 4. Sketch of the hybrid CP–GA framework.

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]] 7

5.3.2. Crossover operator

The crossover operator generates new children by combininginformation contained in the chromosomes of the parents so thatnew chromosomes will have the best parts of the parents’ chromo-somes. As the solution space is large, it is crucial to avoid spendingexcessively search effort evaluating infeasible solutions. This hasmotivated us to consider the arithmetic operator as described in [48](p. 246), which is a linear (convex) combination of two feasiblesolutions. When a problem involves only linear constraints, thesolution space is convex, so that an arithmetic operator alwaysyields a feasible solution in the convex search space. It has provedto be effective for many linearly constrained problems [49].

Although our safety stock placement problem involves onlylinear constraints (2)–(5), the solution space is not convex due tothe existence of integer constraint (6), thus the elementaryarithmetic operator is not immediately applicable. We employ amodified arithmetic crossover operator to create offspring x0 fromits parents x1 and x2 in the following way:

x0 ¼ lx1þð1�lÞx2, ð14Þ

where l is a random real number in [0.1]. x0 is rounded down intonearest integer through the floor function Ub c. If x1 and x2 are

Please cite this article as: Li H, Jiang D. New model and heuristics forComputers and Operations Research (2011), doi:10.1016/j.cor.2011.

feasible to the constraint system (2)–(6), x0 is also feasible. Adetailed proof of this property is provided in the Appendix.

This modified arithmetic crossover operator enables us toreduce the number of infeasible solutions to be evaluated,enhancing the efficiency and effectiveness of GA significantly.

5.3.3. Mutation operator

The role of mutation is to provide a small amount of random-ness to explore new solution space and prevent prematureconvergence. In our GA, the mutation operator first randomlyselects one gene of decision variables on a chromosome, and thenreplaces the selected gene value with a random integer within thesolution bound. In order for the child through mutation to befeasible, the following steps are implemented.

Step 1. Select a parent and let child¼parent.Step 2. Set the mutation position: Position¼l1�2n, where l1 isa real random number in [0.1], and 2n is the length ofchromosome.Step 3. Set the value of Positionby following formula:

ChildðPositionÞ ¼ LBðPositionÞþl2ðUBðPositionÞ�LBðPositionÞÞ,

ð15Þ

where l1 is a real random number in [0,1], LB(U) and UB(U)refer to the lower bound and upper bound, respectively, of thevalue of Position obtained by CP.

safety stock placement in general acyclic supply chain networks.08.001

Page 8: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]]8

Step 4. Check if child is feasible. If so, terminate; otherwise, letchild¼parent and go to step 2.

To avoid excessive computational effort to obtain a feasiblechild, the procedure is terminated when reaching a certainnumber of iterations.

10

12

14Instance_1

Instance_2

Instance_3

6. Computational experiments

The CP model and algorithms were implemented in Cþþ usingconstraint programming libraries ILOG CP Optimizer 2.3 [40],which support the implementation of tree search algorithms thatapply constraint propagations at the nodes of the tree [50]. Theimportant features of these CP libraries include the following:(1) embedded constraint propagation algorithm, which is avariant of the AC-5 arc consistency algorithm [42]; (2) supportfor standard backtracking during CP search; (3) Cþþ classes fordefining and implementing CP branching schemes. The GA codewas implemented in MATLAB using the Genetic Algorithm Tool-box [51].

We generate the problem instances in the following way:The underlying general acyclic network is generated using the

project scheduling problem generator called ProGen/Max [52].We generate networks with 10, 20, 40 and 80 nodes. For eachnetwork size, 15 problem instances are randomly generated.

We use the standard functional form FjðXÞ ¼ffiffiffiffiXp

as in theliterature (cf. [1,2,9,11]), where X is the net replenishment time.When demand follows the assumed normal distribution Nðm,s2Þ,the safety stock required to achieve certain service level isproportional to s

ffiffiffiffiXp

.

8

p % Instance_4

Instance_5

4

6Ga

PC

Following [1] and [2], we generate lead time and capacity fromuniform distribution. Specifically, lead time of each supplychain function is generated randomly from U[2,60], andcapacity from U[50,70].

0

2

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

Crossover rate

Fig. 6. Performance of pure GA with different crossover rate.

Fig. 7. Convergence of fitness values for the 11th 80-node instance.

There appear to be three ways to generate hj in the literature:(i) it can be independently generated from a uniform distribu-tion as in [2]; (ii) in the main computational experiments of[1], the holding cost rate hk of a downstream function k isobtained by adding a random number U to the largest holdingcost rate hj of its immediate upstream function j, i.e. hk¼hjþU.This is to reflect the fact that the downstream functions aremore costly due to the value-adding process; (iii) a morerealistic way to model such value-adding process, as in [9], isto calculate hk as the sum of holding cost rate hj of all itsupstream functions, i.e.

hk ¼X

j:ðj,kÞAA

hj ð16Þ

As shown in [1], instances generated through (16) can have aslower convergence rate and lead to a larger LP gap. We use (16)in our experiments to generate hj.

As CP is often able to reach high-quality solutions fast, a timelimit of 60 s is imposed for the pure CP algorithm: both theDefault CP with the first-fail search strategy, and the Max-Reg CPwith the maximal-regret search strategy. The CP search in thehybrid CP–GA algorithm is limited to 5 s. Of course, there is atrade-off between the initial CP search effort and solution quality.Our computational experience has shown that 5 s is usuallysufficient for CP to generate high-quality initial population forGA. In order to evaluate the solution quality of our algorithms, wesolve all problem instances to optimality through the exactpiecewise linear MIP method proposed by [1]. We also compareour algorithms with the Iterative LP heuristic by [2]. Both theexact MIP and Iterative LP methods are implemented with the

lease cite this article as: Li H, Jiang D. New model and heuristics foromputers and Operations Research (2011), doi:10.1016/j.cor.2011.

same stopping criteria as in [1] and [2] using the latest version ofCPLEX 12.1 [53]. All computations were performed on a PentiumIV PC with 3.2 GHz CPU and 1 G RAM.

6.1. Tuning GA Parameters

Our computational experience indicates that, setting the totalnumber of generations Nmax to be 1000 and the population size tobe 300 achieves a good balance between solution quality andcomputational efficiency.

The default parallel reproduction operation in the Matlab GAToolbox is employed for the same pool of population in eachgeneration, such that pcrossþpmutþ#Elite=300¼ 1 [51], where#Elite stands for the number of elite solutions directly kept tothe next generation. In our implementation, we always keep thecurrent best solution, i.e. we set #Elite¼ 1. Fig. 6 shows thesolution quality of pure GA for five selected instances withdifferent value of pcross ranging from 0.1 to 0.9 (with an incrementof 0.1). It appears that a crossover rate of 0.3 leads to bettersolution quality of pure GA. Thus in our computational experi-ments, we fix pcross to be 0.3.

Fig. 7 illustrates the search process of CP–GA on the 11th 80-node instance. The evolution process indicates that it improvesthe CP initial solutions effectively and quickly. Fig. 8 depicts the

safety stock placement in general acyclic supply chain networks.08.001

Page 9: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]] 9

average distance between individuals. It shows that our crossoverand mutation operators are quite effective in keeping the popula-tion diversified during the search.

Fig. 8. Average distance between individuals for the 11th 80-node instance.

Table 1Computational results for the 10-node problem instances.

Iterative LP Defau

Instance # No. Arcs Gap % CPU # Iter Gap %

1 17 0.12 o0.01 3 0

2 17 1.76 o0.01 2 0

3 17 4.05 o0.01 2 0

4 19 1.87 o0.01 2 0

5 21 0.00 o0.01 2 0

6 25 0.00 o0.01 2 0

7 21 0.00 o0.01 2 0

8 15 1.02 o0.01 2 0

9 25 0.00 o0.01 2 0

10 15 2.05 o0.01 3 0

11 25 0.00 o0.01 2 0

12 17 0.00 o0.01 2 0

13 16 1.55 o0.01 2 0

14 21 0.00 o0.01 2 0

15 15 5.83 o0.01 2 0

Average 19 1.22 o0.01 2 0

Table 2Computational results for the 20-node problem instances.

Instance # No. Arcs Iterative LP Default CP

Gap % CPU # Iter Gap % CPU

1 32 5.83 0.02 3 0.00 3.08

2 35 2.20 0.05 3 6.17 41.27

3 36 1.41 0.02 3 0.03 0.45

4 30 0.00 0.06 5 3.47 0.75

5 27 3.13 0.11 4 9.20 0.33

6 50 0.21 0.11 3 0.94 43.14

7 30 0.00 0.03 3 8.00 3.16

8 39 3.01 0.06 3 0.03 1.47

9 24 0.03 0.02 3 10.34 0.97

10 33 10.59 0.08 4 4.28 o0.01

11 28 1.16 0.14 3 2.90 0.69

12 35 2.24 0.02 3 3.17 0.67

13 44 3.17 0.11 3 0.00 0.22

14 43 3.53 0.03 2 0.00 36.72

15 40 8.40 0.08 3 0.01 0.27

Average 35 2.99 0.06 3 3.24 8.88

Please cite this article as: Li H, Jiang D. New model and heuristics forComputers and Operations Research (2011), doi:10.1016/j.cor.2011.

6.2. Computational results

Deviations of solutions found by our algorithm to optimalsolution are reported as the following gap: (Obj�ObjMIP)/ObjMIP,where ObjMIP denotes optimal objective value obtained by theexact MIP method. We also report the CPU time (in seconds) forfinding best solutions. Due to the probabilistic nature of GA, thepure GA and hybrid CP–GA were run five times for each instance.Both the best and average solution quality (in the format of [bestgap, average gap]) and CPU time are reported. Complete compu-tational results are provided in Tables 1–4.

The pure CP algorithm itself performs well for the small 10-node instances. Both the Default CP (using the first-fail rule) andthe Max-Reg CP (using the maximal-regret rule) find optimalsolutions to all fifteen instances. Max-Reg CP is more efficientthan Default CP using only fractions of a second on average. Thepure GA finds quality solutions within 1% gap, but spendssignificantly more computational time. The average gap of theIterative LP method is 1.22%.

For the fifteen 20-node instances, Max-Reg CP has an average gapof 1.70%, which clearly outperforms the Default CP in both solutionquality and computational time. Such better performance is achievedby the maximal-regret rule for the CP tree search, which often findsgood quality solutions early during the search. The hybrid CP–GA

lt CP Max-Reg CP Pure GA

CPU Gap % CPU Gap % CPU

40.55 0 0.28 [0.12, 0.62] 22.61

0.14 0 0.31 [1.30, 2.31] 16.33

0.13 0 0.13 [0.00, 0.82] 40.66

0.06 0 0.05 [0.00, 2.67] 10.64

0.02 0 o 0.01 [0.00, 0.42] 6.203

0.02 0 o 0.01 [0.00, 0.42] 11.66

0.19 0 0.11 [0.00, 0.16] 18.13

0.20 0 1.77 [1.49, 1.76] 25.95

0.00 0 0.03 [0.00, 0.40] 8.438

0.05 0 0.34 [1.07, 2.95] 50.47

0.02 0 0.00 [0.00, 0.42] 11.64

7.38 0 0.45 [0.00, 0.55] 67.2

0.02 0 0.14 [0.66, 1.34] 25.86

0.00 0 o 0.01 [0.00, 0.23] 25.02

0.06 0 0.06 [0.24, 0.83] 19.67

3.26 0 0.24 [0.33, 1.06] 24.03

Max-Reg CP Pure GA CP–GA

Gap % CPU Gap % CPU Gap % CPU

0.77 0.56 [0.00, 0.10] 7.34 [0.00, 0.00] 2.22

1.41 0.11 [1.12, 1.29] 47.72 [1.04, 1.04] 6.00

0.00 0.05 [0.00, 0.00] 2.00 [0.00, 0.00] o0.01

1.46 19.09 [1.33, 1.41] 9.85 [1.33, 1.46] 20.72

0.31 15.42 [0.11, 0.20] 53.64 [0.11, 0.11] o0.01

1.58 0.13 [0.00, 0.01] 10.85 [0.00, 0.03] 1.72

2.33 11.06 [0.44, 1.22] 45.22 [0.44, 0.94] 10.56

0.03 2.53 [0.03, 0.03] 2.00 [0.03, 0.03] o0.01

9.24 58.16 [5.68, 6.61] 49.39 [1.37, 3.31] 45.84

1.47 1.42 [1.46, 1.46] 2.00 [1.46, 1.46] 0.55

0.12 12.66 [0.00, 0.03] 7.45 [0.00, 0.11] 4.80

4.15 o0.01 [3.87, 4.03] 56.16 [3.86, 3.92] 3.86

1.22 0.05 [0.00, 0.31] 37.8 [0.00, 0.82] 3.44

0.33 0.94 [0.00, 0.13] 22.28 [0.00, 0.00] o0.01

1.11 0.00 [0.00, 0.22] 20.03 [0.01, 0.01] 2.02

1.70 8.15 [0.94, 1.14] 24.92 [0.64, 0.88] 6.78

safety stock placement in general acyclic supply chain networks.08.001

Page 10: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

Table 3Computational results for the 40-node problem instances.

Instance # No. Arcs Iterative LP Default CP Max-Reg CP Pure GA CP–GA

Gap % CPU # Iter Gap % CPU Gap % CPU Gap % CPU Gap % CPU

1 75 1.48 0.16 3 0.53 24.06 0.77 60.25 [2.39, 2.90] 315.86 [0.31, 0.70] 23.89

2 84 2.24 0.20 4 1.73 12.77 2.71 0.42 [3.63, 5.67] 290.81 [0.11, 0.34] 44.42

3 89 6.84 0.13 3 18.09 0.02 0.47 1.16 [7.98, 9.56] 160.52 [0.35, 0.43] 7.91

4 70 1.01 0.11 4 3.67 0.02 2.94 0.22 [2.81, 3.86] 428.58 [0.70, 1.40] 32.78

5 85 2.46 0.09 4 5.28 7.44 7.01 22.27 [2.48, 3.48] 376.27 [1.60, 2.93] 38.17

6 70 1.42 0.14 3 1.02 1.72 2.06 0.08 [1.70, 2.17] 489.38 [0.39, 1.43] 37.70

7 77 12.99 0.17 3 15.74 4.23 5.96 19.75 [8.65, 10.52] 373.25 [0.12, 1.75] 47.25

8 49 1.94 0.22 4 5.11 0.00 4.86 56.55 [3.81, 4.42] 267.47 [3.20, 3.51] 80.14

9 58 4.17 0.08 5 5.94 0.02 5.13 49.34 [2.71, 4.86] 453.98 [1.36, 3.68] 51.89

10 64 0.73 0.06 3 3.41 0.09 3.45 0.03 [3.27, 4.41] 450.33 [1.10, 2.01] 46.97

11 89 2.99 0.11 3 3.45 0.02 3.24 0.17 [3.79, 5.13] 348.44 [0.20, 0.94] 45.98

12 75 0.67 0.13 3 1.28 0.02 1.28 0.00 [1.16, 2.06] 553.94 [0.66, 0.88] 27.77

13 69 3.99 0.20 4 4.55 0.08 3.35 0.08 [5.00, 6.58] 389.41 [0.35, 1.74] 54.64

14 85 3.41 0.06 3 3.93 0.00 2.09 1.28 [2.18, 3.09] 339.69 [1.85, 1.95] 32.25

15 76 0.46 0.14 3 1.30 0.03 1.30 0.02 [2.22, 2.98] 531.44 [0.40, 1.30] 35.00

Average 74 3.12 0.13 3 5.00 3.37 3.11 14.11 [3.59, 4.78] 384.62 [0.85, 1.67] 40.45

Table 4Computational results for the 80-node problem instances.

Instance # No. Arcs Iterative LP Default CP Max-Reg CP Pure GA CP–GA

Gap % CPU # Iter Gap % CPU Gap % CPU Gap % CPU Gap % CPU

1 149 3.46 0.33 4 5.67 0.00 5.67 0.02 [8.98, 10.89] 93.06 [1.86, 3.09] 170.44

2 134 1.60 0.27 4 7.86 0.00 7.28 0.48 [8.55, 11.24] 82.28 [1.13, 2.91] 169.94

3 213 3.33 0.27 3 4.20 14.09 5.72 8.22 – – [2.74, 4.91] 186.20

4 111 2.33 0.30 5 8.08 0.03 7.89 1.16 – – [3.14, 5.01] 136.81

5 142 4.39 0.42 6 11.90 0.00 8.67 4.13 [13.45, 14.43] 78.38 [5.74, 6.53] 146.50

6 93 5.75 0.34 4 17.75 0.23 14.25 1.89 [18.14, 19.56] 74.22 [7.78, 9.08] 153.63

7 102 7.70 0.45 6 9.95 0.00 5.78 10.94 [11.38, 12.93] 78.88 [3.11, 4.40] 160.59

8 139 4.92 0.19 3 12.25 0.02 12.10 55.06 [15.52, 16.33] 83.77 [4.63, 6.88] 169.66

9 172 1.65 0.36 5 3.38 0.00 2.68 2.09 [5.41, 6.55] 236.66 [1.70, 2.59] 63.31

10 116 4.63 0.36 5 9.80 0.02 9.52 0.42 [12.52, 13.43] 81.53 [3.91, 4.95] 166.11

11 141 1.72 0.34 4 18.15 0.63 11.82 31.72 [17.96, 20.98] 787.64 [5.39, 7.30] 171.70

12 87 1.95 0.75 14 17.76 0.06 17.41 43.83 [18.00, 20.62] 77.45 [9.03, 11.00] 154.14

13 171 1.67 0.41 4 3.02 0.03 2.69 27.47 [5.13, 6.77] 87.98 [1.86, 2.65] 157.77

14 108 2.51 0.31 7 12.49 0.02 12.10 0.73 [12.67, 13.72] 97.89 [3.90, 8.71] 164.06

15 112 4.87 0.27 5 10.98 0.22 9.97 2.97 [15.37, 17.16] 81.22 [4.87, 7.52] 152.55

Average 133 3.50 0.36 5 10.22 1.02 8.90 12.74 [12.54, 14.20] 149.30 [4.05, 5.84] 154.89

1 In our implementation of the 2-piece iterative MIP method of Shu and

Karimi [2], we corrected a typo in their original paper: the inequality at the

bottom of Page 2901 should be Xkj rmy instead of yrmXk

j . For both methods, the

same configuration is used as that in [2]. We further replace the stopping criterion

in [2] with a more stringent one: 10�9. The same results were obtained. Additional

tuning of algorithm parameters goes beyond the scope of this paper.

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]]10

algorithm is able to further improve the CP solution quality to 0.64%on average. Notably, CP–GA finds optimal solutions to four instancesfor which the pure CP did not find optimal solutions. It alsosignificantly outperforms the pure GA, finding better quality solu-tions using less than a quarter of GA’s computational time. Theaverage gap of the Iterative LP method is about 3%, which is betterthan the Default CP, but not as good as the other three. However, theIterative LP appears to be the most efficient one, spending only 0.06 s(3 iterations) on average.

For the fifteen 40-node instances, it takes the exact MIP method1800 s (8 iterations) on average to reach optimal solutions. Max-Reg CP has an average gap of 3.11%, which is significantly betterthan Default CP. CP–GA further improves Max-Reg CP solutionquality to less than 1%. It also clearly outperforms the pure GA. Thequality of Iterative LP is better than Default CP and pure GA,comparable to Max-Reg CP, but not as good as CP–GA. The IterativeLP again takes the least amount of time: only 0.13 s on average; thebest performed CP–GA spends about 40 s on average.

For the fifteen 80-node instances, the exact MIP method spendsabout 8 h (11 iterations) on average to reach optimality. The pureGA alone could not find feasible solutions to two instances withinthe running limit of 1000 generations. This suggests that relyingpurely on randomly generating solutions may not be efficient forlarge size problems, as much of the searching efforts can be spent

Please cite this article as: Li H, Jiang D. New model and heuristics forComputers and Operations Research (2011), doi:10.1016/j.cor.2011.

on exploring the infeasible region. Neither Default CP nor Max-RegCP alone performs well in terms of solution quality. The hybrid CP–GA is able to significantly improve over both pure GA and CP,achieving an average gap of 4.05%. It is competitive with theIterative LP method having an average gap of 3.5%.

To directly compare with the heuristic methods in [2], we run theMax-Reg CP algorithm, the Iterative LP and the 2-piece iterative MIP(2P Iterative MIP1) algorithms on the 10-node 25-arc dense networkinstance taken directly from [2]. The comparison results are reportedin Table 5. It is observed that the quality of the Iterative LP variessignificantly with the delivery deadline of end products: its optim-ality gap increases from around 1% to 9% as the deadline increasesfrom 0 to 10. The 2P Iterative MIP method performs better, whosegap also tends to increase as the deadline increases. The Max-Reg CPappears to be quite robust with respect to the change in deadline: itfinds optimal solutions to all the ten instances.

safety stock placement in general acyclic supply chain networks.08.001

Page 11: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

Table 5Comparison results on the dense network instance in [2].

Delivery Deadline Iterative LP 2P Iterative MIP Max-Reg CP

Gap% # Iter CPU Gap% # Iter CPU Gap% CPU

0 1.24 2 0.02 0 2 0.15 0 0.35

1 2.07 2 0.02 0 2 0.13 0 0.42

2 3.52 2 0.02 0 2 0.02 0 0.27

3 9.09 2 o0.01 0 2 0.02 0 0.55

4 9.04 2 o0.01 1.35 2 0.24 0 0.55

5 8.98 2 o0.01 2.02 2 0.21 0 0.39

6 8.91 2 0.02 1.25 2 0.03 0 0.63

7 8.83 2 0.02 1.54 2 0.02 0 0.44

8 8.75 2 o0.01 1.24 2 0.02 0 0.44

9 8.64 2 0.02 2.07 2 0.25 0 0.44

10 8.54 2 o0.01 3.52 2 0.22 0 0.52

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]] 11

Despite its efficiency for solving large problems, one potentialdifficulty of the iterative heuristic methods is the existence of errorbounds. We refer to [54] for empirical analysis of the error boundsincurred by linear approximation, and [55] for theoretical analysison a priori bound for functional approximation in math program-ming. For the safety stock problem in generalized networks, theimpact of such error bounds is evident in the Table 3 (p. 2903) of[2]: it prevents the iterative LP or the 2P Iterative MIP method fromfinding better solutions for even small size networks (with 10 to 20nodes) compared to large problems. It is also evident in Table 1 andTable 2 of this paper: the Iterative LP method fails to find optimalsolution to any of the fifteen 10-node problems, which have allbeen optimally solved by Max-Reg CP; for the fifteen 20-nodeproblems, the Iterative LP yields an average gap of about 3%,whereas Max-Reg CP alone has a gap of 1.7% on average. It hasbeen empirically shown in [1], as well as in this paper, that hj

generated through (16) can lead to a larger error bounds. Theresults in Table 5 further suggest that the error bounds of bothIterative LP and 2P Iterative MIP tend to increase as the problembecomes less restrictive with a longer delivery deadline.

7. Conclusions and future research

We propose a new modeling framework for the safety stockplacement problem in general acyclic supply chain networks. Ourapproach transforms a general acyclic supply chain network intoa project scheduling network. With such transformation, itbecomes natural to model dependencies among the inboundand outbound service times, and capacity constraints involved,as temporal relationships in project scheduling. More impor-tantly, our approach exploits a new project network perspectiveto the safety stock placement problem, which makes it possible toemploy a large set of methods available in the project schedulingfield to deal with the safety stock placement problem.

In this paper, we devise constraint programming (CP) basedmethods for scheduling the inbound and outbound service times.With effective constraint propagation techniques and customizedsearch strategies, our CP algorithm is able to find optimal solutions tosmall problems, and near optimal solutions for medium size pro-blems fast. In order to further improve solution quality, we develop ascheme to integrate CP with a genetic algorithm (GA). A set of highquality CP solutions are used as the initial population for GA, whichsignificantly reduces the overheads for GA alone to obtain initialsolutions. CP also provides reduced time windows (bounds) for thedecision variables of inbound and outbound service times, whichsignificantly reduces GA’s search space.

Computational study is conducted on randomly generated testinstances with size ranging from 10 to 80 nodes. The pure CP

Please cite this article as: Li H, Jiang D. New model and heuristics forComputers and Operations Research (2011), doi:10.1016/j.cor.2011.

algorithm finds optimal solutions to all the 10-node instanceswithin fractions of a second. The hybrid CP–GA significantlyimproves ether pure CP or pure GA. It achieves an averageoptimality gap of less than 1% for the 20-node and 40-nodeinstances in less than a minute, and about 5% gap for the 80-nodeinstances in less than 3 min. It takes the exact MIP method about8 h on average to optimally solve an 80-node instance.

Our CP based algorithms are competitive with the state-of-the-artheuristics of [2]. The hybrid CP–GA achieves better solution qualityfor the 10-node, 20-node and 40-node instances than the Iterative LPmethod. For the 80-node instances, CP–GA finds competitive solu-tions using moderately more computational time. While the iterativeheuristics of [2] are advantageous in computation efficiency, thehybrid CP–GA offers a novel solution approach that balances solutionspeed and quality. The CP based methods also appear to be robustwith respect to the delivery deadline of end products. Given the factthat the addressed safety stock problem is often strategic or tacticalin nature, the planning horizon is usually between twelve monthsand two years (cf. [9,11]). When it involves sourcing and newproduct launch decisions, the financial impact of an inventorypositioning project can easily reach the scale of millions of dollars(cf. [9,56,57]). Thus algorithms with balanced speed and quality willbe attractive to firms. In addition, the hybrid algorithmic frameworkcan easily incorporate the LP based heuristic solutions into the initialpopulation of GA to achieve even better solution quality.

The idea of transforming a general acyclic supply chain net-work to a project scheduling network opens a number ofopportunities for modeling and solving the safety stock place-ment problem. From the modeling perspective, such transforma-tion makes it natural to model various renewable resourcesubiquitous in complex manufacturing systems and supply chainnetworks in general. This provides a feasible and promising wayto study safety stock placement in a resource-constrained envir-onment. From the algorithmic perspective, it will be interesting toadapt other scheduling methods and/or local search based meta-heuristics for the safety stock placement problem.

Acknowledgments

Dr. Jiang’s research was supported by the National NaturalScience Foundation of China (Grant # 70871119/G0109), theNational Social Science Foundation of China (Grant # 07XJY026),and the Science Innovation Foundation of Chongqing LogisticsEngineering University. The authors also thank three anonymousreferees for their comments that helped improving contents andpresentation of this paper.

Appendix

Definition 3. A floor function x is defined as the greatest integerthat does not exceed a real number x.

Definition 4. Let 0r{x}o1 denote the fractional part of x, suchthat x¼xþ{x}.

Lemma 1. If x1 and x2 satisfy the constraint xrb, and x0 is aconvex combination of x1 and x2, then x0rb holds.

Proof. Since x0 is a convex combination of x1 and x2, we havex0rb. Therefore, x0rx0rb. Q.E.D.

Lemma 2. If ðx1,y1Þ and ðx2,y2Þ satisfy the constraint x�yrb,where b is an integer. Let ðx0,y0Þ be a convex combination of ðx1,y1Þ

and ðx2,y2Þ, then x0 �y0rb holds.

safety stock placement in general acyclic supply chain networks.08.001

Page 12: Computers & Operations Researchumsl.edu/~lihait/files/SafetyStockPlacement-Aug-2011.pdfNew model and heuristics for safety stock placement in general acyclic supply chain networks

H. Li, D. Jiang / Computers & Operations Research ] (]]]]) ]]]–]]]12

Proof. Since ðx0,y0Þ is a convex combination of two feasiblesolutions, it satisfies the constraint, i.e. x0 �y0rb. If suffices toshow that x0 �y0rx0 �y0. There are the following two possibilities:

(i)

PlCo

If {y0}r{x0}, then y0 �y0rx0 �x0, thus x0 �y0rx0 �y0rb.

(ii) Consider now {y0}4{x0}. Since x0 þ{x0}�y0 �{y0}rb, then

x0 �y0rbþ{y0}�{x0}. Both {x0} and {y0} are in the range ½0,1Þ,and {x0}o{y0}, thus 0o{y0}�{x0}o1. As Ub c is a monotonicfunction, x0 �y0rbþ{y0}�{x0}¼b. That is, x0 �y0rb. Q.E.D.

Property 3. Let X1 ¼ ðx11,x12,. . .,x1,2nÞ and X2 ¼ ðx21,x22,. . .,x2,2nÞ betwo vector of feasible solutions to the constraint system (2)–(6). IfX0 ¼ ðx01,x02,. . .,x02nÞ is a convex combination of X1 and X2, thenX0 ¼ ðx01,x02,. . .,x02nÞ is feasible to the constraint system (2)–(6).

Proof. By definition, x0i is a convex combination of x1i and x2i fori¼ 1,2,. . .,2n. Any constraint in the constraint system (2)–(6)takes either the form xrb or the form x�yrb, where b is aninteger.

Consider any constraint of the form xrb. Without loss ofgenerality, assume it involves the ith decision variable in solutionvector. Since x1i and x2i are two feasible solutions to xrb, and x0i isa convex combination of x1i and x2i, it follows from Lemma 1 thatx0irb, i.e. x0i is feasible to the constraint xrb.

Consider any constraint of the form x�yrb. Without loss ofgenerality, assume it involves the ith and jth decision variables inthe solution vector. Since (x1i,x1jÞ and (x2i,x2jÞ are two feasiblesolutions to x�yrb, and ðx0i,y

0iÞ is convex combination of (x1i,x1jÞ

and (x2i,x2jÞ, it follows from Lemma 2 that x0i�x0jrb, i.e. ðx0i,x0jÞ is

feasible to the constraint x�yrb.Therefore, the solution vector X0 ¼ ðx01,x02,. . .,x02nÞ is feasible to

the constraint system (2)–(6). Q.E.D.

References

[1] Magnanti TL, Shen Z-J, Shu J, Simchi-Levi D, Teo C-P. Inventory placement inacyclic supply chain networks. Operations Research Letters 2006;34:228–38.

[2] Shu J, Karimi IA. Efficient heuristics for inventory placement in acyclicnetworks. Computers and Operations Research 2009;36:2899–904.

[3] Minner S. Strategic safety stocks in supply chains. Berlin: Springer; 2000.[4] Parlier GH. Transforming u.S. Army supply chains: strategies for management

innovation. Business Expert Press; 2011.[5] Burton L. Strategic inventory positioning of navy depot level repairables.

Master Thesis. Monterey, CA: Naval Postgraduate School; 2005.[6] Fisher. What is the right supply chain for your product? Harvard Business

Review 1997:105–16.[7] Maloni MJ, Benton WC. Supply chain partnerships: opportunities for opera-

tions research. European Journal of Operational Research 1997;101:419–29.[8] Simchi-Levi D, Kaminsky P, Simchi-Levi E. Designing and managing the

supply chain: concepts, strategies and case studies. New York: McGraw Hill;2008.

[9] Graves SC, Willems SP. Optimizing the supply chain configuration for newproducts. Management Science 2005;51(8):1165–80.

[10] Minner S. Dynamic programming algorithms for multi-stage safety stockoptimization. OR Spectrum 1997;19:261–71.

[11] Graves SC, Willems SP. Optimizing strategic safety stock placement in supplychains. Manufacturing and Service Operations Management 2000;2(1):68–83.

[12] Sahni S. Computationally related problems. SIAM Journal on Computing1974;3:262–79.

[13] Kelly J. Critical-path planning and scheduling: mathematical basis. Opera-tions Research 1961;9(3):296–320.

[14] Malcolm DG, Roseboom JH, Clark CE, Fazar W. Applications of a technique forresearch and development program evaluation. Operations Research 1959;7(5):646–69.

[15] Demeulemeester EL, Herroelen WS. Project scheduling: a research hand-book.Kluwer Academic Publishers; 2002.

[16] Neumann K, Schwindt C, Zimmermann J. Project scheduling with timewindows and scarce resources: temporal and resource-constrained projectscheduling with regular and nonregular objective functions. New York:Springer; 2002.

[17] Marriott K, Stuckey PJ. Programming with constraints. Cambridge, Massa-chusetts: The MIT Press; 1998.

ease cite this article as: Li H, Jiang D. New model and heuristics formputers and Operations Research (2011), doi:10.1016/j.cor.2011.

[18] Aarts E, Lenstra JK. Local search in combinatorial optimization. Princeton:Princeton University Press; 2003.

[19] Glover F, Kochenberger G. Handbook of metaheuristics. Springer; 2005.[20] Simpson KF. In-process inventories. Operations Research 1958;6(6):863–73.[21] Gallego G, Zipkin P. Stock positioning and performance estimation in serial

production-transportation systems. Manufacturing and Service OperationsManagement 1999;1(1):77–88.

[22] Ioannou G, Prastacos G, Skintzi G. Inventory positioning in multiple productsupply chains. Annals of Operations Research 2004;126:195–213.

[23] Graves SC, Willems SP. Strategic safety stock placement in supply chains. In:Proceedings of the 1996 MSOM Conference; 1996; 299–304.

[24] Inderfurth K, Minner S. Safety stocks in multi-stage inventory systems underdifferent service measures. European Journal of Operational Research1998;106:57–73.

[25] Lesnaia E. Optimizing safety stock placement in general network supplychains. PhD thesis. MIT; 2004.

[26] Kolisch R. Make-to-order assembly management. Berlin: Springer; 2001.[27] Li H, Womer K. Modeling the supply chain configuration problem under

resource constraints. International Journal of Project Management 2008;26(6):646–54.

[28] Baptiste P, Le Pape C, Nuijten W. Constraint-based scheduling: applyingconstraint programming to scheduling problems. New York: Springer; 2001.

[29] Van Hentenryck P. The opl optimization programming language. Cambridge:MIT Press; 1999.

[30] Brucker P. Scheduling and constraint propagation. Discrete Applied Mathe-matics 2002;123(1–3):227–56.

[31] Brucker P, Knust S. Lower bounds for resource-constrained project schedul-ing problems. European Journal of Operational Research 2003;149:302–13.

[32] Li H, Womer K. Scheduling projects with multi-skilled personnel by a hybridmilp/cp benders decomposition algorithm. Journal of Scheduling 2009;12(no. 3):281–98.

[33] Sellmann M, Fahle T. Constraint programming based lagrangian relaxationfor the automatic recording problem. Annals of Operations Research2003;118:17–33.

[34] Rousseau L-M, Gendreau M, Pesant G, Focacci F. Solving vrptws withconstraint programming based column generation. Annals of OperationsResearch 2004;130:199–216.

[35] Pesant G, Gendreau M. A constraint programming framework for local searchmethods. Journal of Heuristics 1999;5:255–79.

[36] Gendreau M. Constraint programming and operations research: commentsfrom an operations researcher. Journal of Heuristics 2002;8:19–24.

[37] Hooker J. Logic, optimization and constraint programming. INFORMS Journalon Computing 2002;14(4):285–321.

[38] Milano M, Trick M. Constraint and integer programming. In: Milano M,editor. Constraint and integer programming: toward a unified methodology,vol. 27. Springer; 2004.

[39] ILOG, Opl studio 6.0 user’s manual. IBM; 2010.[40] ILOG, Ilog cp optimizer 2.3 user manual. IBM; 2010.[41] Tsang E. Foundations of constraint satisfaction.Academic Press; 1993.[42] Van Hentenryck P, Deville Y, Teng C-M. A generic arc-consistency algorithm

and its specializations. Artificial Intelligence 1992;57:291–321.[43] Dorndorf U, Pesch E, Phan-Huy T. A time-oriented branch-and-bound algo-

rithm for resource-constrained project scheduling with generalized prece-dence constraints. Management Science 2000;46(10):1365–84.

[44] Holland J. Adaptation in natural and artificial systems. Ann Arbor: Universityof Michigan Press; 1975.

[45] Goldberg DE. Genetic algorithms in search, optimization and machinelearning. Addison-Wesley Publishing Company, Inc; 1989.

[46] Davis L. Handbook of genetic algorithm. New York: Van Nostrand Reinhold;1991.

[47] Gen M, Cheng R. Genetic algorithms and engineering optimization. NewYork: Wiley; 2000.

[48] Michalewicz Z, Fogel DB. How to solve it: modern heuristics. Berlin: Springer;2004.

[49] Michalewicz Z. Genetic algorithmsþdata structure¼evolution program.Berlin: Springer; 1996.

[50] Le Pape C. Implementation of resource constraints in ilog schedule: a libraryfor the development of constraint-based scheduling systems. IntelligentSystems Engineering 1994;3:55–66.

[51] Mathworks—user’s guide for genetic algorithm and direct search toolbox.Mathworks Inc.; 2008.

[52] Schwindt C. Generation of resource-constrained project scheduling problemswith minimal and maximal time lags. Technical Report WIOR-489. Institutefur Wirtschaftstheorie und Operations Research, University of Karlsruhe;1996.

[53] ILOG, Ilog cplex 12.1 user’s manual. IBM; 2010.[54] Baumol WJ, Bushnell RC. Error produced by linearization in mathematical

programming. Econometrica 1967;35(3-4).[55] Geoffrion AM. Objective function approximations in mathematical program-

ming. Mathematical Programming 1977;13:23–37.[56] Amini M, Li H. Supply chain configuration for diffusion of new products: an

integrated optimization approach. Omega 2011;39(3):313–22.[57] Li H, Amini M. A hybrid optimization approach to configure supply chains for

new products diffusion: a case study of multiple-sourcing strategy. Interna-tional Journal of Production Research. In press.

safety stock placement in general acyclic supply chain networks.08.001