Sei sulla pagina 1di 8

Int. J.

Production Economics 129 (2011) 178185

Contents lists available at ScienceDirect

Int. J. Production Economics


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

An efcient heuristic for medium-term planning in shampoo production


Cedric Mocquillon, Christophe Lente, Vincent TKindt
Universite Franc ois-Rabelais de Tours, Laboratoire dInformatique, 64 avenue Jean Portalis, 37200 Tours, France -

a r t i c l e in f o
Article history: Received 1 April 2008 Accepted 13 September 2010 Available online 25 September 2010 Keywords: Shampoo production Single machine problem Production planning Greedy algorithm Min cost ow

a b s t r a c t
This paper presents a single machine problem which occurs in shampoo production at medium-term planning phase. The considered production plant is linked to subsidiary companies which are themselves linked to nal customers. The aim is to answer subsidiary companies requests by keeping their stocks in a window dened by their safety stock and maximum inventory levels. After an introduction, we present a formal denition of the problem. Next, we present a two-phase heuristic algorithm: the rst phase is based on a greedy algorithm and the second phase on the Goldberg and Tarjan algorithm for the minimum cost ow problem. Experimental testings close to industrial instances show that the heuristic performs very efciently. & 2010 Elsevier B.V. All rights reserved.

1. Introduction Production planning is a strategic activity for a production plant. It has been the subject of several studies and is always a very active research eld (see Guide et al., 1999; Guide, 2000; Dolgui and Prodhon, 2007; Nam and Logendran, 1992 for different state-of-theart surveys and Absi and Kedad-Sidhoum, 2008; Fleten and Kristoffersen, 2008; Liu and Tu, 2008; Lukac et al., 2008; Sung and Maravelias, 2008 for particular industrial applications). Production planning is generally divided into three phases of decision: long-term, medium-term and short-term planning. We are interested here in the medium-term planning phase. Many alternative problems of medium-term planning were studied (Karimi et al., 2003). We place ourselves within the framework of the production planning problems with a nite planning horizon, multi-item (the production lines can carry out several different products), with deterministic dynamic demand (the request evolves during time but is known in advance). The production plant is on a single-level (the nish products are manufactured directly from raw materials) and inventory shortage is allowed (in the subsidiary companies warehouses). We distinguish between several different variations of production planning problems: the capacitated lot-sizing problem (CLSP), the economic lot scheduling problem (ELSP), the discrete lot-sizing and scheduling problem (DLSP) and the proportional lot-sizing and scheduling problem (PLSP). ELSP (Gallego and Shaw, 1997) is a single-level, multi-item problem but with stationary demand. For DLSP (Jordan and Drexl, 1998; Bruggemann and Jahnke, 2000) and PLSP (Drexl and Haase, 1995) problems, only one or, respectively, two items can be produced per period which is too restrictive (in our problem, several
Corresponding author. Tel.: +33 2 47 36 14 27.

items can be produced in a same period). In the CLSP problem, the goal is to determine for each item i the quantity to produce xi, for each period such as minimizing the production and storage costs. In the presented shampoo production problem which is a particular CLSP, we do not take into account the production cost, but we have additional constraints on the possible values of xi, . The determination of the CLSP complexity is due to Florian et al. (1980) and Bitran and Yanasse (1982) for the single-item case and to Chen and Thizy (1990) for the multi-item case.Although the problem is NP-hard, several exact methods have been developed in the literature (Barany et al., 1984; Eppen and Martin, 1987; Leung et al., 1989). Our work is related to the period-by-period heuristics such as Eisenhut (1975), Lambrecht and Vanderveken (1979), Dixon and Silver (1981) and Maes and Wassenhove (1986). In this paper we focus on the solution of a real-life industrial application occurring in shampoo production. The objective imposed by the company was to provide a heuristic solution algorithm that compute schedules as good as possible in a reasonably short computational time. Notice that the industrial data involve a high number of orders to plan, which leads us to nd a good compromise between quality and solution time for the proposed heuristic. The remainder is organized as follows. In Section 2, the industrial problem is presented in details. In Section 3, a mathematical programming model is provided in order to clearly state the constraints and objectives of the problem. In Section 4, the proposed heuristic is presented. It is then evaluated in Section 5 by means of computational experiments.

2. The industrial context


E-mail addresses: cedric.mocquillon@univ-tours.fr (C. Mocquillon), christophe.lente@univ-tours.fr (C. Lente), vincent.tkindt@univ-tours.fr (V. TKindt). 0925-5273/$ - see front matter & 2010 Elsevier B.V. All rights reserved. doi:10.1016/j.ijpe.2010.09.023

We consider here an industrial problem of shampoo production. The considered production plant is in direct relationship with some

C. Mocquillon et al. / Int. J. Production Economics 129 (2011) 178185

179

