document de travail 2004-009

advertisement
Publié par :
Published by :
Publicación de la :
Faculté des sciences de l’administration
Université Laval
Québec (Québec) Canada G1K 7P4
Tél. Ph. Tel. :
(418) 656-3644
Fax :
(418) 656-7047
Édition électronique :
Electronic publishing :
Edición electrónica :
Aline Guimont
Vice-décanat - Recherche et partenariats
Faculté des sciences de l’administration
Disponible sur Internet :
Available on Internet
Disponible por Internet :
http ://www.fsa.ulaval.ca/rd
rd@fsa.ulaval.ca
DOCUMENT DE TRAVAIL 2004-009
HEURISTICS FOR THE N-PRODUCT, M-STAGE, ECONOMIC
LOT SIZING AND SCHEDULING PROBLEM WITH
DYNAMIC DEMAND
Fayez F. BOCTOR
Patrice POULIN
Version originale :
Original manuscript :
Version original :
ISBN – 2-89524-199-6
Série électronique mise à jour :
On-line publication updated :
Seria electrónica, puesta al dia
02-2004
HEURISTICS FOR THE N-PRODUCT, M-STAGE, ECONOMIC LOT
SIZING AND SCHEDULING PROBLEM WITH DYNAMIC DEMAND
Fayez F. BOCTOR and Patrice POULIN
Network Organization Technology Research Center, Université Laval, Ste-Foy, Quebec, Canada G1K-7P4
ABSTRACT
This paper presents new composite heuristics for solving the N-product, M-stage lot sizing
and scheduling problem with dynamic demands and limited production capacity. The first phase
of these composite heuristics aims at finding a feasible solution. This solution is such that for
each period and for each product, the lot size equals the net demand of the considered period
plus the demand of a number of upcoming periods. If capacity does not allow satisfying all
demands of a given period, we try finding earlier periods where we can produce the missing
units. The second phase is an improvement procedure which recursively attempts to move back
each lot, provided that it is both more economical to do so and capacity feasible.
We also provide two variants of this heuristic to handle the case where production capacity
can be increased by using overtime. Overtime is a usual practice in real life which allows in
many cases to lower the overall cost The first variant constructs the initial solution without
recourse to overtime and introduces overtime only during the solution improvement phase. The
second one considers overtime during both the first and second phases. The performance of the
proposed heuristics is numerically assessed and the most efficient ones are identified.
§1. INTRODUCTION
Manufacturing firms constantly face the important problem of determining a production plan
which satisfies demand requirements without exceeding capacity limits and yet yields the lowest
cost possible for setups and inventories. The problem of determining a production plan is double.
It does not only involve finding the economic number of units to produce in a given period, but
also requires the planner to establish a production schedule which indicates when to start the
production of a given product and when it ends. This problem has been referred to as the
Economic Lot sizing and Scheduling Problem (ELSP). There are two main versions of the ELSP:
the static one, where demands are constant over an infinite horizon and the dynamic version
where demands vary over a finite horizon. Furthermore, each of these two classes can be divided
into two subclasses according to the number of stages (machines) involved in the production
process. The single-stage, static ELSP was analyzed by Hanssmann (1962) who introduced the
common cycle approach for solving the N-product problem. Bomberger (1964) added the
condition that cycle times of individual items should be integer multiples of some basic period
called the fundamental cycle and used dynamic programming to solve the resulting problem.
1
Boctor (1982) showed that this condition is a necessary condition for feasibility. Stankard and
Gupta (1969) and Saipe (1977) suggested dividing the set of N products into 2 groups and
proposed different heuristics to construct a production schedule. Haessler and Hogue (1976)
used the condition that all cycle times be integer multiples of a fundamental cycle, restricted
these multiples to the powers of 2 and proposed an iterative procedure to solve the problem.
Haessler (1979) simplified this procedure and proposed a less time consuming heuristic. Boctor
(1987) suggested dividing the product set into several groups and assumed that the products
belonging to the same group have the same cycle time. Other contributions are due to
Elmaghraby (1978), Fujita (1978), Park and Yun (1984) and Davis (1990). A comparison of
some of these solution approaches is given in Boctor (1985) and a survey is given in the
excellent paper by Elmaghraby (1978) and in Ouenniche and Boctor (1996).
Wagner and Whitin (1958) were the first to deal with the single product, single machine case
with dynamic demands. They used dynamic programming to find the optimal solution but they
assumed that production is instantaneous and that machine capacity is unlimited. Many others
contributed to the uncapacitated, dynamic lot-sizing problem but in this paper we focus on the
capacitated version of the problem.
The single stage lot sizing problem with limited capacity and dynamic demands attracted the
attention of many researchers. Some of them suggested using dynamic programming to solve the
problem (Florian and Klien 1971), others tried to use approaches based on Lagrangean relaxation
(Thizy and Van Wassenhove 1985) or to add valid inequalities to the problem formulation
(Leung et al 1989). But most of the reported solution attempts are based on heuristic approaches.
These heuristic approaches can be divided into construction heuristics (Eisenhut 1975, Dixon
and Silver 1981, Maes and Van Wassenhove 1986 and Atkins Iyogun 1988) and improvement
heuristics (Dogramaci et al 1981 and Karni and Roll 1982).
The more general class of this problem deals with N products to be manufactured on M
machines. Although several authors have dealt with the uncapacitated version of this multi-stage
problem (see the review by Ouenniche and Boctor 1996), very few contributions deal with the
capacitated version. Maes and Wassenhove (1991) addressed the dynamic demand case and
attempted to generalize their single product A/B/C heuristic. But the resulting method does not
2
guarantee that the capacity constraints will be satisfied if processing times differs from one
machine to another or if there are more than 2 machines involved in the production process. ElNajdawi and Kleindorfer (1993) proposed a method based on the common cycle approach that
assumes a constant demand over an infinite planning horizon. More recently, Ouenniche and
Boctor (1998 2001a, b and c) presented four solution heuristics for the multiple stage, N-product,
constant demand problem. These methods essentially differ in the way of dividing the products
into groups, but all assumes that cycle times are integer multiples of some fundamental cycle.
This quick review reveals that, except for Maes and Wassenhove’s heuristic, the methods
proposed to solve the multi-product, multi-stage ELSP either assume a constant demand or
unlimited production capacity. Therefore, an efficient method that could solve problems
involving variable demand and limited capacity is not only needed, but also more suitable for
practical applications. Consequently, the purpose of this paper is to propose such a method. We
start in section 2 by presenting a mathematical formulation of the problem. It is followed in
section 3 with the heuristics that we propose to solve it. The results of the numerical tests for
assessing the performance of our heuristics are given in section 4. In section 5 we modify the
proposed formulation and heuristics to allow for overtime. Also, in this section we provide an
evaluation of the modified heuristics. Finally, section 6 gives the conclusions of our work.
§2. PROBLEM FORMULATION
The formulation presented in Figure 1 is based on the following assumptions and notation:
1. There are N different products to be produced.
2. Each product requires at most M processing stages.
3. Products are manufactured in a flow shop environment.
4. At each stage, there is only one machine available on a continuous basis.
5. No machine can process more than one product at a time.
6. The planning horizon is composed of T periods.
7. External demands only exist for finished products.
8. Demand figures are known in advance and vary from one period to another.
9. Backlogs are not allowed.
3
10. Processing times, setup times; setup costs and inventory holding costs are known and
deterministic.
11. Setup times and costs are sequence independent.
12. Inventory costs are directly proportional to the number of units in inventory and holding time.
13. Work-in-process inventories are allowed.
14. Production capacity is limited.
15. Between 2 lots of different products, machines require settings.
16. At most one lot of each product is manufactured in a given time period.
17. Preemption is not allowed. Thus, the production of a lot has to be completed once started.
18. Transfer of units between stages is done on a continuous basis with negligible transfer time
and cost.
Indexes
i = 1, K , N
product index
j = 1,K , M
stage index
t = 1,K , T
period index
Parameters
a ij
unit processing time of product i at stage j.
d it
demand of product i for period t.
hij
unit inventory holding cost of product i at stage j for one period.
rij
time required for setting up stage j before manufacturing product i.
sij
setup cost at stage j before manufacturing product i.
C jt
production capacity expressed in working time at stage j during period t.
B ijt
maximum number of units of product i that can be produced at stage j during period t;
thus Bijt=(Cjt - rij)/aij.
Decision variables
x ijt
number of units of product i manufactured at stage j during period t.
Yijt
binary variable indicating if product i is manufactured at stage j during period t.
I ijt
number of units of product i hold in inventory at stage j during period t.
4
Based on the assumptions presented above and using the given notation, the problem can be
formulated by model I given in Figure 1.
N
M
T
Min ∑∑∑ ( s ij Yijt + hij I ijt )
(1)
i =1 j =1 t =1
Subject to
I ijt −1 + xijt − I ijt = xi , j +1,t
I iMt −1 + xiMt − I iMt = d it
; i = 1,..., N , j = 1,..., M − 1, t = 1,..., T
; i = 1,..., N , t = 1,..., T
(2)
(3)
∑ aij xijt + rijYijt ≤ C jt
; j = 1,..., M , t = 1,..., T
(4)
xijt ≤ Bij Yijt
xijt , I ijt ≥ 0
Yijt ∈ {0,1}
; i = 1,..., N , j = 1,..., M , t = 1,..., T
; i = 1,..., N , j = 1,..., M , t = 1,..., T
; i = 1,..., N , j = 1,..., M , t = 1,..., T
(5)
(6)
(7)
N
i =1
Figure 1: Model I
The objective of Model I is to minimize the sum of setup costs and inventory holding costs of
both final products and work in progress. Constraints (2) and (3) ensure demand satisfaction of
all products for the whole planning horizon. Constraint (4) guarantees that, for each stage and
every time period, the sum of setup and processing times does not exceed the available working
time. Constraint (5) ensures that, for each stage and for each time period, the machine is setup to
process product i if we decide to produce this product during the considered period. Finally,
constraint (6) is the usual non-negativity constraints and constraint (7) is the binary constraint of
the setup variables.
It is very time consuming to solve this model to optimality for real-life problems. Thus, unless
we can reduce the complexity of the model, efficient heuristics are needed in most practical
situations. To reduce the complexity of this model we may restrict the lots of the same product to
be of equal sizes through different stages; i.e., we require that all xijt be equal whatever the stage
j. Thus we can reduce the number of variables xijt and drop the index j. Also we can see that, in
this case, the work-in-process inventory from period to period is nil (what is produced at stage j
during period t is completely used by stage j+1 at the same period). So we may again reduce the
number of decision variables as we do not need the variables Iijt for j=1,…, M-1. We only need
the variables IiMt and, to simplify our notation, we may drop the index M. Another consequence
of the added restriction is that, for a given time period t and a given product i, all the setup
5
indicators Yijt, j=1,…, M should have the same value. Again this allows us to drop the index j and
reduce the number of the Yijt variables.
M
In addition, let si = ∑ sij , Bit = min ( Bijt ), and hi denotes the unit inventory holding cost of the
j
j =1
end product i (instead of hiM), the model of Figure 1 becomes the following model that will be
called Model II:
N
Min:
T
∑ ∑ (si Yit + hi I it )
(8)
i =1 t =1
Subject to:
I it −1 + xit − I it = d it
; i = 1,..., N , t = 1,..., T
(9)
∑ aij xit + rijYit ≤ C jt
; j = 1,..., M , t = 1,..., T
(10)
xit ≤ Bit Yit
xit , I it ≥ 0
Yit ∈ {0,1}
; i = 1,..., N , t = 1,..., T
; i = 1,..., N , t = 1,..., T
; i = 1,..., N , t = 1,..., T
(11)
(12)
(13)
N
i =1
Unfortunately, solving model II is still time consuming for large problems. So, hereafter, we
propose a new and efficient heuristic to solve the multi-product, multistage dynamic lot sizing
and scheduling problem. But first let us notice that, as no back logging is allowed, the condition:
N
s
s
i =1
t =1
t =1
∑[aij (∑ d it − I io)] ≤ ∑ C jt
; s = 1,..., T , j = 1,..., M ,
(14)
is a necessary feasibility condition for Model II. This condition can easily be derived from
constraints (9) and (10). Also we can see that the condition:
N
s
N
s
i =1
t =1
i =1
t =1
∑ [aij (∑ d it − I io)] + s∑ r ij ≤ ∑ C jt ; s = 1,..., T , j = 1,..., M ,
(15)
is a sufficient feasibility condition as it implies that, if it is satisfied, there will always be a
feasible solution for the model.
§3. THE PROPOSED HEURISTIC
The proposed heuristic is a two phase composite heuristic. The purpose of the first phase is to
build a feasible solution by looking ahead in order to select future demands to be incorporated in
the lot of the current period. When a feasible solution is obtained, the second phase of the
heuristic begins and attempts to reduce the total cost of the solution by a series of recursive
modifications to the schedule. Notice that within this heuristic we require that each product have
6
the same lot size through different stages; this can be expressed by xijt = xit ∀j. In this case the
Work-in-process inventory from period to period will remain unchanged over the horizon (at the
same level as the initial inventory Iijo if there is any); only the inventory of the final product will
vary.
Phase 1: Feasible Solution
Starting at period 1, the lot size of each product is set equal to its net demand, i.e. the difference
between the real demand and available inventory. If the demand of a given product can be
entirely satisfied from inventory, then there shall be no lot planned for this particular product at
this time. If all demands can be entirely manufactured and residual capacity exists, then an
attempt to increase the lot sizes is undertaken. On the other hand, if the available capacity does
not allow for the net demand of all products to be entirely manufactured in the current period, a
backtracking procedure is undertaken. The framework of this first phase is illustrated in Figure 2
and the details of its two components (the procedure for increasing lot sizes and the backtracking
procedure) are given afterwards.
For t = 1 to T Do
For i = 1 to N Do
xijt = d it − I ij ,t −1 ; j = 1,..., M
DoEnd
If Residual_Capacity > 0 Then Increase_Lot_Sizes
Else If Residual_Capacity < 0 Then Backtrack
DoEnd
Figure 2: Phase 1: Building a feasible solution
Increasing Lot Sizes
If residual capacity exists, it might be economical to increase lot sizes in the current period.
While this may increase inventory-carrying costs, it may save setup costs in later periods. This
can only be achieved if a later demand can be entirely produced in this period. Otherwise, there
is no setup cost savings and inventory costs will be higher. Consequently this procedure only
considers entire future demands. This must be made in a way that minimizes the total cost. To do
so, we would require that the marginal inventory costs be lower than the savings on setup costs.
However, the multi-product aspect of the problem and the constraints on production capacity
7
suggest that we use a more efficient selection criterion. By assigning a saving index to demands
which decreases as the time period index increases, we model the preference to select demands
that are closer to the current period than demands far away. This preference can be justified by
lower inventory carrying costs as demands are closer to the current period. If such index is
assigned to all products based on the savings that will result from producing demands earlier,
then we can select the demand, among all products, that yields the highest savings. Once a
demand has been selected, we verify that its inclusion in the current period is feasible, i.e. there
is sufficient capacity to produce it. If so, the demand is included. If not, this product is discarded
for the current period. This process, illustrated in Figure 3, is repeated until all demands are
considered for inclusion or the whole capacity is allocated.
While Still_other_demands_to_be_tested_in_period_t = True Do
Select_future_demand_having_the_highest_index_to_be_included_in_period_t: d i ,w
If Sufficient_capacity_for_inclusion = True Then xijt = x ijt + d iw ;j=1,…,M
Else Discard_this_product_for_period_t
WhileEnd
Figure 3: Increasing lot sizes
Three saving indexes were used during the numerical testing of the proposed heuristic. The
first one, denoted U 1iqt , is an adaptation of Eisenhut’s (1975) index. This index approximately
measures the average savings that result from adding the demand diq to the lot to be produced at
2
t. The second criterion, denoted U iqt
, is the exact value of these average savings and the third
one, denoted U 3iqt , measures the marginal savings.
Table 1: Saving indexes used for selecting future demands
Eisenhut’s criterion
1
=
U itq
Exact average savings criterion
2
U itq
Marginal savings criterion
3
=
U itq
8
[S i − IC itq ]
ai d iq (q − t )
[S + IC
=
(16)
2
− hi (q − t ) 2 d iq
ai d iq (q − t )(q − t − 1)
i
itq
[S − h (q − t )d ]
i
i
ai d iq
iq
]
(17)
(18)
In Table 1, Si is the sum over all stages of setup costs of i, ICitq is the inventory holding cost
that results from producing the demand of periods t through q at the current period t, hi is unit
inventory holding cost of i, and ai is the sum over all stages of unit processing times of product i.
These savings indexes can be derived as follows. Let Citq be the average cost per period that
results from producing the demand of periods t through q at the current period t, then we have:
C itq =
S i + I itq
.
(q − t )
(19)
q
Where:
I itq = ∑ hi ( s − t ) d is
(20)
s =t
The second savings index given by (17) is the gain (per period) that can be reached by adding
the quantity diq to the lot to be produced at t (i.e., the difference between Cit q-1 and Citq) divided
by the time required to produce the demand of product i for period q, thus:
2
U itq
=
C itq − C it ,q −1
ai d iq
S i + I itq − (q − t ) hi d iq
ai d iq (q − t )(q − t − 1)
2
=
Eisenhut’s (1976) savings criterion (16) is an approximation of (17) where the term (q-t)2hidiq
is replaced by 2Iitq and the denominator factor (q-t-1) is replaced by (q-t). To see how this
criterion was derived, the reader is referred to Eisenhut’s original paper.
Finally, the third savings criterion, U 3iqt , called here the marginal savings index is simply the
difference between the setup cost Si that should be paid if the demand diq is to be produced at
period q and the additional inventory holding cost if this demand is added to the lot to be
produced at t. This difference is divided by the processing time of diq.
The Backtracking Procedure
The backtracking procedure (see Figure 4) is undertaken when the net demand of a given
period cannot be entirely produced during the period in which the demand occurs because of a
lack of capacity on one or more machines. Therefore one or more earlier periods with residual
capacity must be found in order to satisfy the excess demand. The first step of the backtracking
procedure is to set all lot sizes of the period to zero. Then among products with a net demand
greater than zero, the one with the highest unit holding cost is chosen and its lot size is set to the
maximum between its net demand and the maximum quantity that can be produced with the
9
remaining capacity. The next product with the highest unit holding cost is then chosen and the
process is repeated. When the capacity is fully utilized in this period, we increase the previous
lot of every product for which the demand is not satisfied until the corresponding demand is
satisfied or until the capacity limit of the previous period where a lot is scheduled, is reached.
Set xit =0, ∀i
{Produce as much as possible or as much as needed in period t of the products having the largest unit inventory holding cost}
While Residual_Capacity = True
Find_product_i_with_the_highest_unit_holding_cost
xit =max {Maximum allowed by remaining capacity(t), Unsatisfied Demand(i)}
WhileEnd
{Increase the existing lots as much as possible or as much as needed}
While Other_product_to_verify = True
{Consider products in decreasing order of their inventory holding cost}
Find_product_i_with_the_highest_unit_holding_cost
q=t-1
Repeat Until Demand_satisfied = True or q = 0
If xiq >0 then xiq = xiq +max{Max. allowed by capacity(q), Unsatisfied Demand (i)}
q=q-1
RepeatEnd
WhileEnd
{If necessary, create new lots and produce as much as possible or as much as needed}
While Other_product_to_verify = True
{Consider the products in decreasing order of their inventory holding cost}
Find_product_i_with_the_highest_unit_holding_cost
q=t-1
Repeat Until Demand_satisfied = True or q = 0
If xiq =0 then xiq = max{Max. allowed by capacity(q), Unsatisfied Demand (i)}
q=q-1
RepeatEnd
WhileEnd
Figure 4: Backtracking procedure
If the demand of one or more products is still unsatisfied, for each such product, an extra lot is
added as late as possible but before the current period. Its size is set to the maximum between the
number of units needed to satisfy the demand and the quantity that can be produced within the
capacity limit of the chosen period. Thus this backtracking procedure tries to produce the needed
products as late as possible (to reduce their inventory cost) with the least possible extra setups.
Notice that if a part of the demand of period t is not satisfied and if the capacity in periods 1 to
t-1 can not allow producing the unsatisfied demands, the problem has no feasible solution.
10
Phase 2: Solution Improvement
It might be possible to improve the solution obtained at phase 1 by reducing the number of
lots (consequently the number of setups) through conjoining two or more lots of the same
product. That should be done only if it leads to a total cost decrease without violating the
capacity constraints of any period. The total costs will decrease, if and only if, the additional
inventory holding cost, incurred by moving back a lot to an earlier period and combining it with
the previous lot, is less than the savings resulting from the reduction of one setup.
The improvement procedure used within our heuristic (see Figure 5) starts with the last period
of the planning horizon and tries to move first the product requiring the least production time
including setup time. The closest period with an existing lot of the same product is found and if
moving the product to this period leads to a cost reduction without exceeding its capacity, then
the transfer is done. Otherwise, the second closest period with an existing lot is determined and
checked for savings and capacity. This is repeated until the lot is transferred or until we reach the
conclusion that no savings can be made by transferring it. The procedure then continues with the
next product requiring the least production time. Once all products of a period are tested, the
procedure is applied to the previous period and so on.
The above procedure is repeated until no improvement is found during a complete pass (i.e.:
from T down to 1). Notice that if one or more moves have been made during a pass, it might
have freed enough capacity in some periods to allow a lot of another period to be moved yielding
further improvements. That is why we stop the procedure if and only if no improvement is
achieved during a complete pass.
For t = T down to 1 Do
While Other_product_to_be_tested_in period_t = True Do
Find_product_i_using_the_least_production_time_in_period_t
q=t-1
Repeat Until (q = 0) or Product_i_has_been_transferred
If Economical and Feasible Then xiq = xiq+xit and xit =0
q=q-1
RepeatEnd
WhileEnd
DoEnd
Figure 5: Phase 2: Solution improvement
11
§4. PERFORMANCE EVALUATION
Numerical tests were conducted in order to evaluate the performance of the proposed
heuristic. A total of 180 randomly generated test problems were solved by the proposed heuristic
once with each of the 3 saving indexes for a total of 540 resolutions. These three versions of the
heuristic will be called heuristic 1 (Eisenhut’s criterion), heuristic 2 (exact average savings
criterion) and heuristic 3 (marginal savings criterion). The obtained results were also compared
to the minimal cost obtained by solving Model II using the commercial linear programming code
CPLEX 8.0. Unfortunately, the literature does not provide any solution method that can be used
as a benchmark to evaluate the relative performance of our heuristics.
Test Problems
The 180 test problems are divided into 6 subsets with 6 different combinations of N, the
number of products and M, the number of stages. Each set is composed of 30 problems and the
number of periods of the planning horizon for all the problems is 10 weeks. The number of
products is 5, 10 or 15 and the number of stages is 3 or 5.
To generate a test problem we start by generating weekly demands from a uniform
distribution between 20 and 100. The inventory holding costs were generated between 0.5$ and
1.5$/unit/week and the setup costs between 100$ and 400$ each. The setup times were calculated
by multiplying an average setup time by a constant ranging from 0.8 to 1.2. The average setup
times were forced to take a value between 15% and 20% of the weekly capacity in hours divided
by the number of products and stages. This was done to ensure that setup times took realistic
values. Then production rates were calculated based on the average demand in one period and on
the highest desired degree of machines utilization which was drawn from a uniform distribution
between 50% and 80% (excluding setup times).
Computational Results and Analysis
Table 2 presents the average total cost of the solutions to our test problems. On average the
heuristic 2 has given better solutions than the other two heuristics. On the other hand, the
marginal cost criterion seems to give, on average, the worst results.
12
Table 2: Average cost of the obtained solutions ($)
Number of products
Number of stages
Optimal solution model I
Heuristic 1
Heuristic 2
Heuristic 3
Best of three heuristics
N=5
M=3
6 949
7 420
7 418
7 494
7 283
M=5
6 895
7 371
7 445
7 413
7 287
N = 10
M=3
M=5
13 462
13 743
14 222
14 574
13 982
14 390
14 278
14 614
13 924
14 323
N = 15
M=3
M=5
20 502
20 132
21 760
21 301
21 178
20 869
21 934
21 452
21 169
20 863
All
Problems
13 614
14 441
14 214
14 531
14 141
Table 3 presents the average, minimum and maximum percentage cost increase with respect
to the optimal solution of Model II. It also provides the deviation from the optimum that we
obtain if we adopt the best of the three solutions. These results show that the heuristics provide
better solutions as the number of products increases. Also, for a given number of products, as the
number of stages goes from 3 to 5, the quality of the solution slightly decreases.
Table 3: Average, minimum and maximum deviations from the optimum
Number of products
Number of stages
Heuristic 1
Average
Minimum
Maximum
Heuristic 2
Average
Minimum
Maximum
Heuristic 3
Average
Minimum
Maximum
Best of three
solutions
Average
Minimum
Maximum
M=3
M=5
M=3
M=5
M=3
M=5
All
Problems
6.70 %
1.68 %
15.00 %
6.84 %
0.52 %
11.56 %
5.66 %
0.92 %
10.02 %
6.05 %
2.33 %
10.28 %
6.12 %
2.39 %
9.06 %
5.82 %
3.46 %
9.37 %
6.20 %
0.52 %
15.00 %
6.60 %
0.96 %
15.23 %
7.87 %
2.55 %
16.04 %
3.84 %
1.30 %
7.57 %
4.71 %
1.02 %
8.84 %
3.27 %
1.76 %
5.25 %
3.67 %
1.93 %
5.41 %
5.00 %
0.96 %
16.04 %
7.75 %
1.68 %
18.69 %
7.45 %
0.52 %
15.66 %
6.08 %
2.67 %
9.34 %
6.30 %
3.59 %
9.62 %
7.00 %
3.70 %
10.73 %
6.56 %
3.97 %
9.62 %
6.86 %
0.52 %
18.69 %
4.76 %
0.96 %
9.30 %
5.58 %
0.52 %
9.41 %
3.41 %
0.92 %
6.73 %
4.21 %
1.02 %
7.57 %
3.23 %
1.76 %
5.25 %
3.64 %
1.93 %
5.41 %
4.14 %
0.52 %
9.41 %
N=5
N = 10
N = 15
Table 4 gives the number of times each heuristic yielded the best solution for each class of
problems. Again, heuristic 2 gives better results and its relative advantage becomes even better
as the problem size increases.
Table 4: Number of times each heuristic yielded the best solution (including ties)
Number of products
Number of stages
Heuristic 1
Heuristic 2
Heuristic 3
N=5
M=3
10
14
8
N = 10
M=5
10
11
14
M=3
7
21
2
13
N = 15
M=5
8
19
3
M=3
1
29
0
M=5
2
28
0
All
Problems
38
122
27
Finally table 5 shows the percentage of improvement obtained after applying the
improvement procedure (phase 2) with respect to the initial solution given by phase 1. Except for
heuristic 2, on average, the improvement phase yielded little improvement over the initial
solution. For heuristic 2, it seems that it leads to smaller lot sizes leaving room for improvement.
Also as the figures show, it seems more difficult to improve problems with more products and
stages.
Table 5: Average percentage of improvement obtained by phase 2
Number of products
Number of stages
Heuristic 1
Heuristic 2
Heuristic 3
N=5
M=3
M=5
0.17 %
0.15 %
10.76 %
12.66 %
0.05 %
0.16 %
N = 10
M=3
M=5
0.0 %
0.0 %
6.62 %
7.75 %
0.0 %
0.0 %
All
Problems
0.05 %
8.25 %
0.04 %
N = 15
M=3
M=5
0.0 %
0.0 %
5.72 %
6.02 %
0.02 %
0.0 %
§5. ALLOWING FOR OVERTIME HOURS
In an effort to make our heuristic more realistic, we have considered overtime hours as an
alternative to increase the capacity. The following additional notation will be used hereafter to
formulate the problem:
v
Zjt
δ
cost of one overtime hour
number of overtime hours to be worked at stage j in period t
Maximum allowed overtime hours expressed as a percentage available capacity
The resulting model, called hereafter Model III, is given Figure 6.
T
M
N
Min ∑ ∑ [∑ ( s ij Yijt + hij I ijt ) + vZ jt ]
(21)
Subject to
I ijt −1 + xijt − I ijt = xi , j +1,t
I iMt −1 + xiMt − I iMt = d iMt
; i = 1,..., N , j = 1,..., M − 1, t = 1,..., T
; i = 1,..., N , t = 1,..., T
(22)
(23)
∑ aij xijt + rijYijt ≤ C jt + Z jt
; j = 1,..., M , t = 1,..., T
(24)
Z jt ≤ δC jt
xijt ≤ Bijt Yijt
xijt , I ijt , Z jt ≥ 0
Yijt ∈ {0,1}
; j = 1,..., M , t = 1,..., T
; i = 1,..., N , j = 1,..., M , t = 1,..., T
; i = 1,..., N , j = 1,..., M , t = 1,..., T
; i = 1,..., N , j = 1,..., M , t = 1,..., T
(25)
(26)
(27)
(28)
t =1 j =1 i =1
N
i =1
Figure 6: Model III: mathematical formulation when overtime are allowed
14
The objective of Model III is still to minimize the total cost including the cost of overtime
hours. The other differences in the formulation lie in constraints (24) and (25). Constraint (24)
ensures that production time and setup time do not exceed regular hours plus overtime hours.
Finally, constraint (25) will prevent the overtime hours to exceed the maximum allowable. The
rest of the model is similar to model I given in section 2.
Again, it is time consuming to solve this model to optimality for real-life problems. Thus,
unless we can reduce the complexity of the model significantly, efficient heuristics are needed in
practical situations. To reduce the complexity of this model we restrict the lots of the same
product to be of equal sizes through different stages. Thus we can reduce the number of variables
xijt by dropping the index j. Also, from constraint 1 we can see that, in this case, the work-inprocess inventory will never change (what is produced at stage j is completely used at stage j+1).
So we may again reduce the number of decision variables as we do not need the variables Iijt for
j=1,…, M-1. We only need the variables IiMt and, to simplify our notation, we drop the index M.
Another consequence of the added restriction is that, for a given time period t and a given
product i, all the setup indicators Yijt, j=1,…, M should have the same value. Again this allows us
M
to drop the index j and reduce the number of the Yijt variables. Let si = ∑ sij , Bi = min ( Bij ), and
j
j =1
hi denotes the unit inventory holding cost of the end product i (instead of hiM), model III
becomes:
N
T
M
T
Min ∑∑ ( siYit + hi I it ) + ∑∑ vZ jt
i =1 t =1
(29)
j =1 t =1
Subject to
I it −1 + xit − I it = d it
; i = 1,..., N , t = 1,..., T
(30)
∑ aij xit + rijYit ≤ C jt + Z jt
; j = 1,..., M , t = 1,..., T
(31)
N
i =1
Z jt ≤ δC jt
xit ≤ Bi Yit
xit , I it ≥ 0
Yit ∈ {0,1}
; j = 1,..., M , t = 1,..., T
; i = 1,..., N , t = 1,..., T
; i = 1,..., N , t = 1,..., T
; i = 1,..., N , t = 1,..., T
(32)
(33)
(34)
(35)
Solving this model, which we will call Model IV, is still time consuming for large real-life
problems. Thus we will adapt the previously proposed heuristic to allow for the usage of
overtime.
15
Modification to the Proposed Heuristic
We propose a modification to our heuristics by considering two different approaches to
account for overtime hours. The first approach starts by building a feasible solution without
considering overtime hours. They are, however, taken into account in the second phase as the
heuristic tries to improve the solution by reducing the total cost. The second approach, on the
other hand, considers the use of overtime hours in both the Feasible Solution Construction and
the Solution Improvement phases.
First Approach
The first phase of this approach is the same as that of the heuristic described in section 3. In
deed, the lot sizing and scheduling are done in the exact same way as before using the same three
saving indexes: Eisenhut’s criterion, the exact average savings criterion and the marginal cost
criterion. The second phase, the improvement phase, is also similar to the one used in section 3
(see Figure 5) except it allows using overtime hours. In order to achieve cost savings, the
heuristic will attempt to move the production of a lot to an earlier period where a lot of the same
product already exists. This is done if it reduces the number of setups and generates enough
savings on setup costs to compensate for the additional inventory holding cost as well as for the
cost of overtime hours, if any are needed.
If a move is made during a pass form period T down to period 1, the overall improvement
procedure is repeated because it might have freed enough capacity in a period to allow a transfer
from a later period. Consequently, this procedure is repeated until no improvement is achieved
during a complete pass.
Second Approach
This second approach is also a two-phase approach where a feasible schedule is constructed
during the first phase and the second improvement phase is the same as the improvement
procedure of the first approach. The first phase is similar to the one given in figure 2 with two
exceptions. First the available capacity includes both regular hours and overtime hours. Second,
we extended the saving indexes presented in table 1 to take into account the overtime cost. The
extended indexes are presented in Table 6 where O(q) is the cost of overtime hours incurred
from producing the demand of period q in the current period t.
16
Table 6: Extended savings indexes when overtime is allowed
[S i − IC itq − O(q)]
4
U itq
=
Extended Eisenhut’s criterion
2
ai d iq (q − t )
[S + IC
=
Extended exact average savings criterion
5
U itq
Extended marginal savings criterion
6
U itq
=
i
itq − hi ( q − t )
d iq − O(q)
ai d iq (q − t )(q − t − 1)
[S − h (q − t )d
i
i
iq
2
− O(q)
]
]
(36)
(37)
(38)
ai d iq
§6. PERFORMANCE EVALUATION OF THE MODIFIED HEURISTIC
Six new heuristics (heuristic 4 through heuristic 9) should now be tested. These heuristics are
presented in Table 7.
Method
Heuristic 4
Heuristic 5
Heuristic 6
Heuristic 7
Heuristic 8
Heuristic 9
Saving index
Table 7: Summary of Heuristic Methods
Usage of Overtime Hours
Eisenhut’s
Exact average savings
Marginal savings
Extended Eisenhut’s
Extended exact average savings
Extended marginal savings
During the improvement phase only
During the improvement phase only
During the improvement phase only
During both the construction and improvement phases
During both the construction and improvement phases
During both the construction and improvement phases
Table 8 compares the optimal solution of model II to that of model IV. It indicates that, under
the used assumption and for the used parameters, the average percentage of improvement that
overtime hours yielded is 0.46%. It shows that the smaller the number of products the better the
improvement.
Table 8: Average cost with and without overtime hours
Number of products
Number of stages
Optimal solution of Model II
Optimal solution of model IV
Average improvement
N=5
M=3
M=5
6 949
6 895
6 908
6 853
0.59 %
0.60 %
N = 10
M=3
M=5
13 462
13 743
13 412
13 680
0.35 %
0.44 %
N = 15
M=3
M=5
20 502
20 132
20 414
20 065
0.42 %
0.33 %
All
Problems
13 614
13 555
0.46 %
Table 9 compares the heuristics that use similar savings indexes while allowing or not for the
usage of overtime. For example, heuristic 4 produced an average improvement of 0.48 % over
heuristic 1. The table also shows that heuristics that takes into account the possibility of using
overtime hours during the first phase produce, some times and in average, worst solutions than
those allowing the usage of overtime hours only in the second phase. For example, heuristic 7
produced, in average, worst solutions than heuristic 1.
17
Table 9: Average cost with and without overtime hours obtained by the designed heuristics
Number of products
Number of stages
Heuristic 1
Heuristic 4
Average improvement heuristic 4 w.r.t.1
Heuristic 7
Average improvement heuristic 7 w.r.t.1
Heuristic 2
Heuristic 5
Average improvement heuristic 5 w.r.t.2
Heuristic 8
Average improvement heuristic 8 w.r.t.2
Heuristic 3
Heuristic 6
Average improvement heuristic 6 w.r.t.3
Heuristic 9
Average improvement heuristic 9 w.r.t.3
N=5
M=3
M=5
7 420
7 371
7 342
7 302
0.99 % 0.86 %
7 426
7 351
-0.25 % 0.18 %
7 418
7 445
7 233
7 281
2.40 % 2.12 %
7 217
7 275
2.58 % 2.16 %
7 494
7 413
7 388
7 343
1.31 % 0.87 %
7 440
7 368
0.51 % 0.59 %
N = 10
M=3
M=5
14 222
14 574
14 196
14 511
0.19 % 0.42 %
14 217
14 637
0.04 % -0.45 %
13 982
14 390
13 856
14 254
0.88 % 0.94 %
13 871
14 270
0.78 % 0.83 %
14 278
14 614
14 195
14 529
0.56 % 0.56 %
14 330
14 632
-0.32 % -0.18 %
N = 15
M=3
M=5
21 760
21 301
21 707
21 263
0.23 % 0.17 %
21 807
21 435
-0.22 % -0.62 %
21 178
20 869
21 038
20 740
0.65 % 0.62 %
21 042
20 769
0.63 % 0.48 %
21 934
21 452
21 843
21 355
0.41 % 0.45 %
21 840
21 495
0.48 % -0.17 %
All
Problems
14 441
14 387
0.48%
14 479
-0.22 %
14 214
14 067
1.27 %
14 074
1.24 %
14 531
14 442
0.69 %
14 517
0.15 %
Table 10 gives the average, the minimum and the maximum deviation of the heuristic
solutions from the optimal solution of model IV. It shows that best results are obtained by
heuristics 5 and 8 which uses the exact average savings criterion. Heuristic 5 produced an
average percentage deviation from the optimum of 4.12% while heuristic 8 produced an average
deviation of 4.13%. If we use all the proposed heuristics and retain the best of the 6 solutions for
each problem, we reduce the average percentage deviation from the optimum to 3.43%.
Table 11 gives the number of time heuristics 5 through 9 yielded the best solution for each
class of problems. Again, it is heuristics 5 and 8 who gave the best results. Heuristic 5 produced
the best solution for 91 of the 180 test problems (50.6%) while heuristic 8 produced the best
solution for 80 of these problems (44.4%). The number of times the best solution was found by
either heuristic 5 or heuristic 8 or both heuristics is 138 times (76.7%).
Finally table 12 presents the percentage of improvement obtained by the improvement
procedure (phase 2) with respect to the initial solution given by phase 1. Except for heuristics 5
and 8 (which use an extension of the savings criterion used by heuristic 2), on average, the
second phase yielded little improvement over the initial solution. Recall that, among the three
heuristics developed in section 3 (for the case where no overtime hours are allowed), heuristic 2
was the only one such that the second phase produced significant improvement with respect to
the initial solution (given by the first phase).
18
Table 10: Average, minimum and maximum deviations from the optimal solution of model IV
Products
Stages
Heuristic 4
Average
Minimum
Maximum
Heuristic 5
Average
Minimum
Maximum
Heuristic 6
Average
Minimum
Maximum
Heuristic 7
Average
Minimum
Maximum
Heuristic 8
Average
Minimum
Maximum
Heuristic 9
Average
Minimum
Maximum
Best of 6 heuristics
Average
Minimum
Maximum
N=5
N = 10
N = 15
M=3
M=5
M=3
M=5
M=3
M=5
All
Problems
6.25 %
1.90 %
11.29 %
6.53 %
1.16 %
10.48 %
5.84 %
1.06 %
10.68 %
6.07 %
2.77 %
10.28 %
6.32 %
2.48 %
9.07 %
5.99 %
3.67 %
9.54 %
6.17 %
1.06 %
11.29 %
4.66 %
0.16 %
8.97 %
6.19 %
1.24 %
13.94 %
3.27 %
1.42 %
5.22 %
4.18 %
1.70 %
8.77 %
3.04 %
1.59 %
4.88 %
3.36 %
1.95 %
4.78 %
4.12 %
0.16 %
13.94 %
6.93 %
1.90 %
11.97 %
7.13 %
1.16 %
15.37 %
5.85 %
2.67 %
9.64 %
6.17 %
3.59 %
9.24%
7.02 %
3.43 %
10.64 %
6.44 %
4.08 %
9.11 %
6.59 %
1.16 %
15.37 %
7.53 %
3.08 %
16.94 %
7.25 %
1.19 %
13.14 %
5.97 %
2.64 %
15.28 %
6.98 %
4.03 %
9.89%
6.80 %
3.60 %
11.34 %
6.82 %
3.32 %
9.57 %
6.89 %
1.19 %
16.94 %
4.44 %
0.16 %
8.40 %
6.12 %
1.24 %
12.38 %
3.38 %
1.65 %
6.15 %
4.29 %
2.09 %
8.87 %
3.06 %
1.56 %
5.49 %
3.50 %
2.22 %
4.78 %
4.13 %
0.16 %
12.38 %
7.73 %
3.16 %
16.94 %
7.41 %
1.19 %
15.65 %
6.78 %
2.28 %
14.87 %
6.94 %
3.69 %
13.34 %
6.96 %
3.86 %
10.85 %
7.10 %
4.03 %
10.16 %
7.15 %
1.19 %
16.94 %
3.43%
0.16%
7.25%
4.34 %
1.16 %
8.40 %
2.90 %
1.06 %
4.79 %
3.78 %
1.70 %
7.72 %
2.88 %
1.56 %
4.88 %
3.25%
1.95%
4.78%
3.43 %
0.16 %
8.40 %
Table 11: Number of times each heuristic yielded the best solution
Products
Stages
Heuristic 4
Heuristic 5
Heuristic 6
Heuristic 7
Heuristic 8
Heuristic 9
N=5
M=3
2
12
4
3
13
3
N = 10
M=5
3
8
5
8
9
8
M=3
3
17
2
2
11
1
N = 15
M=5
5
16
2
0
12
1
M=3
1
19
0
0
20
0
M=5
1
19
0
0
15
0
All
Problems
15
91
13
13
80
13
Table 12: Average percentage of improvement obtained by phase 2
Number of products
Number of stages
Heuristic 4
Heuristic 5
Heuristic 6
Heuristic 7
Heuristic 8
Heuristic 9
N=5
M=3
M=5
1.15 %
1.01 %
11.43 %
9.85 %
1.36 %
1.01 %
0.19 %
0.42 %
10.42 %
9.26 %
0.14 %
0.31 %
N = 10
M=3
M=5
0.19 %
0.42 %
9.83 %
9.92 %
0.56 %
0.56 %
0.07 %
0.08 %
9.49 %
9.60 %
0.05 %
0.09 %
19
N = 15
M=3
M=5
0.23 %
0.18 %
9.75 %
10.10 %
0.42 %
0.45 %
0.02 %
0.06 %
9.48 %
9.88 %
0.05 %
0.13 %
All
Problems
0.53 %
10.13 %
0.73 %
0.14 %
9.69 %
0.13 %
§7. CONCLUSION
This paper proposed new composite heuristics for solving the Economic Lot Sizing and
Scheduling Problem with time varying demand and capacity constraints. The first phase of the
heuristic constructs an initial feasible solution to the problem. The lot sizes are calculated as
being at least the net demand of the current period plus any other upcoming demands that it is
possible and economical to produce. A saving index is assigned to all upcoming demands and
the one having the highest index is tested for inclusion in the lot of the current period. If capacity
allows its production, then it is included and if not, the demand with the next highest saving
index is considered. If for a given period it is impossible to produce the net demand of all
products, a backtracking procedure is executed for finding earlier periods with residual capacity.
Once a feasible solution is found for the complete planning horizon, the solution improvement
procedure tries to reduce the total cost of the solution by moving the production of some lots to
earlier periods. A move is only accepted if the resulting additional inventory holding costs is
lower than the savings made by abolishing the corresponding setup.
Three different saving indexes were used during the numerical testing of the algorithm:
Eisenhut’s criterion, the exact average savings criterion and the marginal savings criterion. It
was found that the exact average savings criterion yielded better solutions on average. This was
even better as the number of products and the number of stages increased.
We also proposed a modification to our heuristics to include the use of overtime hours. Our
first approach allows overtime hours only during the second phase (the improvement phase) of
the heuristic. The first phase was performed the exact same way as before. But during the second
phase, the production capacity was increased according to available overtime hours and the
additional cost of overtime hours was taken into account in the calculation of the total cost. Our
second approach considered overtime hours in both phases of the heuristic.
The results show again that heuristics which uses our exact average savings criterion
produced the best solutions on average. In fact, it performed better as the number of products and
stages increased. By considering overtime hours, we were able to reduce the deviation of the best
solution from the optimal cost.
20
Acknowledgement
This work was partially supported by grant OPG 0036509 form the Canadian Natural Sciences
and Engineering Research Council (NSERC).
REFERENCES
Atkins, D. R. and P. O. Iyogun (1988) A heuristic with lower bound performance guarantee for
the multi-product dynamic lot size problem, IIE Transactions, 20, 4, 369-373.
Boctor, F. F. (1982) The two-product, single-machine, static demand, infinite horizon lot
scheduling problem, Management Science, 28, 7, 798-807.
Boctor, F. F. (1985) Single machine lot scheduling: A comparison of some solution procedures,
Automatique Productique et Informatique Industrielle, 19, 1, 389-402.
Boctor, F. F. (1987) The G-group heuristic for single machine lot scheduling, International
Journal of Production Research, 25, 3, 363-379.
Boctor, F.F. (1988) A more efficient formulation of the single machine, static demand lot
scheduling problem, Engineering Cost and Production Economics, 14, 1, 3-10.
Davis, S. G. (1990) Scheduling economic lot size production runs, Management Science, 36, 8,
985-998.
Dixon, P and E. A. Silver (1981) A heuristic solution procedure for the multi-item, single-level,
limited capacity, lot-sizing problem, Journal of Operations Management, 2, 1, 23-40.
Dogramaci, A., J. C. Panayotopoulos and N. R. Adam (1981) The Dynamic lot sizing problem
for multiple items under limited capacity, AIIE Transactions, 13, 4, 294-303.
Eisenhut, P. S. (1975) A Dynamic lot sizing algorithm with capacity constraints, AIIE
Transactions, 7, 2, 170-176.
Elmaghraby, S. E. (1978) The economic lot scheduling problem (ELSP): Review and extensions,
Management Science, 24, 6, 587-598.
Elmaghraby, S. E. (1978) An extended basic period approach to the economic lot scheduling
problem, in Muramatsu R. and N. Dudley (editors), Production and Industrial Systems,
Taylor and Francis, London, pp. 649-662.
21
El-Najdawi M. K. and P. R. Kleindorfer (1993) Common cycle lot size scheduling for multiproduct, multi-stage Production, Management Science, 39, 7, 872-885.
Florian, M. and M. Klein (1971) Solving multi-item capacitated lot-sizing problems using
variable redefinition, Operations Research, 35, 6, 268-277.
Fujita, S. (1978) The application of marginal analysis to the economic lot scheduling problem,
AIIE Transactions, Vol. 10, No. 4, pp. 354-361.
Haessler, R.W. and S.L. Hogue (1976) A note on the single-machine multi-product lot
scheduling problem, Management Science, 22, 8, 909-912.
Haessler, R.W. (1979) An improved extended basic period procedure for solving the economic
lot scheduling problem, AIIE Transactions, 11, 4, 336-340.
Hanssmann, F. (1962) Operations Research in Production and Inventory Control, (John Wiley
and Sons New York), pp. 14-16, 158-160.
Karni, R. and Y. Roll (1982) A heuristic algorithm for the multi-item lot sizing problem with
capacity constraints, IIE Transactions, 14, 4, 249-256.
Leung, J. M. Y., T. L. Magnanti and R. Vachani (1989) Facets and algorithms for capacitated lot
sizing, Mathematical programming, 45, 2, 331-359.
Maes, J. and L. N. Van Wassenhove (1986) A simple heuristic for the multi-item single level
capacitated lot sizing problem, Operation Research Letters, 4, 6, pp. 265-274.
Maes, J. and L. N. Van Wassenhove (1991) Capacitated dynamic lot sizing heuristics for serial
systems, International Journal of Production Research, 29, 6, 1235-1249.
Ouenniche, J. and F. F. Boctor (1996) The economic lot sizing problem: Survey, Working paper
96-58, Faculté des Sciences de l’administration, Université Laval, Canada.
Ouenniche, J. and F. F. Boctor (1998) A new and efficient heuristic to solve the multi-product,
multi-stage, lot sizing and scheduling Problem in flow shops, Working paper 98-05, Faculté
des Sciences de l’administration, Université Laval, Canada.
22
Ouenniche, J. and F. F. Boctor (2001a) The two-group heuristic to solve the multi-product,
economic lot sizing and scheduling Problem in flow shops, European Journal of Operational
Research, 129, 3, 539-554.
Ouenniche, J. and F. F. Boctor (2001b) The G-group heuristic to solve the multi-product,
sequencing lot sizing and scheduling Problem in flow shops, International Journal of
Production Research, 39, 1, 81- 89.
Ouenniche, J. and F. F. Boctor (2001c) The powers-of-two heuristic to solve the multi-product,
multi-stage lot sizing and scheduling problem in flow shops, Computer and Operations
Research, 28, 12, 1165-1182.
Park, K. S. and D. K. Yun (1984) A stepwise partial enumeration algorithm for the economic lot
sizing problem, IIE Transactions, 16, 4, 363-370.
Silver, E. A. and H. C. Meal (1969) A simple modification of the EOQ for the case of a varying
demand rate, Production and Inventory Management, 10, 4, 52-65.
Stankard, M. F. and S. K. Gupta (1969) A note on Bomberger’s approach to lot size scheduling:
heuristic proposed, Management Science, 15, 7. 449-452.
Thizy, J. M. and L. N. Van Wassenhove (1985) Lagrangean relaxation for the multi-item
capacitated lot sizing problem: A heuristic implementation, IIE Transactions, 17, 4, 308-313.
Wagner, H. M. and T. M. Whitin (1958) Dynamic version of the economic lot size model,
Management Science, 5, 1, 89-96.
23
Download