Les Cahiers du GERAD

3 downloads 0 Views 207KB Size Report
Feb 8, 2009 - Lila Rasekh. Walt Disney World. 1375 Lake Buena Vista, South 320C. Orlando, FL 32830. U.S.A. [email protected] Jacques Desrosiers.

Les Cahiers du GERAD

ISSN:

0711–2440

Solving Multi-Stage Stochastic, In-House Production and Outsourcing Planning by Two-Level Decomposition L. Rasekh J. Desrosiers G–2009–08 February 2009

Les textes publi´ es dans la s´ erie des rapports de recherche HEC n’engagent que la responsabilit´ e de leurs auteurs. La publication de ces rapports de recherche b´ en´ eficie d’une subvention du Fonds qu´ eb´ ecois de la recherche sur la nature et les technologies.

Solving Multi-Stage Stochastic, In-House Production and Outsourcing Planning by Two-Level Decomposition

Lila Rasekh Walt Disney World 1375 Lake Buena Vista, South 320C Orlando, FL 32830 U.S.A. [email protected]

Jacques Desrosiers GERAD and HEC Montr´eal 3000, chemin de la Cˆ ote-Sainte-Catherine Montr´eal (Qu´ebec) Canada, H3T 2A7 [email protected]

February 2009

Les Cahiers du GERAD G–2009–08 c 2009 GERAD Copyright

Abstract In-house production or outsourcing are important strategic decisions for planning production and capacity in business organizations. Outsourcing to overseas suppliers is often associated with risk with respect to the quality of the products. Hence, we developed a multi-stage stochastic programming model that takes into account the uncertainty involved in the production of the quality of outsourced products in the face of stochastic demand. The goal is to find an optimal way to choose between in-house capacity expansion and buying from local suppliers with assured quality versus buying from overseas suppliers. Moreover, we propose three alternative algorithms for solving the problem. These three approaches are: a two-level column generation by using the Analytic Center Cutting Plane Method (ACCPM), a two-level Benders’ decomposition by using the ACCPM, and a two-level decomposition where the fist level is solved by using the classical Dantzig-Wolfe decomposition approach and the second level is solved by using the ACCPM. Key Words: planning.

stochastic programming, ACCPM, column generation, Benders, make or buy decision