subsidiary companies (SC) located in various countries. These subsidiary companies are in charge of delivering the products to supermarkets which are the nal customers (FC) of the group. The company organization is presented in Fig. 1. The subsidiary companies communicate to the production plant their estimated and denitive order books which are aggregations of customers orders. The production plant goal is to satisfy as much as possible this demand. The production is organized according to a MRP II scheme. We distinguish between three planning levels: long-term planning (18 months), medium-term planning (8 weeks) and short-term planning (1 day). The long-term production planning depends on the needs expressed by the customers. This plan mentions the material requirements, subcontracting, etc. Establishing this plan thus consists in checking the human and machine requirements of the packing lines which produce shampoo bottles, in comparison with the estimated annual production. This plan is communicated monthly to suppliers (in its updated form, this actualization being also made monthly). This plan also establishes the product assignments on packing lines (in particular according to the future evolution of the orders and the technological constraints of the packing lines), so that a product can be manufactured only by one line. The production plan (MPS, Master Production Scheduling) established at the medium-term planning phase indicates the number of teams to be envisaged for each production line and with which skills. This plan also denes the lines which will work, at which time and to produce what. It is possible to deduce from this plan component requirements (bottles, stickers, capsules) and workload details that are weekly sent to the raw material suppliers. The MPS is updated each week. The production plan established at the short-term planning phase presents the scheduling of each production line for the following day. With this schedule is established a procurement plan (it exactly denes the need in components), which is sent to the bottles and capsule suppliers that must deliver these components just-in-time. In this paper, we focus on the medium-term planning phase. The workshop contains m packing lines which produce shampoo products. In the remainder, we call product the ensemble constituted by a bottle unit, a capsule, labels and shower product. The packing results of several consecutive operations conducted by the same packing line: lling of bottles, setting of capsules and labelling. These operations being consecutive, we consider only one meta-operation. The production plant produces a set E of products also called codes. To each packing line i a set of codes Ei is assigned, during the long-term planning phase, so that a code is processed by only

Fig. 2. Evolution of stocks.

Fig. 1. Company organization.

one packing line (i.e. the sets Ei correspond to a partition of the set E of codes processed by the production plant). The packing lines can therefore be considered independently during the mediumterm planning phase. Henceforth, the workshop is modelled by m single machine scheduling problems. In the remainder, we only consider the particular case of a single packing line. To a product (code) are associated a format (the capacity and the bottle shape), a juice (the product lling the bottle) and a set of possible subsidiary companies (mainly determined by the label language). A subsidiary company can sell several codes. For each sold code, the subsidiary company has different levels of stocks: a safety stock level used to immediately answer the supermarkets demand, and a maximum inventory level that should not be exceeded due to high induced storage costs. The actual level of stock for a code is the number of bottles in the warehouse. The latter decreases with the sales of bottles to supermarkets and increases when the subsidiary company receives bottles from the plant. The safety stock and maximum inventory levels evolve over time. An example of the evolution of stocks for a subsidiary company is shown in Fig. 2. During the second period, a sale occurs and the actual stock decreases. In the third period, a shipment of products from the production plant increases the actual stock level. In the remainder, we consider that a subsidiary company is satised for a considered period if its actual stock level is comprised between its safety stock level and its maximum inventory level. The empty shampoo bottles are lled on the packing line with a juice. The juices are prepared in advance and stored in tanks which capacities are multiples of 12 ton. Twelve tons of a same juice are called a batch. A batch must be used on only one packing line for codes with the same format. For a packing line, once a batch of juice has been opened, it must be totally consumed before switching to another juice on that line. A batch corresponds to a xed number of bottles per format (determined by the capacity of the bottles), a format and a juice. For a given format, a batch is divisible into a xed integer number of jobs. The number of bottles associated to a job is called MOQ (for Minimum Order Quantity). To a job is also associated a label, and so, a job is associated to a code. Fig. 3 shows the decomposition of a batch into jobs. Jobs 13 correspond to the couple (Format200, JuiceA) and jobs 4 and 5 to the couple (Format400, JuiceA). In the remainder, we call a couple the association of a format with a juice. To sum up, a code is composed of a set of subsidiary companies and of a couple (format, juice). To a batch is associated a couple (format, juice) and a batch is decomposable into jobs. During the medium-term planning phase, we have to decide how many jobs will be produced per period and per code to satisfy as much as possible subsidiary companies requests while answering batch constraints. Due to the constraints of the bottle suppliers and for contractual reasons, we have for each period the number of bottles to be produced by format. For each period and for each format, the number of bottles to be produced corresponds to an integer number of batches. So we have to

180

C. Mocquillon et al. / Int. J. Production Economics 129 (2011) 178185

Fig. 3. Decomposition of a batch into jobs.

decide, for each of this batch, what juice will be lling the bottles (this subproblem is referred to as the juice/bottle association problem). The second subproblem we have to solve, referred to as the job/code association problem, is to assign to each created job, a code (while answering the constraint that the code associated to the job must be the same than the couples batch job). This implies that for each job we have to decide upon a set of subsidiary companies the job can be sent to. The last problem we are faced with, referred to as the deployment problem, consists in determining the real number of bottles for a given job that will be sent to each associated subsidiary company.

 C: the number of couples (format, juice).  Prodf , , 8f 1 . . . F, 8 1 . . . L: the number of batches of format f to be produced at period .

 Bf , 8f 1 . . . F: the minimum order quantity of format f.  Mf , 8f 1 . . . F: the number of jobs composing a batch of   
format f. It is obtained by dividing the number of bottles of a batch by Bf. FC f ,c , 8f 1 . . . F, 8c 1 . . . C: is equal to 1 if f is the format associated to the couple c; otherwise it is equal to 0. FGf ,g , 8f 1 . . . F, 8g 1 . . . G: is equal to 1 if f is the format associated to the code g; otherwise it is equal to 0. Coupleg,c , 8g 1 . . . G, 8c 1 . . . C: is equal to 1 if c is the couple (juice, format) associated to code g; otherwise it is equal to 0. RSC g,k , 8g 1 . . . G, 8k 1 . . . K: is equal to 1 if the subsidiary company k needs some bottles of code g whatever the planning period; otherwise it is equal to 0. PIk, , 8k 1 . . . K, 8 1 . . . L: the projected inventory for the subsidiary company k at period if there is no production sent during the previous periods. SSk, , 8k 1 . . . K, 8 1 . . . L: the safety stock level for the subsidiary company k at period . MIk, , 8k 1 . . . K, 8 1 . . . L: the maximum inventory level for the subsidiary company k at period . Variables:

3. A mathematical programming model In this section we propose a mixed integer linear programming model for this industrial problem. We rst introduce the main points of the model before providing a detailed version at the end of the section. Notice that in the following model we assume, without loss of generality, that each subsidiary company only requires one code. If this does not hold, data can be duplicated in order to reduce to that conguration. The demand dissatisfaction is modelled by a variation in stock levels. Each subsidiary company k has two different stock levels for each period : a safety stock level denoted by SSk, and a maximum inventory level denoted by MIk, . We know for each subsidiary company the product demands for the planning periods. In the remainder, we use the projected inventory PIk, for each subsidiary company k for each period . This projected inventory corresponds to the stock level if there is no production sent to the subsidiary company, i.e. if we denote by Ok the actual stock level for the rst period and Dk, the demand of the P subsidiary company for period , we have PIk, Ok 1 Dk,u . u If we do not produce anything for a subsidiary company, the stock level will decrease due to the demand. On the other hand, if we deploy (send) a part of a job, the stock will increase. We consider that a subsidiary company is satised at a period if the stock level is comprised between the safety stock level and the maximum inventory level. The quantity of dissatisfaction corresponds to the quantity outside of the windows dened by the safety stock and maximum inventory levels. Notice that there is no difference, for the company, between undershooting the safety stock and exceeding the maximum inventory level: the company is only, by contract, engaged to ensure a stock level inside this stock window for each subsidiary company. Henceforth our goal is to minimize the sum of all dissatisfactions. We now present in details the proposed mathematical formulation. At the end of the section we provide a description of the constraints and of the objective function. Data:

   

 xg, A N, 8g 1 . . . G, 8 1 . . . L: the number of jobs associated


to code g which are produced during period .

 yc, A N, 8c 1 . . . C, 8 1 . . . L: the number of batches for


couple c produced during period .

 zk, A N, 8k 1 . . . K, 8 1 . . . L: the number of bottles sent to


the subsidiary company k at period .

 rk, A N, 8k 1 . . . K, 8 1 . . . L: the real stock level for the


subsidiary company k at period . It is equal to the projected inventory plus the sum of the bottles sent during the previous periods. vk, A N, 8k 1 . . . K, 8 1 . . . L: the dissatisfaction value (number of bottles) of the subsidiary company k at period . Constraints: 1. We have to answer the constraints on the number of bottle formats to be produced: PG g 1 xg, FGf ,g Prodf , Mf , 8f 1 . . . F, 8 1 . . . L. 2. We have to answer the batch constraints: PF PG g 1 xg, Coupleg,c yc, f 1 FC f ,c Mf , 8c 1 . . . C, 8 1 . . . L. 3. We must deliver all bottles for each job to subsidiary companies: PK PF k 1 zk, RSC g,k xg, f 1 FGf ,g Bf , 8g 1 . . . G, 8 1 . . . L. 4. Denition of the real level of stock: P rk, PIk, 1 zk,u , u 8k 1 . . . K, 8 1 . . . L.

 K: the number of subsidiary companies.  L: the number of planning periods (typically 8 weeks) to
schedule.

 G: the number of code products for the considered line.  F: the number of different formats for the considered line.

C. Mocquillon et al. / Int. J. Production Economics 129 (2011) 178185

181