R´ esum´ e La production interne et la sous-traitance constituent des d´ecisions strat´egiques importantes pour la planification de la capacit´e de production des entreprises. Un risque li´e ` a la qualit´e des produits est souvent associ´e ` a la sous-traitance donn´ee ` a des fournisseurs outre-mer. C’est pourquoi nous avons d´evelopp´e un mod`ele de programmation stochastique multi-p´eriodes qui prend en compte cette incertitude sur la qualit´e des produits sous-trait´es en outre-mer en pr´esence d’une demande stochastique. L’objectif est de trouver une mani`ere optimale de choisir entre d’une part, l’augmentation de la capacit´e interne et l’achat ` a des fournisseurs locaux assurant ainsi un certain contrˆ ole de la qualit´e, et d’autre part, la sous-traitance donn´ee ` a des fournisseurs outre-mer. Nous proposons trois algorithmes pour r´esoudre ce probl`eme, chacune faisant appel ` a une m´ethode de d´ecomposition ` a deux niveaux : une premi`ere m´ethode par g´en´eration de colonnes o` u les deux niveaux sont r´esolus par la m´ethode de points int´erieurs ACCPM (Analytic Center Cutting Plane Method ), une seconde m´ethode de r´esolution par la d´ecomposition de Benders ´egalement bas´ee sur ACCPM aux deux niveaux, et enfin une troisi`eme m´ethode de d´ecomposition o` u le premier niveau est r´esolu en utilisant l’approche classique de Dantzig et Wolfe alors que le second niveau fait appel ` a ACCPM. Mots cl´ es : programmation stochastique, g´en´eration de colonnes, ACCPM, Dantzig-Wolfe, Benders, sous-traitance.

Acknowledgments: This research was supported by the Natural Sciences and Engineering Council of Canada. We would like to thank an anonymous referee for giving us constructive and helpful comments on an earlier draft of this paper.

Les Cahiers du GERAD

1

G–2009–08

1

Introduction

In the past few decades, manufacturers paid increasing attention to outsourcing products and processes. Traditionally, outsourcing by organisations was done to reduce the marginal production cost and to exploit the external supplier’s capabilities. However, in many cases a number of important factors such as product quality, lead time reliability, technical capability, and the financial stability of the supplier were not taken into account. Many companies decided to outsource rather than make other potential decisions based on a short term analysis of cost reduction and capacity (Canez et al., 2000). This approach may have resulted in high contingency costs for corporations. For example, a recent massive toy recall cost Mattel nearly 30 million U.S. dollars (Barboza, 2007). The recall was made after Chinese-manufactured toys were found to have paint with excessive amounts of lead or small parts that could be swallowed by children. In 1988, after comprehensive research was carried out by McKinsey and Company (Lee and Lee, 2007), Mattel started a Vendor Operation Asia (VOA). The research suggests that Mattel manufactures the core products like Barbie and Hot Wheels in-house and outsources all non-core products. By using this strategy, Mattel can produce a large number of toys with short life-cycles without any intensive investment. Over recent years, Mattel has introduced over 300 new, non-core toys each year. The vendors are working with Mattel under an agreement called Original Equipment Manufacturing (Herbig and O’Hara, 1994) by which Mattel transfers the design and knowledge to vendors in China, and sells the final products under its own brand name. The recall of millions of toys by such a giant corporation, as well as recalls on other unsafe products-including tainted pet food, seafood for human consumption, and toothpaste- indicate that quality failure is a large risk associated with outsourcing to overseas suppliers, especially when the vendors have no stake in the brand name. Moreover, product safety standards can be improved as the existing infrastructure improves in a country, since what is considered to be unsafe by Western standards may perceived as safe in developing countries. Therefore, Western importers should benchmark a safety standard and monitor the quality during the manufacturing process. By doing this, a corporation like Mattel could have stopped or improved the manufacturing process before 20 million unsafe toys were introduced into the market. However, the extra cost associated with quality assurance may prevent many corporation from participating in a consistent quality monitoring. Considering these challenging issues, in recent years, most manufacturers have addressed the question of how extensively they should outsource, and at what point should they stop? How can manufacturers assess the risks of making or buying to best leverage their resources for increased profitability? What is the optimal combination of make and buy? To help to answer these questions, we developed a multi-stage stochastic programming model which takes into account the uncertainty involved in the production of the quality of outsourced products in the face of stochastic demand. The goal is to find the optimal way to choose between in-house capacity expansion and buying from the local suppliers with assured quality versus buying from overseas suppliers.

2

Literature Review

Multi-stage stochastic programs (MSPs) are large-scale optimization problems. The size of MSPs constraint matrix increases exponentially with the number of stages and the number of scenarios. Hence, some MSPs are intractable by direct optimization solvers, and decomposition methods become good alternatives for solving them. However, in classical decomposition approaches, the number of iterations can become unmanageable, especially as the dimension of the master problem increases. To resolve this issue, we proposed in Rasekh and Desrosiers (2008) a two-level interior point decomposition method for solving a class of multi-stage stochastic programs with recourse. This two-level decomposition method uses dynamic column generation and consists of the solution of the two master programs and a subproblem. Both master programs have Dantzig-Wolfe reformulations that are solved by an interior point-based decomposition algorithm, such as the Analytic Center Cutting Plane Method (ACCPM) to provide central dual prices, see Goffin et al. (1992) and Babonneau et al. (2007). The combination of the second master program and its subproblem acts as a

2

G–2009–08

Les Cahiers du GERAD

subproblem for the first master. The ACCPM has a superior global convergence property, and its convergence rate is insensitive to the problem scale. These unique properties allows us to solve large-scale MSPs in a manageable number of iterations. The classical decomposition tools for linear programming problems trace back to Dantzig and Wolfe (see (L¨ ubbecke and Desrosiers, 2007)) and Benders (1962). These decomposition principles are translated into the L-shaped method in stochastic linear programming (Van Slyke and Wets, 1969). The L-shaped method has been extended to the nested decomposition method and developed as a computer code for linear multistage recourse problems (Birge, 1985; Gassman, 1990).The nested decomposition method is a simplex-based decomposition algorithm. The L-shaped method is viewed as a simplex-based decomposition principle in contrast to a method such as the analytic center cutting plane method (ACCPM), which is based on an interior point algorithm. The ACCPM combines the interior point algorithm with the cutting plane technique to provide a powerful tool for solving large-scale optimization problems. The ACCPM was first implemented for solving two-stage stochastic programming with recourse in Bahn et al. (1995). This specialized implementation is successfully used for practical applications such as the telecommunication network problem in Andrade et al. (2004) and climate model calibration in Beltran et al. (2006). A two-level decomposition algorithm via ACCPM is also addressed in Elhedhli and Goffin (2005) to solve production-distribution problem. The decomposition methods that are used for solving stochastic programs can be classified into three categories: i) direct methods that solve the deterministic equivalent to a stochastic program by using a simplex or interior point algorithm (Birge and Holmes, 1992; Berkelaar et al., 1962; Colombo et al., 2006), ii) cutting plane algorithms that are mostly based on the Benders’ decomposition of the primal formulation (Van Slyke and Wets, 1969; Zhao, 2001), and iii) Lagrangian based, dual decomposition methods (Rockafellar and Wets, 1991). In this paper, we take advantage of the recourse structure of the in-house production and outsourcing planning model to decompose and solve it with a state-of-the-art two-level decomposition algorithm. We extend the two-level decomposition via the ACCPM to Benders’ decomposition for the first time so to be able to compare the computational results with the two-level column generation that uses the ACCPM. Moreover, to achieve a higher accuracy, we implemented a two-level decomposition algorithm where the first level is solved via the classical Dantzig-Wolfe decomposition and the second level is solved via the ACCPM. Using the interior point method within the framework of Benders and Dantzig-Wolfe decomposition introduces a different venue in approaching the decomposition methods. Note that the recent developments in classical Dantzig-Wolfe decomposition and column generation focus on regularization and stabilization techniques (Ben Amor and Desrosiers, 2006; Oukil et al., 2007) to provide better dual prices. The present paper is organized as follows. In Section 3, we formulate the in-house production and outsoursing planning problem. In Section 4, we explain the approaches to solving the problem, that is, a two-level column generation and a two-level Benders’ decomposition, and an interior point-based cutting plane algorithm – the ACCPM. In Section 5, we discuss the computational experiments. Finally, in Section 6, we present our concluding remarks.

3

In-House Production/Outsourcing Planning Model

As product demand increases, corporations face decisions about where and how to expand their production capacities. Many business organizations consider outsourcing their products to the emerging, low-cost overseas market. Outsourcing allows corporations to meet customer demand at lower marginal costs, while also maintaining flexibility of operations in changing environments. However, the real evaluation of the cost-savings associated with outsourcing requires more than a mere consideration of the production cost differences. Many manufacturers face a number of costly, outsourcing challenges including lead times, quality, and communication. To capture the real cost associated with outsourcing, we use the scenario tree approach to model the evolution of the uncertain demand and risk associated with the quality of outsourced products in multi periods. Elements of the model are illustrated in Figure 1.

Les Cahiers du GERAD

3

G–2009–08

EH EM EL AH

EH

BM

EM EL

BL

AH

H

AM

M

AL

L

BH BM BL

H M L

H M L

Figure 1: In-house production and outsourcing planning, decision tree This figure shows that in each stage the decision makers face two alternative paradigms. The first paradigm, which is illustrated in the upper part of the decision tree, is concerned with buying products of uncertain quality from overseas suppliers. This can be explained if, for example, we assume three different categories associated with quality – namely, E (Excellent quality), A (Acceptable quality), and B (Bad quality). Similarly, we assume three other categories for demand – namely, H (High), M (Medium), and L (Low). Therefore, the first scenario EH in the upper part of the tree shows the possibility of having excellent quality and high demand. On the other hand, in the lower part of the tree, for manufacturers facing the decision of whether to expand in-house capacity or to buy from local suppliers with assured quality and higher cost, the only stochastic parameter is the demand. The goal of the proposed model is to find the optimal way to choose between in-house production, buying from local suppliers with higher cost, or buying from low-cost overseas suppliers while taking into account the risk associated with the quality level. In this paper, we refer to the upper scenarios as the first set of scenarios and to those in the lower part as the second set of scenarios. The first set has two parts starting from stage 2 as illustrated in Figure 1; the number of scenarios in the upper part is denoted by Kt and the number in the lower part it is denoted by Jt2 . Similarly, the number of scenarios in the lower part is denoted by Jt across the planning horizon t. The indices, variables, and input parameters used in the model are as follows: Indices: T: Kt : Jt2 : Jt : α(kt ): α(jt ): α(jt2 ):

number of stages (periods) in the planning horizon number of first set scenarios (concerned with outsource planning) in stage t, t = 1, · · · , T number of first set scenarios (concerned with buying from local suppliers) in stage t, t = 2, · · · , T number of second set of scenarios in stage t, t = 1, · · · , T capacity index for scenario kt capacity index for scenario jt capacity index for scenario jt2

4

G–2009–08

Les Cahiers du GERAD

Variables: X0 : Xtkt : Y0 : Ytjt2 : Ytjt : Ztkt : Wtkt : Wtjt2 : Vtjt2 : Vtjt : U0 : Utkt : Utjt2 : Utjt :

amount of product which is manufactured in stage 0, amount of product which is manufactured in stage t,under scenario kt , t = 1, · · · , T, kt = 1, · · · , Kt amount of product bought from local suppliers in stage 0, amount of product bought from local suppliers in stage t under scenario jt2 , t = 1, · · · , T, jt2 = 2, · · · , Jt2 amount of product bought from local suppliers in stage t under scenario jt , t = 1, · · · , T, jt = 1, · · · , Jt amount of product which is outsourced at stage t under scenario kt , t = 1, · · · , T, kt = 1, · · · , Kt the amount of product which is manufactured in stage t, under scenario kt , t = 1, · · · , T, kt = 1, · · · , Kt the amount of product which is manufactured in stage t, under scenario jt2 , t = 1, · · · , T, jt2 = 1, · · · , Jt2 amount of product bought from local suppliers at stage t and for scenario jt2 , t = 1, · · · , T, jt2 = 1, · · · , Jt2 amount of product bought from local suppliers at stage t and for scenario jt , t = 1, · · · , T, jt = 1, · · · , Jt additional capacity at the beginning of stage 0 additional capacity at the beginning of stage t, under scenario kt , t = 1, · · · , T, kt = 1, · · · , Kt additional capacity at the beginning of stage t, under scenario jt , t = 1, · · · , T, jt2 = 1, · · · , Jt2 additional capacity at the beginning of stage t, under scenario jt2 , t = 1, · · · , T, j t = 1, · · · , Jt

Parameters: U 0: c0 : ctkt : cd0 : stkt : cptkt : cptjt2 : cptjt : atjt2 : atjt : btjt2 : btjt : dtkt : dtjt2 : dtjt : Ptkt : Ptjt2 : Pjt :

initial capacity at stage 0 marginal cost of production at stage 0 marginal cost of production at stage t under scenario kt , t = 1, · · · , T, kt = 1, · · · , Kt unit buying cost from local suppliers at stage 0 unit cost for outsourcing at stage t, under scenario kt unit cost of in-house capacity expansion at stage t, under scenario kt , t = 1, · · · , T, kt = 1, · · · , Kt unit cost of in-house capacity expansion at stage t, under scenario jt2 , t = 1, · · · , T, jt2 = 1, · · · , Jt2 unit cost of in-house capacity expansion at stage t, under scenario jt , t = 1, · · · , T, jt = 1, · · · , Jt unit production cost at stage t, under scenario jt2 , t = 1, · · · , T, jt2 = 1, · · · , Jt2 unit production cost at stage t, under scenario jt , t = 1, · · · , T, jt = 1, · · · , Jt unit buying cost from local suppliers at stage t, under scenario jt2 , t = 1, · · · , T, Jt2 = 1, · · · , Jt2 unit buying cost from local suppliers at stage t, under scenario jt , t = 1, · · · , T, jt = 1, · · · , Jt unit demand at stage t, under scenario kt , t = 1, · · · , T, kt = 1, · · · , Kt unit demand at stage t, under scenario jt2 , t = 1, · · · , T, jt2 = 1, · · · , Jt2 unit demand at stage t, under scenario jt , t = 1, · · · , T, jt = 1, · · · , Jt probability of scenario kt in stage t, t = 1, · · · , T, kt = 1, · · · , Kt probability of scenario jt2 in stage t, t = 1, · · · , T, jt2 = 1, · · · , Jt2 probability of scenario jt in stage t, t = 1, · · · , T, jt = 1, · · · , Jt

Les Cahiers du GERAD

5

G–2009–08

Given the above definitions, the general T -stage model can be written as follows: T M B : max (c0 X0 + cd0 Y0 ) +

Kt T X X

cptk Utk +

t=1 k=1

2

+

Jt T X X

cptj2 Utj2 +

t=1 j 2 =1

Kt T X X

Jt T X X

cptj Utj

t=1 j=1

Ptkt (ctkt Xtkt + stkt Ztkt )

t=1 k=1

2

+

Jt T X X

Ptjt2



atjt2 Wtjt2 + btjt2 Vtjt2



t=1 jt2 =1

+

T X Jt X

Ptjt (atjt Wtjt + btjt Vtjt )

t=1 jt =1

s.t. X0 ≤ U 0 + U0 ,

(1)

X0 + Y0 ≥ d0 ,

(2)

Xtkt ≤ U 0 + U0 +

T α(K X Xt )

α(kt ) = 1, · · · , Kt − 1, t = 1, .., T

(3)

Utα(jt ) ,

α(jt ) = 1, · · · , Jt , t = 1, .., T

(4)

Utα(j 2 ) ,

α(jt2 ) = 1, · · · , Jt2 , t = 2, .., T

(5)

Xtkt + Ztkt ≥ dtkt ,

kt = 1, · · · , Kt , t = 1, ..., T

(6)

Wtjt2 + Vtjt2 ≥ dtjt2 ,

jt2

(7)

Wtjt + Vtjt ≥ dtjt ,

jt = 1, · · · , Jt , t = 1, .., T

Utα(kt ) ,

t=1 k=1

Wtjt ≤ U 0 + U0 +

T α(j X Xt ) t=1 k=1 2

Wtjt2 ≤ U 0 + U0 +

T α(j t) X X t=2 k=1

X, Y, Z, U, W, V ≥ 0.

= 1, · · ·

, Jt2 ,

t = 2, .., T

(8) (9)

In TMB, constraint (1) refers to the capacity constraint in stage 0, while constraint (2) specifies that the demand must be satisfied in stage 0. In stages t = 1, ldots, T , constraint (3) represents the capacity restriction on production when a manufacturer considers buying from overseas suppliers at a lower price and risky quality. Constraint (4) represents the capacity restriction on production when manufacturers also have the choice to buy from local suppliers at a higher price and assured quality. In stages t = 2, . . . , T , constraints (5) refers to the capacity constraint when buying from local suppliers (in the upper part of Figure 1). Constraints (6), (7) and (8) force the demand to be satisfied in both situations – namely, to outsource to overseas suppliers or to buy from local suppliers. TMB takes into account the uncertainty involved in the production of the quality of outsourced products in the face of stochastic demand. The goal is to find the optimal way to choose between in-house capacity expansion and buying from local suppliers with assured quality versus buying from overseas suppliers. The main model parameters are cost associated with make-or-buy and joint probability distribution of quality and demand. Market changes as well as currency exchange rates influence the cost of making or buying from either local or overseas suppliers. The joint probability distribution also changes during the product life-cycle, as demand changes during this period. Moreover, the improvement in quality of outsource products can affect this probability distribution. Changing the model parameters will change the model as well as the solution. Solution to TMB defines the make-or-buy strategies for a manufacturer during the product life-cycle. Different make-or-buy strategies may be required during the pick demand period versus the low demand period.

6

4

G–2009–08

Les Cahiers du GERAD

Solution Approaches

Decomposition approaches become methods of choice for solving large-scale MSP problems. They can reduce the dimensionality of the large-scale problems, since they are amendable to a parallel computer environment. The well-known nested decomposition method of Birge (1985) for solving MSPs can be implemented via parallel computing, see Ruszczynski (1993). By parallelization, sets of scenarios are assigned to processors to create cuts (columns) simultaneously, and thus, problems are solved more quickly. The simplex-based decomposition approaches are prevalently utilized for solving MSP problems. However, the use of an interior-point method is often a better choice for solving large-scale optimization problems. In Rasekh and Desrosiers (2008), we successfully developed a two-level interior-point-based decomposition algorithm for a class of MSP problems. In the present paper, we use variants of the two-level approach to solve the TMB. In addition, we implement a new two-level decomposition based on the Benders’ decomposition of the TMB. This strategy allows us to propose the best approach for solving the in-hand problem.

4.1

A Two-level Column Generation Approach

To best explain the Dantzig-Wolfe decomposition (L¨ ubbecke and Desrosiers, 2007) and the column generation approach that is implemented on TMB in two levels, we formulate a generic form of TMB in three stages. This formulation consists of a deterministic stage (stage 0) and two other stages with stochastic variables, where the first stage has m scenarios and the second stage has n = m2 scenarios. In this three-stage model, x 1 } and y2 = {y12 , y22 , · · · , yn2 } are is the vector of variables associated with stage 0, whereas y1 = {y11 , y21 , · · · , ym the vectors of variables associated with the first stage and the second stage, respectively. The cost structure consists of the direct cost c of stage 0, and the expected costs of the stochastic variables in the first and second stages, denoted by q1 and q2 , respectively. Then, the generic primal three-stage stochastic program can be formulated as follows: P rimal : max cT x +q1 y1 +q2 y2 s.t.

Ax T1 x +W1 y1 Bx +T2 y1 x, y1 , y2 ≥ 0.

+W2 y2

=b = h1 , = h2 ,

To ease the notation, we rename the right-hand side of the above model as: b = cλ , h1 = cπ and h2 = cµ . Then, the associated generic dual problem is formulated as the following: Dual : max s.t.

cTλ λ

+cTπ π

AT λ +T1T π W1T π

+cTµ µ +B T µ ≤ c, +T2T µ ≤ q1 , W2T µ ≤ q2 ,

where λ, π and µ are the dual vectors associated with the primal constraints of stages zero, one, and two, respectively. The decomposition along the scenarios is done on the dual program by using the column generation technique and is explained in this section. Moreover, the decomposition along the stages in the scenario tree, done on the primal program by utilizing Bender’s cuts, is the topic for the next section. Although these decompositions are equivalent by duality, they generate different computational results in terms of the number of iterations and the precision of the algorithms. To best exploit the structure of the dual program let us keep the first dual constraint, AT λ+T1T π+B T µ ≤ c, in the first master as the complicating constraint. Then, assuming that the subproblem SP1 is bounded, the (λ, π, µ) can be expressed as a convex combination of the extreme points (λp , πp , µp ), p ∈ P : X (λ, π, µ) = (λp , πp , µp ) θp , p

Les Cahiers du GERAD

7

G–2009–08

X

θp

= 1,

θp

≥ 0,

p

p ∈ P.

Therefore, the master problem at the first level becomes: P P P ∗ M P : min zMP = cTλ ( p λp θp ) + cTπ ( p πp θp ) + cTµ ( p µp θp ) P P P AT ( p λp θp ) + T1T ( p πp θp ) + B T ( p µp θp ) ≤ c, P p θp = 1, θp ≤ 0, p ∈ P.

s.t.

Now in MP, let α1 be the vector of the dual variables on the first set of constraints and αθ be the dual variable associated with the convexity row. Thus, the subproblem at the first level can be written as: ∗ SP 1 : max zSP 1 =

[cTλ − A α1 ]λ

s.t.

+ [cTπ − T1 α1 ]π

+ [cTµ − B α1 ] µ − αθ

W1T π

+T2T µ W2T µ

≤ q1 , ≤ q2 .

Assuming that the subproblem SP11 defined below is bounded, the vector (λ, π, µ) can also be expressed as a convex combination of the extreme points (λq , πq , µq ), q ∈ Q: X (λ, π, µ) = (λq , πq , µq ) θq , q

X

θq

=

1,

θq



0,

q

q ∈ Q.

Hence, the solution of SP1 can be replaced by an iterative process by using a second master program MP1 and its column generator SP11: P P ∗ T M P 1 : zMP λq σq ) + [cTπ − T1 α1 ]( q πq σq ) 1 = max [cλ − Aα1 ]( qP + [cTµ − B α1 ] ( q µq σq ) P P W1T ( q πq σq ) + T2T ( q µq σq ) ≤ q1 , P q σq = 1, σq ≤ 0, q ∈ Q.

s.t.

Similar to what was done above, let α2 be the vector of dual variables on the first set of constraints in MP1 and ασ be the dual variable associated with the convexity row. Thus, the subproblem is given by: ∗ SP 11 : max zSP 11 =

s.t.

[cTλ − Aα1 ]λ + [cTπ − T1 α1 − W1 α2 ]π + [cµ − T2 α2 − B α2 ]µ − ασ W2T µ ≤ q2 .

At any given iteration, bounds on the optimal value of the master programs are updated. The lower bound on the first master program MP is computed as: ∗ ∗ z MP = max{zMP , z MP + zSP 1 } = max{z MP , z MP + zMP 1 },

while, for the second master program MP1, it is given by ∗ z MP 1 = max{zMP 1 , z 2 + zSP 11 }.

8

G–2009–08

Les Cahiers du GERAD

The master programs are initially defined on a small subset of columns of the full master programs, and the former are called restricted master programs. We denote the restricted masters by RMP and RMP1 for the first and second master programs, respectively. The upper bounds are updated by the current optimal ∗ ∗ and z MP 1 = zRMP solution to the restricted master programs and given by z MP = zRMP 1 . In each level, the iterations terminate when the difference between the upper and lower bounds falls below a predetermined threshold. A pseudo-code for the proposed two-level column generation approach is presented in Algorithm 1.

Algorithm 1: Two-level Column Generation Algorithm Initialization Feasible or artificial columns for RMP; lower and upper bounds (z MP , z¯MP ). Outer iterations While |¯ zMP − z MP | > ǫMP 1.1 Solve the restricted master problem RMP; compute primal variables θp , p ∈ P , and dual variables (α1 , αθ ). Inner iterations Feasible or artificial columns for RMP1; lowers and upper bounds (z MP 1 , z¯MP 1 ). While |¯ zMP 1 − z MP 1 | > ǫMP 1 2.1 Solve the restricted master problem RMP1 at point (α1 , αθ ); compute primal variables θq , q ∈ Q, and dual variables (α2 , ασ ). 2.2 Call subproblem SPB11 at point (α1 , αθ , α2 , ασ ); generate extreme point (λq , πq , µq ), q ∈ Q, and its associated cost dq . 2.3 Update RMP1 using extreme point (λq , πq , µq ) of cost dq . 2.4 Update lower and upper bounds (z MP 1 , z¯MP 1 ). End–while P 1.2 Generate extreme point (λp , πp , µp ) = q (λq , πq , µq ) θq , for p ∈ P , the convex combination of columns in RMP1, and its cost rp . 1.3 Update RMP using extreme point (λp , πp , µp ) of cost rp . 1.4 Update lower and upper bounds (z MP , z¯MP ). End–while

In the inner iterations, given the extreme point (λq , πq , µq ), for q ∈ Q, the constraint matrix of RMP1 is updated by adding a new column, W1T πq + T2T µq , which is independent of λq . The cost dq of this new column is computed as dq = [cTλ − Aα1 ]λq + [cTπ − T1 α1 ]πq + [cTµ − B α1 ]µq . P Similarly, in the outer iterations, given (λp , πp , µp ) = q (λq , πq , µq ) θq , for p ∈ P , the constraint matrix of RMP is updated by adding the generated column AT λp + T1T πp + B T µp . The cost rp of this column is given by rp = cTλ λp + cTπ πp + cTµ µp .

4.2

A Two-level Benders’ Decomposition

The Benders’ decomposition principle is based on a variable partitioning procedure in a large-scale primal problem (Benders, 1962). The method partitions the variables by fixing the so-called complicating variables.

Les Cahiers du GERAD

9

G–2009–08

This reduces the given problem to a more tractable, and hence easier, problem to solve. The latter problem is parameterized in terms of the vector of the complicating variables. The dual to this problem forms the subproblem. In each iteration, the subproblem passes forward the current dual solution (for a fixed vector of complicating variables) to a master program in the form of a Benders’ cut that utilizes the linear programming duality to refine the value of the vector of complicating variables. In the particular case of MSP problems, the partitioning would be in terms of the variables in each stage. Similar to what we implemented on the dual problem when we used the column generation technique, we decompose the generic primal three-stage stochastic problem in two levels by using Benders’ decomposition. 1 This can be done by first considering the vector of the first-stage variables – namely y1 = {y11 , y21 , · · · , ym } as the complicating or fixed variables. This forms the following subproblem, given that y1 is fixed at y 1 : ∗ SP B1(y1 ) : zSP B1(y

1)

= min cT x

s.t.

+q1 y 1

Ax T1 x Bx x, y2 ≥ 0.

+q2 y2

+W2 y2

= cλ = cπ − W1 y1 = cµ − T 2 y 1 ,

Solving SP B1(y1 ) provides an upper bound on the original problem (asssuming that this subproblem is bounded). Therefore, the solution to the original problem consists in solving the above subproblem for the best y1 value, and it is given by the solution of the following (outer) master problem: MPB :

min

y1 ≥0

∗ zSP B1(y1 ) .

Note that the dual feasibility of the subproblem is independent of the value y 1 . Let λ, π, and µ be the dual vectors associated with the primal constraints of stages zero, one, and two, respectively. Then, the dual constraints of SP B1(y1 ) are: AT λ

+T1T π

+B T µ ≤ c, W2T µ ≤ q2 .

The dual solution of SP B1(y1 ) is given by an extreme point (λp , πp , µp ), p ∈ P , for which the objective function takes value cλ λp + (cπ − W1 y1 )πp + (cµ − T2 y1 )µp + q1 y 1 . Therefore, the optimal solution to the subproblem can be interpreted in terms of the best extreme point in P , that is: ∗ zSP B1(y

1)

= maxp∈P cλ λp + (cπ − W1 y1 )πp + (cµ − T2 y1 )µp + q1 y 1 = min s.t.

Θ1 Θ1 ≥

cλ λp + (cπ − W1 y1 )πp + (cµ − T2 y1 )µp + q1 y 1 , p ∈ P.

The outer master problem, which provides a solution to the original problem, can now be written as follows in terms of the extreme points in P and the vector of complicating variables y1 : ∗ M P B : zMP B = min

s.t.

Θ1

Θ1 ≥ cλ λp + (cπ − W1 y1 )πp + (cµ − T2 y1 )µp + q1 y1 , y1 ≥ 0.

p∈P

To complete the two-level Benders’ decomposition, note that problem SP B1(y1 ) can also be solved by Benders’ decomposition by taking the vector of the second-stage variables y2 = {y12 , y22 , · · · , yn2 } as the

10

G–2009–08

Les Cahiers du GERAD

complicating variables. Therefore, given that y2 is fixed at y 2 , the second subproblem appears as: ∗ SP B11(y1 , y 2 ) : zSP B11(y

1 ,y 2 )

= min cT x

s.t.

+q1 y 1 +q2 y2 = cλ = cπ − W1 y 1 = cµ − T2 y 1 − W2 y2 ,

Ax T1 x Bx x ≥ 0.

Solving SP B11(y1 , y 2 ) provides an upper bound on problem SP B1(y1 ) (assuming that the second subproblem is bounded). Therefore, the solution to the first subproblem given y 1 consists in solving the above second subproblem for the best y2 value, and it is given by the solution of the following inner master problem: M P B1(y1 ) :

min

y2 ≥0

∗ zSP B11(y 1 ,y2 ) .

The set of dual constraints for SP B11(y1 , y 2 ) appears as: AT λ

+T1T π

+B T µ ≤ c.

The dual solution of SP B11(y1 , y2 ) is given by an extreme point (λq , πq , µq ), q ∈ Q, for which the objective function takes value cλ λq + (cπ − W1 y 1 )πq + (cµ − T2 y 1 − W2 y2 )µq + q1 y 1 + q2 y 2 . Therefore, the optimal solution to the second subproblem can be interpreted in terms of the best extreme point in Q, that is: ∗ zSP B11(y 1 ,y 2 ) = max q∈Q

cλ λq + (cπ − W1 y 1 )πq + (cµ − T2 y 1 − W2 y2 )µq + q1 y1 + q2 y 2

= min Θ2 s.t. Θ2 ≥ cλ λq + (cπ − W1 y 1 )πq + (cµ − T2 y1 − W2 y2 )µq + q1 y 1 + q2 y2 , q ∈ Q. The inner master problem, which provides a solution to problem SP B1(y1 ), can now be written as follows in terms of the extreme points in Q and the vector of complicating variables y2 : ∗ M P B1(y1 ) : zMP B1(y 1 ) = min

s.t. Θ2 ≥

Θ2

cλ λq + (cπ − W1 y 1 )πq + (cµ − T2 y1 − W2 y2 )µq +q1 y 1 + q2 y2 , q ∈ Q y2 ≥ 0.

In Benders’ decomposition, the master programs are initially defined on a small subset of cuts, and they are called relaxed master programs. We denote the relaxed masters by rMPB and rMPB1(y1 ) for the outer and inner master programs, respectively. Moreover, in the two-level Benders’ decomposition, an outer iteration refers to solving rMPB where the algorithm refines the value of the complicating vector y1 of the first stage. Alternatively, an inner iteration refers to solving rMPB1(y1 ) and, given a fixed value y 1 , it refines the value of the complicating vector y2 of the second stage. To ease the notation, in the outer iterations, we denote the solution to rMPB1(y1 ) as y¯2 and the optimal solution to MPB1(y1 ) as y2∗ , at the end of the iterative process. A cut which is added to rMPB1(y1 ) can be represented as Θ2 ≥ Bq y2 + dq , where Bq is the constraint matrix associated with the vector of variables y2 , and dq is the remaining constant term. To generate this cut, we use the dual extreme point that is computed in SP B11(y1 , y 2 ). Alternatively, in the outer iterations, we denote the solution to rMPB as y¯1 and the optimal solution to MPB as y1∗ at the end of the iterative process. A cut which is added to rMPB can be represented as Θ1 ≥ Bp y1 + dp , where Bp is the constraint matrix associated with the vector of variables y1 and dp is the constant term. This cut is generated by using the

Les Cahiers du GERAD

G–2009–08

11

dual extreme point computed in solving SP B11(y1 , y2∗ ), where y2∗ is the optimal solution of the inner loop for a given value of y¯1 . (Note that this dual extreme point can be computed at the last iteration of the inner loop before the algorithm gets into the outer loop.) In both inner and outer iteration loops, bounds on the optimal value of the master programs are updated. The lower bounds are updated by the current optimal solution of the relaxed master programs and are given ∗ ∗ by z MP B = zrMP B and z MP B1(y 1 ) = zrMP B1(y 1 ) . Moreover, the upper bound on the outer master program MPB is computed as: ∗ ∗ z MP B = min{z MP B , zMP B1(y 1 ) } = min{z MP B , zSP B11(y 1 ,y2∗ ) },

while, for the inner master program MPB1(y1 ), it is given by: ∗ z MP B1(y 1 ) = min{zMP B1(y 1 ) , zSP B11(y 1 ,y 2 ) }.

The iterations terminate when the difference between the upper and lower bounds falls bellow a predetermined threshold. A pseudo-code for the proposed two-level Benders’ decomposition is presented in Algorithm 2. For performance comparisons, we have also implemented a single level Benders’ decomposition where the complicating variables are both y1 and y2 . The subproblem turns out to be SP B11(¯ y1, y¯2 ) while the master problem simultaneously optimizes the y-variables of both stages.

Algorithm 2: Two-level Benders’ Decomposition Algorithm Initialization Initial value y 1 ; initial lower and upper bounds (z MP B , z¯MP B ). Outer iterations While |¯ zMP B − z MP B | > ǫMP B Inner iterations Initial value y 2 ; lower and upper bounds (z MP B1(y 1 ) , z¯MP B1(y1 ) ). While |¯ zMP B1(y 1 ) − z MP B1(y1 ) | > ǫMP B1 2.1 Call subproblem SP B11(y1 , y 2 ); compute the dual extreme point (λq , πq , µq ), q ∈ Q. 2.2 Update rM P B1(y 1 ) with cut Θ2 ≥ Bq y2 + dq . 2.3 Solve rM P B1(y1 ); update the value of y¯2 . 2.4 Update the lower and upper bounds (z MP B1(y1 ) , z¯MP B1(y1 ) ). End–while 1.1 Set y2∗ := y¯2 . 1.2 Call subproblem SP B11(y1 , y2∗ ); compute the dual extreme point (λp , πp , µp ), p ∈ P . 1.3 Update rMPB with cut Θ1 ≥ Bp y1 + dp . 1.4 Solve rMPB; update the value of y¯1 . 1.5 Update the lower and upper bounds (z MP B , z¯MP B ). End–while Set y1∗ := y¯1 . Solve SP B11(y1∗ , y2∗ ) to complete the optimal primal solution in terms of x∗.

12

4.3

G–2009–08

Les Cahiers du GERAD

The Analytic Center Cutting Plane Method

The analytic center cutting plane method can be viewed as an interior-point decomposition algorithm; see Goffin et al. (1992). This method provides a fast algorithm for solving large-scale optimization problems by mixing an interior-point algorithm and cutting planes. To solve a multi-stage stochastic program with the ACCPM, one needs to define an oracle and a query point generator. The special recourse structure in TMB is best exploited by a decomposition method such as the ACCPM. This special structure is an aid in designing the two-level ACCPM by having the query point generators in two levels, namely – the first master program (MP for column generation and the outer master program MPB for Benders) and the second master program (MP1 for column generation and the inner master program MPB1(¯ y1 ) for Benders). The oracles are also defined as subproblems SP11 for column generation and SPB11(¯ y1, y¯2 ) for Benders. Moreover, this recourse structure forms a dual block angular structure in TMB, and a primal block angular structure in its dual. These structural advantages allocate the soultion of the dual problem to the DantzigWolfe reformulation and column generation technique. Equivalently, the primal can be tackled by Benders’ decomposition. In the present paper, we implemented both decomposition methods on TMB and its dual The two-level column generation via ACCPM, denoted by C:AC-AC, is implemented in such a procedure where the ACCPM solves both master programs and forwards the central dual prices to the subproblem. In return, the subproblem generates columns to be added to the second level master program. The pseudo-code for this algorithm appeared in Rasekh and Desrosiers (2008). This decomposition by column generation on the dual program can alternatively be done as C:DW-AC where the first level master program is solved by the classical Dantzig-Wolfe decomposition, and the second level master program is solved by the ACCPM. Equivalently, the two-level Benders’ decomposition via ACCPM, denoted by B:AC-AC, is implemented in the following manner: the ACCPM solves both master programs and refines the value of the vector of the complicating variables in each level by the information feedback given by the subproblem.

5

Computational Results

For the computational experiments, we implemented the two-level decomposition algorithms on the in-house production and outsourcing planning TSM. The code is written in MATLAB version 7.1 for C:AC-AC and C:DW-AC by using two-level column generation. In the C:DW-AC approach, the first linear relaxation of the restricted master problems is solved using LINPROG, the built-in library within MATLAB 7.1, and the second linear relaxation of the restricted master problems is solved by the in-house version of ACCPM. Moreover, in both the two-level column generation approaches, the subproblem is solved by using LINPROG. Similarly, the two-level Benders’ decomposition B:AC-AC is done by solving both master programs by using the ACCPM and the subproblem by using LINPROG. To compare the success of the aforementioned approaches in solving TMB, we generate problems based on a different discrete probability distribution of demand and quality. For example, in Problem 1, we have 3 types of forecasted demand and 3 types of forecasted quality, making 9 scenarios in the first set of decisions, and 3 scenarios in the second set of decisions in stage 1. In stage 2, this comes to a total of 117 scenarios for first and second sets of decisions. Similarly, we have 4 types of demand and 3 types of quality in Problem 2, 8 types of demand and 3 types of quality in Problem 3, 10 types of demand and 5 types of quality in Problem 4, and 13 types of demand and 5 types of quality in Problem 5. The features of the test problems appear in Table 1. Note that in the column generation approach, an additional constraint is added to the first and second master programs as a convexity row. In Rasekh and Desrosiers (2008), we showed that the two-level ACCPM (C:AC-AC) outperformed the two-level DW (C:DW-DW), where in larger size problems the number of iterations of the C:DW-DW approach was 300 times greater as compared to C:AC-AC. This motivated us to use C:AC-AC in solving the TMB; the computational results are given in Table 2. This table presents the number of outer and inner iterations required to reach the optimal solution, along with its relative precision for each problem size. Note that an inner iteration of C:AC-AC corresponds to an

Les Cahiers du GERAD

13

G–2009–08

Table 1: Problem Sizes in the Column Generation Approach

1 2 3 4 5

Number of Scenarios 117 208 832 3100 5239

Primal var. 274 468 1764 6384 10716

Dual var. 260 450 1730 6322 10636

Constraints in MP 3 3 3 3 3

Constraints in MP1 36 48 96 130 234

Constraints in SP11 235 417 1665 6251 10479

Table 2: Computational Results for C:AC-AC 1 2 3 4 5

Outer-Gap 1e-5 1e-5 1e-5 1e-3 1e-4

Inner-Gap 1e- 5 1e-4 1e-5 1e-5 1e-5

Outer-iter 4 4 4 2 3

Inner-iter 17 16 22 17 18

inner loop of the program in which the second master program and the subproblem interact. Alternatively, an outer iteration corresponds to an outer loop where the first master program interacts with the information received from the inner loop. The relative precision for the outer and inner iterations in C:AC-AC barely reaches to 10−5 ; beyond that, it takes the ACCPM hundreds or even thousands of iterations to reach the optimal solution with 10−6 relative precision. As mentioned in Babonneau et al. (2006), although ACCPM has an extremely good convergence rate, its relative precision is not always satisfactory; the recent attempts try to improve the algorithm by using the column (cut) elimination. In Goffin et al. (1996), it is indicated that there is a ”trade-off between required relative precision of optimum and time needed to reach it.” In solving TMB, we explore this trade-off so to reach its optimal solution with higher precision. Since TMB has a small first master problem, we solved the first master program by classical Dantzig-Wolfe decomposition, using LINPROG with its relative accuracy of 10−8 ; whereas, we used ACCPM to solve the larger-sized second master program. The results of this experiment are shown in Table 3. Table 3: Computational Results for C:DW-AC 1 2 3 4 5

Outer-Gap 1e-8 1e-8 1e-8 1e-8 1e-8

Inner-Gap 1e-6 1e-6 1e-5 1e-5 1e-5

Outer-iter 4 5 5 5 6

Inner-iter 21 27 34 29 27

A comparison of the results in Table 2 and Table 3 indicates that the relative precision for both inner and outer gaps are improved in C:DW-AC as compared to C:AC-AC. The number of outer iterations stayed relatively the same, but the number of inner iterations are larger for C:DW-AC. The C:DW-AC reaches the optimal solution with an extremely good precision and a small number of iterations. Finally, we implemented the two-level ACCPM via Benders’ cuts on TMB The computational results for this third decomposition method B:AC-AC are shown in Table 4. In Table 4, outer iteration refers to solving the first master program by ACCPM where the algorithm refines the value of the complicating vector of the first stage. Alternatively, inner iteration refers to solving the second master by ACCPM and refining the value of the complicating vector in the second stage. The

14

G–2009–08

Les Cahiers du GERAD

Table 4: Computational Results for B:AC-AC 1 2 3 4 5

Outer-Gap 1e-2 1e-1 1e-1 -

Inner-Gap 1e- 3 1e-2 1e-2 -

Outer-iter 6 7 5 -

Inner-iter 5 7 4 -

aforemention computational results show that the two-level Benders’ decomposition failed for the larger size problems; for the medium size problems, the level of accuracy only reached 10−1 for outer iterations and 10−2 for inner iteration, which is not satisfactory. In Problem 1, which is considered a small sized problem, the two-level Benders performs better. As was mentioned previously, we also implemented a single level Benders’ decomposition where the complicating variables are both y1 and y2 . In that case, a single master problem needs to be solved. For Problems 1 to 3, we reached a precision of 10−3 in 17 iterations, which is better than what we obtained for the two-level version. Our results are consistentwith the computational results presented in Lisser et al. (1995) for the decomposition of the two-stage stochastic program via Benders’ cuts and ACCPM.

6

Conclusion

In the present paper, we formulated the problem of in-house production and outsourcing planning via the scenario tree for a multi-stage stochastic program. To address one of the recent challenges facing manufacturers in ousourcing their products to overseas countries, we considered the stochastic quality and demand in our model formulation. Moreover, we proposed two types of decompositions namely - the two-level Dantzig-Wolfe reformulation (column generation) of the dual formulation and the two-level Benders’ decomposition of the primal formulation. The two-level decomposition in both approaches consists of two master programs and a single subproblem, where the master programs are solved by ACCPM, and the subproblem is solved by the simplex method. The two-level column generation via ACCPM (C:AC-AC) provides a more precise optimal solution compared to that of the two-level Benders decomposition via ACCPM (B:AC-AC). To improve the relative precision in solving TMB, we changed the C:AC-AC to C:DW-AC, where the first level program is solved by the classical Dantzig-Wolfe decomposition, and the second level is solved by the ACCPM. Among the three decomposition approaches, the C:DW-AC provides the best level of accuracy within a small number of iterations.

References Andrade, R., Lisser, A., Maculan, N. & Plateau, G. 2004, ’Telecommunication network capacity design for uncertain demand’, Computational Optimization and Applications, vol. 29, no. 2, pp. 127–146. Bahn, O., du Merle, O., Goffin, J.-L. & Vial, J.-Ph. 1995, ’A cutting plane method from analytic centers for stochastic programming’, Mathematical Programming, vol. 69, pp. 45–73. Baboneau, F., Beltran, C., Haurie, A., Tadonki, C. & Vial, J.-Ph. 2007, ’Proximal-ACCPM: a versatile oracle based optimization method’ in Optimisation, Econometric and Financial Analysis, Springer Berlin Heidelberg, pp. 69–92. Babonneau, F., du Merle, O. & Vial, J.-Ph. 2006, ’Solving large-scale linear multicommodity flow problems with an active set strategy and proximal-ACCPM’, Operations Research, vol. 54, no. 1, pp. 184–197. Barboza, D. 2007, ’Mattel recalls millions more Chinese-made toys’, http://www.iht.com/articles/2007/08/14/business/toy.php.

Herald Tribune–Business.

Berkelaar, A., Gromicho, J.A.S., Kouwenberg, R. & Zhang, S. 2005, ’A primal-dual decomposition algorithm for multi-stage stochastic convex programming’, Mathematical Programming, vol. 104, no. 1, pp. 153–177.

Les Cahiers du GERAD

G–2009–08

15

Beltran, C., Edwards, N., Haurie, A., Vial, J.-Ph. & Zachary, D.S. 2006, ’Oracle-based optimization applied to climate model calibration’, Environmental Modeling and Assessment, vol. 11, no. 1, pp. 31–43. Ben Amor, H. & Desrosiers, J. 2006, ’A proximal trust-region algorithm for column generation stabilization’, Computers & Operations Research, vol. 33, no. 4, pp. 910–927. Benders, J.F. 1962, ’Partitioning procedure for solving mixed-variables programming problems’, Numerische Mathematik, vol 4, pp. 238–252. Birge, J.R. 1985,’Decomposition and partitioning methods for multi-stage stochastic linear program’, Operations Research, vol. 33, 989–1007. Birge, J.R & Holmes, D.F. 1992, ’Efficient solution of two-stage stochastic linear programs using interior point methods’, Computational Optimization and Applications, vol. 1, no. 3, pp. 245–276. Canez, L., Platts, K. & Probert, D. 2000, ’Developing a framework for make-or-buy decisions’, International Journal of Operations and Production Management, vol. 20, no. 11, pp. 1313–1330. Colombo, M., Gondzio, J. & Grothyey, A. 2006, A warm start for large-scale stochastic linear programs, Technical Report MS-06-004, School of Mathematics, University of Edinburgh. Elhedhli, S. & Goffin, J.-L. 2005, ’Efficient production-distribution system design’, Management Science, vol. 51, no. 7, pp. 1151–1164. Gassman, H.I. 1990, ’MSLiP: a computer code for the multi-stage stochastic linear programming problem’, Mathematical Programming, vol. 47, no. 3, pp. 407–423. Goffin, J.-L., Gondzio, J., Sarkissian, R. & Vial J.-Ph. 1996, ’Solving nonlinear multicommodity flow problems by analytic center cutting plane method’, Mathematical Programming, vol. 76, no. 1, pp. 131–154. Goffin, J.-L., Haurie, A. & Vial J.-Ph. 1992, ’Decomposition and nondifferentiable optimization with the projective algorithm’, Management Science, vol. 38, no. 2, pp. 284–302. Herbig P.A. & O’Hara B.S. 1994, ’The future of original equipment manufacturers: a matter of partnerships’, Journal of Business and Industrial Marketing, vol. 9, no. 3, pp. 38–43. Lee, H.L. & Lee, C.Y. 2007, ’Building supply chain excellence in emerging economies’, International Series in Operations Research & Management Science, vol. 98, Springer US. Lisser, A., Sarkissian, R. & Vial J.-Ph. 1995, Optimal joint synthesis of base and reserve telecommunication networks, Technical Report, Logilab, Department of Management Studies, University of Geneva, Switzerland. L¨ ubbecke, M.E. & Desrosiers, J. 2005, ’Selected topics in column generation’, Operations Research, vol. 53, no. 6, pp. 1007–1023. Oukil, A., Ben Amor, H., Desrosiers, J. & El Gueddari H. 2007, ’Stabilized column generation for highly degenerate multiple-depot vehicle scheduling problems’, Computers & Operations Research, vol. 34, no. 3, pp. 817–834. Rasekh, L. & Desrosiers, J. 2008, A two-level interior-point decomposition algorithm for multi-stage stochastic capacity planning and technology acquisition, HEC Montr´eal, Les Cahiers du GERAD, G–2008–09, 18 p. Rockafellar, R.T. & Wets, R.J.-B. 1991 ’Scenario and policy aggregation in optimization under uncertainty’, Mathematics of Operations Research, vol. 16, no. 1, pp. 119–147. Ruszczynski, A. 1993, ’Parallel decomposition of multi-stage stochastic programming problems’, Mathematical Programming, vol. 58, no. 2, pp. 201–228. Van Slyke, R. & Wets R.J.-B. 1969, ’L-shaped linear programs with application to optimal control and stochastic programming’, SIAM Journal on Applied Mathematics, vol. 17, pp. 638–663. Zhao, G. 2001, ’A log-barrier method with Benders decomposition for solving two-stage stochastic linear programs’, Mathematical Programming, vol. 90, no. 3, pp. 507–536.