5. Denition of the dissatisfaction levels: (a) vk, ZSSk, rk, , 8k 1 . . . K, 8 1 . . . L, (b) vk, Zrk, MIk, , 8k 1 . . . K, 8 1 . . . L. Objective function: P P min K 1 L 1 vk, . k Constraints (1) ensure that the number of produced jobs, having format f, during period is equal to the imposed number of jobs to produce. These constraints derive from the limited production capacity of bottle makers which leads to the consumption of all the empty bottles when they are delivered to the plant. Constraints (2) force to plan for each period and for each couple (format, juice) an integer number of batches. Constraints (3) imply that the number of delivered bottles is equal to the number of produced bottles. Constraints (4) correspond to the denition of the real level of stock which is equal to the projected inventory plus the sum of the bottles sent to the subsidiary company during the previous periods. Constraints (5) dene the dissatisfaction level of each subsidiary company for each period. Notice that, by denition, the vk, are necessarily non-negative integers. This model involves L (3K+ G + C) variables and L (F+ C+ G + 3K) constraints.

the couple (format; juice). If it is not the case, Coupleg,c 0 and then PGg, Coupleg,c 1Coupleg,c HV % HV. Algorithm 1 presents the algorithm which solves the juice/bottle association problem. Algorithm 1. Juice/bottle association algorithm Input: F: the number of formats L: the number of periods Prod: the matrix containing the number of batches to produce per format and per period begin foreach f A 1,F do foreach A1,L do jPK max0,SS r min0,MI r k, k, k, k, k, end end foreach g A 1,G do foreach A1,L do jPGg, maxK 1 PK k, RSC g,k 1RSC g,k HV k end end foreach c A1,C do foreach A1,L do jPC c, maxG 1 PGg, Coupleg,c 1Coupleg,c HV g end end foreach f A 1,F do foreach A1,L do foreach i A 1,Prodf , do Let be c A1,C the couple such as FC 1 and f ,c 8cu A1,C, PC c, Z PC cu, FC f ,cu c is the couple of highest priority for the format f Solve the job=code association problem for couple c and for period PC c, maxG PGg, Coupleg,c 1Coupleg,c HV g1 end end end end

4. A heuristic algorithm In this section, we propose a two-phase heuristic algorithm. At the rst phase, a greedy algorithm is used to solve the juice/bottle association problem and the job/code association problem, i.e. to determine a production planning of the bottles. At the second phase, a network ow based algorithm is used to solve the deployment problem, i.e. to determine the delivery planning of the produced bottles. This separation between the two phases is due to the high number of jobs to produce: in order to be able to calculate a medium-term planning the complexity of the problem has been heuristically split. Another element which has motivated our choice is that the deployment problem can be optimally solved in polynomial time. In this section we use the notations introduced in the previous section. 4.1. Solution of the juice/bottle and job/code association problems First of all, we solve the juice/bottle association problem which consists in forming the batches for each period. Remember that a batch is dened by a couple (format; juice) and that, for subcontracting reasons, the number of empty bottles per format provided by the bottle makers at each period are given. Henceforth, for each period, the number of batches for each format can be easily deduced. It means that the juice/bottle association problem reduces to decide of the juice that will ll the bottles of a given format inside each batch. At the end of this step, a batch has an associated couple (format; juice). We propose a greedy algorithm to solve this problem: for each batch to produce (for a specic period and for a specic format f), we associate the juice corresponding to the couple of format f with the highest priority. The priority of a couple c is equal to the maximum priority among all associated codes. So, if we denote by PC c, the priority of the couple c for period and PGg, the priority of the code g for period , we have the following relation: PC c, maxPGg, Coupleg,c 1Coupleg,c HV:
g1 G

The second problem we have to solve is the job/code association problem. First, we convert the batch to produce (from the previous algorithm) into jobs by dividing the batch by the MOQ number. For each job to produce, we must decide what the associated code will be and so, a set of possible subsidiary companies to which it will be delivered. At the end of this step, a job must have an associated code. We use another greedy algorithm to solve this problem: for each job to produce (for a specic period and for a specic couple c), we assign the code with the same (format; juice) with the highest priority. The priority of a code g is equal to the maximum priority PK k, among the associated subsidiary companies. So, if we denote by PGg, the priority of the code g at period , we have the following denition: PGg, maxPK k, RSC g,k 1RSC g,k HV:
k1 K

The use of a high value HV in the denition of the couple priority is a trick used to consider only the codes which are associated to

The use of a high value HV in the denition of the code priority is a trick used to consider only the subsidiary companies which are associated to the code. If it is not the case, RSCg,k 0 and then PK k, RSC g,k 1RSC g,k HV % HV. The priority of a subsidiary company k for a period depends on its stocks. If the actual stock level of the subsidiary is lower than its safety stock level, its priority must be positive. If the actual stock is comprised between the safety stock level and the

182

C. Mocquillon et al. / Int. J. Production Economics 129 (2011) 178185

maximum inventory level, then its priority is null. At the end, if the actual stock level is higher than the maximum inventory level, then its priority must be negative. The priority PK k, of a subsidiary company k for a period is dened by 8 > SSk, rk, if rk, A 0,SSk, , < if rk, A SSk, ,MIk, , PK k, 0 > : MI r if rk, A MIk, , 1: k, k, Notice that rk, is the actual stock level at the beginning of the period and is known as the demands are known and the preceding periods have been solved. Algorithm 2 presents the algorithm which solves the job/code association problem. Algorithm 2. Job/code association algorithm Input c : the couple such as 8cu A 1,C,PC c, ZPC cu, FC f ,cu with f A 1,F and FCf,c 1 : the considered period begin f The format of c FC f ,c 1 foreach i 1 to Mf do Let be g A1,G the code such as Coupleg,c 1 and 8gu A1,G, PGg, Z PGgu, Couplegu,c g is the code of highest priority for the couple c Solve the deployment problem for the code g foreach k A 1,K do jPK k, max0,SSk, rk, min0,MIk, rk, end PGg, maxK 1 PK k, RSC g,k 1RSC g,k HV k
end

 rk, , 8k 1 . . . K, 8 1 . . . L: the real level of stock for the


subsidiary company k at period . Constraints: 1. We must deploy all bottles of the job: PK 8 1 . . . L, k 1 zk, B. 2. rk, s denition: P 8k 1 . . . K, 8 1 . . . L, rk, PIk, 1 zk,u . u 3. vk, s denition: 8k 1 . . . K, 8 1 . . . L, vk, Z0, 8k 1 . . . K, 8 1 . . . L, vk, ZSSk, rk, , 8k 1 . . . K, 8 1 . . . L, vk, Zrk, MIk, . Objective function: min PK
k1

PL

vk, :

end

4.2. Solution of the deployment problem The dissatisfaction occurs for a subsidiary company and for a particular period , when the stock level for a product is higher than the maximum inventory level or if it is lower than the safety stock level. The problem of deciding to send a part of a job to a subsidiary company is called the deployment problem. We have modelled this one as a minimum cost ow problem. First of all, we present a modication of the mathematical model presented in the previous section for the case of a particular job. This model will be used later on to prove the correctness of the proposed ow model. We rst recall the data and variables used in the model. Data:

 K: the number of subsidiary companies which need the


considered job.

 L: the number of periods to schedule.  B: the number of bottles associated to the job.  PIk, , 8k 1 . . . K, 8 1 . . . L: the projected inventory for the
subsidiary company k at period if there is no production send.

 SSk, , 8k 1 . . . K, 8 1 . . . L: the safety stock level for the


subsidiary company k at period .

 MIk, , 8k 1 . . . K, 8 1 . . . L: the maximum inventory level for


the subsidiary company k at period . Variables:

 zk, , 8k 1 . . . K, 8 1 . . . L: the number of bottles sent to the


subsidiary company k at period .

 vk, , 8k 1 . . . K, 8 1 . . . L: the dissatisfaction of the subsidiary


company k at period .

We now turn to the network ow model of the deployment problem. Let G [U;V] be the graph with U the set of nodes and V the set of edges. We dene U U1 [ U2 [ U3 where U1 is the set of the subsidiary company starting nodes, U2 is the set of the subsidiary company ending nodes and U3 is the set of job nodes. To each subsidiary company k requiring the code associated to the job, there exists sk, A U1 and ek, A U2 for all periods . To model the stock variation for a period , we connect sk, and ek, with three arcs v1 , v2 , v3 A V. Arc v1 has a capacity equal to SSk, and k, k, k, k, a cost equal to 1, in order to model the situation when the actual stock level is below the safety stock level: in this case, the stock must be lled with some part of the job. Arc v2 has a k, capacity equal to MIk, SSk, and a cost equal to 0, in order to model the situation when the actual stock level evolves in the allowed stock level window. Lastly, arc v3 has a capacity equal to k, innity and a cost equal to 1, in order to model the situation where the actual stock level is higher than the maximum inventory level: in this case, we must penalize the assignment of some parts of the job. Fig. 4 provides an example in which each arc is associated with two values [cost;capacity]. This gure illustrates how, by setting correctly the arc capacities, we can model the stock levels. In this example, since the capacity of the arc entering in sk, is equal to rk, 4SSk,l , the application of a mincost maximum ow algorithm will result in a situation where arc v1 will receive a ow of SSk, (the arc will be saturated), arc v2 a k, k, ow of rk, SSk, and arc v3 a ow equal to 0. This is due to the k, way the costs are set and implies that from the min-cost maximum ow algorithm on the graph we can calculate the real stock level for each subsidiary company and each period. We also have arcs denoted by v4 which connect the nodes ek, k, and sk, 1 with a null cost and a capacity equal to innity. Node set U3 is the set of job nodes and enables to model the bottle assignments made to subsidiary companies. A job node o A U3 corresponds to the production of a job in a period . This node is connected to the source node by an arc v5 with a null cost and a capacity equal to the number B of bottles forming the job. The job node is also linked to all nodes sk, A U1 (with k a subsidiary company which needs the code associated to the job at period ) by an arc v6 A V with a null cost and a capacity equal to the k, number B of bottles forming the job. Notice that there is a sink node, which is connected to nodes ek, L by arcs with null cost and an innite capacity. Now, what remains to be done is to take account of the subsidiary companies demands. It is important to notice that, for a given subsidiary company and a given period, subtracting the demand to the actual stock level is equivalent to adding this demand to the safety stock and maximum inventory levels.

C. Mocquillon et al. / Int. J. Production Economics 129 (2011) 178185

183

Fig. 4. Modelling of the stock evolution.

Fig. 5. A graph example.

Clearly this process does not change the gap, at a given period , between the actual stock level, increased by the number of assigned bottles and decreased by the demand, and the SS and MI levels. Consequently, in the graph, we used the updated values of the SS and MI levels, 8k 1, . . . ,K, 8 1, . . . ,L: SSk, value is increased by Dk, , MIk, value is increased by Dk, , with Dk, the demand of the subsidiary company at period . We give an example of a graph in Fig. 5 resulting from the following data: the considered job is produced on the second period and we have L 2, K 2 where L is the number of periods and K, the number of subsidiary companies which need the considered job. Now, we demonstrate that a solution of the ow implies an optimal solution of the mathematical model presented in this section. We have the following result. Theorem 1. A maximum ow with minimum cost in a graph G is an optimal solution of the deployment problem. Proof. We have to show that the ow cost is equivalent to the mathematical model objective and that all constraints of this model are answered by the ow. If we look at a node which represents the stock in a subsidiary company k at a period , we have: P P Cost k, minOk 1 zk, ,SSk, 1 Dk,u 1 maxOk u u P P u 1 zk, u 1 Dk,u MIk, ,0,

P P Costk, minOk 1 zk, SSk, 1 Dk,u ,0 SSk, u P P Pu u 1 Dk,u maxOk u 1 zk, u 1 Dk,u MIk, ,0, P P Costk, maxSSk, 1 Dk,u Ok 1 zk,u ,0 SSk, u P P Pu u 1 Dk,u maxOk u 1 zk,u 1 Dk,u MIk, ,0, P u Costk, maxSSk, rk, ,0 SSk, u 1 Dk,u maxrk, MIk, ,0: Here we have either: SSk, rk, Z0 or: rk, MIk, Z 0. So we have: Costk, maxSSk, rk, ,rk, MIk, ,0 SSk, vk, maxSSk, rk, ,rk, MIk, ,0: P
u 1

Dk,u ,

At the end, we obtain: P P PL P P PK Cost k, K 1 L 1 vk, K 1 L 1 SSk, PK k PL P k P k 1 1 u 1 Dk,u and as k1 1 SSk, u 1 Dk,u is constant, PL PK is equivalent to minimize minimizing k1 1 Cost k, PL PK vk, . k1 1 The constraints of the mathematical model are answered by the ow. The rk, and vk, denition are only useful to dene the objective function and we have proved that the objective function

184

C. Mocquillon et al. / Int. J. Production Economics 129 (2011) 178185

of the ow and the objective function of the mathematical model are equivalent. At the end, the constraints implying that we must deploy all bottles of the job are answered by the ow at the job node o . & We now state the time complexity of the proposed two-phase heuristic. To solve the deployment problem, we solve a minimum cost ow problem by means of Goldberg and Tarjans (1989) algorithm which is an extension of Kleins (1967) algorithm. At each step, we search for a mean cost cycle with Karps (1978) algorithm. The time complexity of Goldberg and Tarjans algorithm is O(M3N2 log2 N) where N is the number of nodes and M the number of edges. The number of nodes is equal to n+ (L+1) K+ 2 and the number of edges (in the worst case) is equal to L K 3+ n +n K with n the number of jobs, L the number of sub-periods and K the number of subsidiary companies. The priorities of couples and codes are obtained by using queue structure of data. So the total complexity of our heuristic is On log2 n L K 3 n n K3 n L 1 K 22 log2 n L 1 K 2, where n is the number of jobs. Notice that n is equal P P to F 1 L 1 Prodf , Mf . f

5. Computational experiments We have generated some random instances to compare our heuristic to our mathematical model. These instances have been generated to be as close as possible from industrial data which were not available for reasons of condentiality. We only provide here some general information about the characteristics of these instances. We consider six different production lines each one being particular regarding the kind of bottles it can ll (400 or 200 ml shampoo bottles) which inuences its processing speed. There are two kinds of production lines: the fast speed lines and medium speed lines for which we retrieve the real processing speeds from the company. We also retrieve the number of human operators working per day on the production lines. These two kinds of information lead us to calculate the real production capacity of each line. Usually the medium-term planning is done on a time horizon comprised between 6 and 11 weeks (depending on the lines). As we compare our heuristic to Cplex solver on the mixed integer formulation, we limit the number of jobs to consider per line on the planning horizon. Henceforth, we only consider a 6-week planning with production capacities divided by 4 in comparison to the reality. This way to proceed leads to solvable instances for Cplex, but instances which remain hard to solve. Besides, in our instances, each job code is required by at least 1 and at most 4 subsidiary companies (but randomly chosen), as it occurs in practice. Regarding the actual stock levels and demands of the subsidiary companies we generate random values which answer the real market of the company. We have taken care to maintain a ratio demand over production capacity
Table 1 Numerical results. Line #jobs Cplex computing time (s) AVG 0 1 2 3 4 5 36 54 66 112 150 216 129.0 258.9 2682.2 3065.0 3144.8 3707.1 MIN 2.8 6.9 7.8 1816.7 2026.0 2571.5 MAX 2679.0 3660.7 4993.0 5287.5 6060.9 6153.6

between 90% and 100%, for each line, as it occurs in practice. Notice that the number of jobs to process is given by the sum of batch sizes divided by the MOQ of each batch. Henceforth, the number of jobs is deduced from the data generation and is not a parameter of this generation. For each production line we generated 100 instances. We have used the C++ language and the standard template library (STL) to develop our heuristic. To model our graph, we have used the boost graph library (Lee et al., 1999), which provided us with several data structures for modeling a graph. The mathematical model has been solved by ILOG Cplex 10.0. All the tests have been run on a Pentium IV 2.6 Ghz with 512 Mo of RAM and are summarized in Table 1. Table 1 presents the computational results obtained for the six different production line congurations corresponding to the packing system. The second column, denoted by #jobs, contains the number of jobs created for each line. The next three columns provide results on the Computing Time of Cplex solver. Column AVG presents the average computing time value, column MIN presents the minimum value and column MAX presents the maximum value. The next three columns provide similar information regarding the computing time of the heuristic. The last three ones give the Percentage to Optimal (PO). For a given instance, the PO value is dened by 100 OBJ H OBJ Cplex =OBJ Cplex with OBJH and OBJCplex the objective function values calculated by the heuristic and Cplex solver, respectively. Column AVG presents the average PO value, column MIN presents the minimum PO value and column MAX presents the maximum PO value. The heuristic gives good results on the pseudo-industrial generated instances. For any considered line, the average percentage to the optimal is below 2% and for four of them the average percentage is below 1%. In the worst case (production line 5), the percentage to the optimal is acceptable (below 4%). Besides, our heuristic is faster, on the average, than Cplex solver. Except for the production line 2, the maximum computing time needed by our heuristic is below the minimum computing time needed by Cplex solver. For the second production line, the minimum value of the ratio between the computing time needed by Cplex and the computing time needed by our heuristic is 1.28 which implies that our heuristic remains fastest in the worst case. We have also conducted some testings of the heuristic on industrial instances provided by the company. We have selected 4 packing lines with real production proles and on a 7-week planning we have compared the heuristic to the plannings provided by the human planners of the company. Usually, building such a planning requires several hours for these planners. The heuristic was capable in less than 1 min to provide plannings that outperformed those calculated by the planners. We measured the deviation of the actual stock levels to the safety stocks, whenever the former were below the latter for a given code and a given period. When the planning calculated by hand led to an actual stock level below the safety stock, on the average, the heuristic reduces this gap by about 18%, i.e. the heuristic

Heuristic computing time (s) AVG 2.7 3.8 5.6 9.1 13.2 22.5 MIN 2.5 3.6 4.8 8.2 11.4 20.9 MAX 3.0 3.9 7.8 10.5 14.1 25.3

Percentage to optimal AVG (%) 0.02 0.21 0.70 0.72 1.34 1.63 MIN (%) 0.00 0.00 0.01 0.04 0.05 0.12 MAX (%) 0.36 0.47 1.41 2.38 3.66 3.90

C. Mocquillon et al. / Int. J. Production Economics 129 (2011) 178185

185

calculated a planning with less shortage. Notice that this conclusion is really a good conclusion since shortage cannot be avoided in practice due to the fact that the company receives each week a given amount of empty bottles (due to contractual reasons with the suppliers). Henceforth, the planning is strongly constrained and for some weeks there are not enough empty bottles available to satisfy all the demands. Regarding the maximum inventory level the heuristic gave similar results to those obtained at hand by the planners, i.e. when the actual stock level is above the maximum inventory level both the heuristic and the planners took the same decisions. Again, the xed amount of available empty bottles per week constraints the problem: sometimes it is necessary to have high stock levels because of the forecasted demands in the next weeks.

batches of shampoo by batches of glass paste. Again, the algorithm proposed in this paper can be useful to derive possibly efcient algorithms. References
Absi, N., Kedad-Sidhoum, S., 2008. The multi-item capacitated lot-sizing problem with setup times and shortage costs. European Journal of Operational Research 185 (3), 13511374. Barany, I., Roy, T.J.V., Wolsey, L.A., 1984. Strong formulations for multi-item capacitated lot sizing. Management Science 30 (10), 12551261. Bitran, G.R., Yanasse, H.H., 1982. Computational complexity of the capacitated lot size problem. Management Science 28 (10), 11741186. Bruggemann, W., Jahnke, H., 2000. The discrete lot-sizing and scheduling problem: complexity and modication for batch availability. European Journal of Operational Research 124 (3), 511528. Chen, W., Thizy, J., 1990. Analysis of relaxations for the multi-item capacitated lotsizing problem. Annals of Operations Research 26 (14), 2972. Dixon, P., Silver, E., 1981. A heuristic solution procedure for the multi-item, single level, limited capacity, lot sizing problem. Journal of Operations Management 21 (1), 2340. Dolgui, A., Prodhon, C., 2007. Supply planning under uncertainties in MRP environments: a state of the art. Annual Reviews in Control 31 (2), 269279. Drexl, A., Haase, K., 1995. Proportional lot sizing and scheduling. International Journal of Production Economics 40, 7387. Eisenhut, P., 1975. A dynamic lot sizing algorithm with capacity constraints. AIIE Transactions 7 (2), 170176. Eppen, G.D., Martin, R.K., 1987. Solving multi-item capacitated lot sizing problems using variable redenition. Operations Research 35 (6), 832848. Fleten, S.E., Kristoffersen, T.K., 2008. Short-term hydropower production planning by stochastic programming. Computers & Operations Research 35 (8), 26562671. Florian, M., Lenstra, J., Kan, A.R., 1980. Deterministic production planning algorithms and complexity. Management Science 26 (7), 669679. Gallego, G., Shaw, D.X., 1997. Complexity of the ELSP with general cyclic schedules. IEEE Transactions 29 (2), 109113. Goldberg, A., Tarjan, R., 1989. Finding minimum cost circulations by cancelling negative cycles. Journal of the ACM 36 (4), 873886. Guide, V.D.R., 2000. Production planning and control for remanufacturing: industry practice and research needs. Journal of Operations Management 18 (4), 467483. Guide, V.D.R., Jayaraman, V., Srivastava, R., 1999. Production planning and control for remanufacturing: a state-of-the-art survey. Robotics and ComputerIntegrated Manufacturing 15 (3), 221230. Jordan, C., Drexl, A., 1998. Discrete lotsizing and scheduling by batch sequencing. Management Science 44 (5), 698713. Karimi, B., Ghomi, S.F., Wilson, J., 2003. The capacitated lot sizing problem: a review of models and algorithms. Omega 31 (5), 365378. Karp, R.M., 1978. A characterization of the minimum cycle mean in a digraph. Discrete Mathematics 23 (3), 309311. Klein, M., 1967. A primal method for minimal cost ows with applications to the assignment and transportation problems. Management Science 14 (3), 205220. Lambrecht, M.R., Vanderveken, H., 1979. Heuristic procedures for the single operation, multi-item loading problem. AIIE Transactions 15 (4), 319325. Lee, L.Q., Siek, J.G., Lumsdaine, A., 1999. The generic graph component library. ACM SIGPLAN Notices 34 (10), 399414. Leung, J., Magnanti, T., Vachani, R., 1989. Facets and algorithms for capacitated lot sizing. Mathematical Programming 45 (2), 331359. Liu, X., Tu, Y., 2008. Production planning with limited inventory capacity and allowed stockout. International Journal of Production Economics 111 (1), 180191. Lukac, Z., Soric, K., Rosenzweig, V.V., 2008. Production planning problem with sequence dependent setups as a bilevel programming problem. European Journal of Operational Research 187 (3), 15041512. Maes, J., Wassenhove, L.V., 1986. A simple heuristic for the multi-item single level capacitated lot sizing problem. Operations Research Letters 4 (6), 265273. Nam, S., Logendran, R., 1992. Aggregate production planninga survey of models and methodologies. European Journal of Operational Research 61 (3), 255272. Sung, C., Maravelias, C.T., 2008. A mixed-integer programming formulation for the general capacitated lot-sizing problem. Computers & Chemical Engineering 32 (12), 244259.

6. Conclusion and future researches In this paper, we have developed an original two-phase heuristic based on hybridization between a greedy algorithm and the Goldberg and Tarjans algorithm for the minimum cost ow problem. We have validated this approach by proving the equivalency between our mathematical model and the min-cost ow problem. Our method has provided us good results on randomly generated instances which have been generated to be as close as possible from industrial data. These results show that the heuristic provides solution at most at 2% of the optimal solution value and that it is efcient in solving industrial-like instances. We have also made some tests on real instances and compared the obtained medium-term plannings with the one handmade by the planners of the company. The obtained results show that we globally reduce by almost 18% the shortage of bottles for subsidiary companies which have a stock level below their safety stock. Besides, one of the strength of this heuristic relies on its easy adaptation to any batch oriented production process as soon as stock levels of customers/subsidiary companies have to be taken into account. Among the components of the proposed heuristic, the deployment procedure is of a high interest for solving other industrial problems. This procedure enables to calculate in polynomial time, the optimal allocation of orders to customers in order to meet safety stock and maximum inventory constraints (which is often one of the objectives when solving real-life planning problems in the industry). This problem is meaningful also in the context of in assembly systems for which a supplier provide components to several companies (examples can be found in the automotive industry, in the chemical process industry,y). The proposed heuristic is obviously dedicated to the problem of packing shampoo bottles, however, the way it decomposes the problem can be easily adapted to solve other problems in which batch oriented production is concerned. Examples, among others, of batch oriented production can be found in chemical process industry, in glass bottle industry or in steel industry. At last, the planning problem in shampoo production tackled in this paper is really similar to planning problems occurring in the glass bottles production industry for which packing lines are replaced by moulding machines and

Potrebbero piacerti anche