SEMESTER PROJECT Linear programming models for a stochastic dynamic capacitated lot sizing problem TEMPELMEIER 2015 Members of Group 10: 1 Le Dinh Khanh IELSIU18053 2 Vu Truong Giang
Trang 1SEMESTER PROJECT Linear programming models for a stochastic dynamic capacitated lot sizing problem
(TEMPELMEIER 2015)
Members of Group 10:
1 Le Dinh Khanh IELSIU18053
2 Vu Truong Giang IELSIU18028
4 Le Thanh Mai IELSIU18077
Lecturer: Dr Nguyen Van Hop Course: Inventory Management
Semester 1, year 2020- 202 1
VIETNAM NATIONAL UNIVERSITY HCMC
INTERNATIONAL UNIVERSITY
School of Industrial Engineering and Management
Trang 2TABLE OF CONTENTS
TABLE OF CONTENTS 1
ACKNOWLEDGEMENT 2
GROUP EVALUATION FORM 3
1 Timeline: 3
2 Policies: 3
3 Group individual assessment: 3
CASE SUMMARIZATION 4
1 Description: 4
2 Objective: 5
3 Scope: 5
4 Limitations: 5
MODEL FORMULATION AND DESCRIPTION 6
1 Mathematical model: 6
2 Model implementation: 8
3 Result analysis: 10
4 Sensitivity analysis: 10
LIMITATIONS 10
CONCLUSION 11
REFERENCES 12
Trang 3ACKNOWLEDGEMENT
Firstly, our group would like to give the deepest thanks and appreciation to our dedicated
Dr Nguyen Van Hop and teaching assistant Nguyen Tuan Anh helping us to build the code and encouraging us throughout e project th
Secondly, we also appreciate our dear teacher Dr Nguyen Van Hop for giving us the Linear Programing models for a stochastic dynamic capacitated lot sizing problem to be our project This offers us the opportunity to fully understand the fundamental and practice of the subject Inventory Management
Lastly, we would like to save our thanks for our beloved teammates with their great supports for better or worse, through thick and thin
Trang 4GROUP EVALUATION FORM
1 Timeline:
1 Group forming register group members, group name, &
Choosing a system to study via the link Week 1
be announced)
be announced)
2 Policies:
- Report: 40%
- Presentations: 30%
- Q&A: 15%
- Contribution to the group: 15%
- Penalty:
1 Late submission 1 day: - 10%
2 Late submission 2 days: - 20%
3 Late submission 3 days: - 30%
4 Late submission > 3 days or no submission: - 100%
5 Absent from presentation: - 60%
3 Group individual assessment:
Trang 5CASE SUMMARIZATION
The mathematical model for integer programming is the linear programming model with one additional restriction that the variables must have integer values If only some of the variables are required to have integer values (so the divisibility assumption holds for the
rest), this model is referred to as Mixed Integer Programming (MIP)
In short, MIP is often used for system analysis and optimization as it presents a flexible method for solving large and complex problems Several limitations have also lead researchers toward bi-level optimization, non-linear deterministic optimization, or stochastic methods to address certain aspects of processing Such extensions often require other simplifications and the development of heuristic methods for limiting the solution space and determining solution globality
Components of MIP problem:
- Variables: These parameters may be numerical (real numbers) as in the number of
products K or target fill rate or binary for a Yes/No decision on whether a product has setup cost or not Integer programming determines the optimal value for such variables
- Objective Functions: such as minimizing the final total cost and lot size, are a linear
function of an optimization's variables
- Constraints: are also linear functions of an optimization's variables and are used to
restrict the values an optimization can return for a variable For example, constraint 15
is the total sum of set up time and processing time to produce a product must be smaller
than the capacity
1 Description:
Lot-sizing Problems occur in industrial practice, when a production process can only start after a setup of the required resources with associated setup time and/or setup costs has been completed In this project, we concentrate on the stochastic dynamic multi-item capacitated lot sizing problem (SCLSP), which is the stochastic counterpart of the well-known deterministic dynamic multi-item capacitated lot sizing problem (CLSP) The problem can be determined to consider a single resource, which is used to produce 𝐾 (𝑘 =
1, 2, … , 𝐾) items with dynamic random period demands 𝐷𝑘𝑡 over a planning horizon of
𝑇 (𝑡 = 1, 2, … , 𝑇) periods; For product 𝑘 , the demands 𝐷𝑘𝑡 are random variables with forecasted period-specific expectation 𝐸{𝐷𝑘𝑡} and variance 𝑉{𝐷𝑘𝑡} The period capacities of the resource are 𝑏𝑡 (𝑡 = 1, 2, … , 𝑇) These data, which may vary over time, are the outcome
of a forecasting procedure It is assumed that the demands of the products are mutually independent and autocorrelated Unfilled demands are backordered and the amount of backorders is controlled by imposing a fill rate constraint, namely the 𝛽𝑐 service level
At the beginning of the planning horizon, the initial inventory 𝐼𝑘0 (𝑘 = 1, 2, … , 𝐾) can be determined and may be zero Moreover, the complete production plan is fixed, including the timing and the size of the cumulated production quantities There is also a charge of the inventory holding costs at the end of each period
Trang 62 Objective:
The main objectives of this project are solve Lot-sizing Problem occurring in stochastic to dynamic by optimizing the final total cost and the lot size based on a given data:
- First, to understand the concept and the mathematical model given by Horst Tempelmeier and Timo Hilger throughout the paper
- Second, to translate the objective function (14) and the constraints from (15) to (33) into LINGO programming to observe the result
- Third, to apply Sensitivity Analysis to propose a conclusion including the result or any limitations from the solution for the stochastic dynamic capacitated lot-sizing problem
3 Scope:
This problem can apply to a large model However, in our project, we limit all important parameters (production number, planning horizon, lines segment) to 10 (In reality we should extend the line segment because this model approach non – linear problem by linear method, so the greater number of line segment, the more accurate the solution ) is
In addition, it only focuses on the optimization for the problem with assumed data Therefore, it is hardly applied the result in practice as we cannot identify a specific practical situation or background
4 Limitations:
From the given basic model, it is believed that this model cannot be brought into practice due to the time-consumption in instancing the exact solution We need to give a specific background with a certain condition in production so that the binary setup variables will
be prevented from being decomposed into smaller and smaller subproblems which will generates more issues for the model As the result, Fix & Optimize heuristic is carried out
as a background for the model in this lot-sizing problem Thanks to Fix & Optimize heuristic, the solution can deliver high-quality results, easier to implement and can be adjusted to fit with different kinds of mixed-integer lot-sizing problems
Trang 7MODEL FORMULATION AND DESCRIPTION
1 Mathematical model:
Objective function:
𝑴𝒊𝒏𝒊𝒎𝒊𝒛𝒆 𝐸{𝐶} = ∑ ∑ (𝑠𝑘× 𝛾𝑘𝑡 + ℎ𝑘 × [∆𝐼0𝑘𝑡𝑃 + ∑ ∆𝐿 𝑙=1𝑙 × 𝑤𝑘𝑡𝑙 ])
𝑙=1
𝑇 𝑡=1
𝐾
Constraints (Subject to):
∑(𝑡𝑘 𝑏× 𝑞𝑘𝑡 + 𝑡𝑘𝑟 × 𝛾𝑘𝑡) ≤ 𝑏𝑡 𝐾
𝑘=1
𝑡 = 1,2, … , 𝑇 (15) (15) Total setup time and processing time to produce a product must be smaller than the capacity
∑ 𝑤𝑘,𝑡−1𝑙 𝐿
𝑙=1
≤ ∑ 𝑤𝑘𝑡𝑙 𝑡 = 2,3, , 𝑇; 𝑘 = 1,2, , 𝐾 𝐿
𝑙=1
(16)
(16) Total production quantity of product 𝑘 from 𝑙 = 1 𝐿 in period to 𝑡 − 1 must be smaller than or equal to total production quantity of product 𝑘 from 𝑙 = 1 𝐿 in period to 𝑡
𝑤𝑘𝑡𝑙 ≤ 𝑢𝑘𝑡𝑙 − 𝑢𝑘𝑡𝑙−1 𝑡 = 1,2, , 𝑇; 𝑙 = 1,2, , 𝐿; 𝑘 = 1,2, , 𝐾 (17)
(17) Total production quantity of product associate with line segment must fit in to the 𝑘 𝑙 range of production inside each line segment
∑ 𝑤𝑘,𝑡𝑙 𝐿 𝑙=1
− ∑ 𝑤𝑘,𝑡−1𝑙 𝐿 𝑙=1
= 𝑞𝑘𝑡 𝑡 = 1,2, … , 𝑇 𝑘 = 1,2, … , 𝐾 (18) (18) Production quantity for product k in period t is equal to the sum of production quantities for product from 𝑘 𝑙 = 1 𝐿 to in period less the sum of production quantities 𝑡 product from 𝑘 𝑙 = 1 𝐿 to in period 𝑡 − 1
𝑞𝑘𝑡 ≤ 𝑀 × 𝛾𝑘𝑡 𝑡 = 1,2, … , 𝑇; 𝑘 = 1,2, … , 𝐾 (19) (19) If there is no setup in period t of product k, then 𝑞𝑘𝑡 must be 0
∑ 𝑤𝑘,𝑡𝑙
𝐿
𝑙=1
− ∑ 𝑤𝑘,𝑡−1𝑙 𝐿 𝑙=1
= 𝑞𝑘𝑡 𝑡 = 1,2, , 𝑇; 𝑙 = 1,2, , 𝐿; 𝑘 = 1,2, , 𝐾 (18) 𝑞𝑘𝑡 ≤ 𝑀 × 𝛾𝑘𝑡 𝑡 = 1,2, , 𝑇; 𝑘 = 1,2, , 𝐾 (19)
(𝑆𝑒𝑟𝑣𝑖𝑐𝑒 𝑙𝑒𝑣𝑒𝑙 𝑐𝑜𝑛𝑠𝑡𝑟𝑎𝑖𝑛𝑡𝑠,𝑡𝑜 𝑏𝑒 𝑠𝑝𝑒𝑐𝑖𝑓𝑖𝑒𝑑) (20) 𝛾𝑘𝑡 ∈ { }0,1 𝑡 = 1,2, … , 𝑇; 𝑘 = 1,2, … , 𝐾 (21 ) (21) The constraint that clarify setup indicator in period t for product k is a binary
variable
𝑤𝑘,𝑡𝑙 ≥ 0 𝑡 = 1,2, , 𝑇; 𝑙 = 1,2, , 𝐿; 𝑘 = 1,2, , 𝐾 (22)
Trang 8(22) Production quantity of product k in period t associated with interval l must be a non-negative number
𝛽𝑡 Service Level: If the finite horizon 𝛽𝑡 criterion is used, than constraint (20) is specified
as
1 −∑ (∆𝐵0 𝑘𝑡 + ∑ ∆𝐵𝐿 𝑙 𝑘𝑡 × 𝑤𝑘𝑡𝑙 )
𝑙=1
𝑇 𝑖=1
∑ 𝐸{𝐷𝑇 𝑘𝑖} 𝑖=1 ≥ 𝛽𝑇∗ 𝑘 = 1,2, … , 𝐾 (23) (23) ∑ (∆0𝐵𝑘𝑡 + ∑ ∆𝐵𝐿 𝑙𝑘𝑡 × 𝑤𝑘𝑡𝑙 )
𝑙=1
𝑇
𝑖=1 is the total backorder quantities, ∑ 𝐸{𝐷𝑇 𝑘𝑖}
𝑖=1 is the total demand Therefore, this constraint means the model must satisfy at least 𝛽𝑇∗ service level The above basic model formulation can easily be extended to incorporate setup carryovers
We extend the above model by the following constrain : ts
∑ 𝑤𝑘𝑡 𝐾 𝑘=1
≤ 1 𝑡 = 1,2, … , 𝑇 (27) (27) Each product can only in the setup state one time
𝑤𝑘𝑡 ≤ 𝛾𝑘,𝑡−1+ 𝑤𝑘,𝑡−1 𝑘 = 1,2, … , 𝐾; 𝑡 = 2,3,… , 𝑇 (28) (28) This constraint ensures the logical of the variable: the setup state cannot carry over from period t-1 to period t if it did not start in period t-1
𝑤𝑘𝑡 + 𝑤𝑘,𝑡+1 ≤ 1 + 𝑣𝑡 𝑘 = 1,2, … , 𝐾; 𝑡 = 2,3, … , 𝑇 − 1 (29) (29) Consequence of constraint 30 𝑤𝑘,𝑡+1 = 0 if 𝑣𝑡 = 0
𝑣 + 𝛾𝑡 𝑘𝑡 ≤ 1 𝑘 = 1,2, , 𝐾; 𝑡 = 1,2, , 𝑇 (30) (30) Force to 0 if there is a setup in period t 𝑣𝑡
𝛾𝑘0 = 0, 𝑤𝑘1 = 0 𝑘 = 1,2, , 𝐾 (31) (31) No setup in the starting point for each product
𝑤𝑘𝑡 ∈ {0,1} 𝑘 = 1,2, , 𝐾; 𝑡 = 1,2, , 𝑇 (32) (32) Clearer definition for binary variable which indicates that the resource is in the setup state for product k at the beginning of period t
𝑣𝑡 ≥ 0 𝑡 = 1,2, , 𝑇 (33) (33) Indicator variable is a non-negative variable 𝑣𝑡
Additional constraints:
∆𝑙𝐵𝑘𝑡∈ [0; 1] 𝑘 = 1,2, , 𝐾; 𝑡 = 1,2, , 𝑇; 𝑙 = 1,2, , 𝐿; (34 35− )
(34-35) The slope of backorder must be a percentage-type variable
Trang 92 Model implementation:
We input the algorithm into LINGO applications and obtain the following codes:
MODEL : !FIX AND OPTIMIZE HEURISTIC FOR LOT SIZING PROBLEM;
!BSI = BINARY SETUP INDICATOR;!CP = CUMULATED PRODUCTION;
!IV = INDICATOR VARIABLE;
!PQ, PQ1 = PRODUCTION QUANTITY;
!TFR = TARGET FILL RATE = 0.80;
!PCR = PERIOD CAPACITIES OF THE RESOURCE;
!BPQ = BINARY INDICATE THE RESOURCE IS IN THE SETUP STATE;
SETS :
PRONUMB /1 10/: SC, HC, PT, ST; !PARAMETERS AND VARIABLES RELATE TO PRODUCT NUMBER;
PLANHOR /1 11/: PCR, VI; !PARAMETERS AND VARIABLES RELATE TO PLANNING HORIZON;
LINESEG /1 11/: ; !PARAMETERS AND VARIABLES RELATE TO LINE SEGMENT;
LOTCALC1 (PRONUMB, PLANHOR): BSI, PQ1, ED, BPQ; !2-DIMENSION VAR;
LOTCALC2 (PRONUMB, PLANHOR, LINESEG): SB, SI, CP, PQ; !3-DIMENSION VAR;
ENDSETS
! THE OBJECTIVE FUNCTION;
[OBJ] MIN = @SUM (LOTCALC2(x,y,z)|y #GE# 2 #AND# z #GE# 2: SC(x)*BSI(x,y) + HC(x)*(100 +
(SI(x,y,z)*PQ(x,y,z))));
!100 IS THE BEGINNING EXPECTED INVENTORIES;
@FOR (PLANHOR(y)|y #GE# 2:
@SUM (PRONUMB(x):(PT(x)*PQ1(x,y) )+(ST(x)*BSI(x,y) ) ) <= PCR(y));
!CONSTRAINT 15;
@FOR (PRONUMB(x):
@FOR (PLANHOR(y)|y #GE# 3:
@SUM (LINESEG(z)|z #GE# 2: PQ(x, y-1, z)) <= @SUM (LINESEG(z)|z #GE# 2: PQ(x, y, z))));
!CONSTRAINT 16;
@FOR (PLANHOR(y)|y #GE# 2:
@FOR (PRONUMB(x):
@FOR (LINESEG(z)|z #GE# 2: PQ(x, y, z) <= (CP(x, y, z) - CP(x, y, z-1)))));
!CONSTRAINT 17;
@FOR (PLANHOR(y)|y #GE# 2:
@FOR (PRONUMB(x):
( @SUM (LINESEG(z)|z #GE# 2: PQ(x, y, z)) - @SUM (LINESEG(z): PQ(x, y-1, z))) = PQ1(x, y)));
!CONSTRAINT 18;
@FOR (PLANHOR(y)|y #GE# 2:
@FOR (PRONUMB(x): PQ1(x, y) <= (1000000000*BSI(x, y))));
!CONSTRAINT 19;
@FOR (PRONUMB(x):
(1 - @SUM (LOTCALC2(x,y,z)|y #GE# 2 #AND# z #GE# 2: 0 + SB(x, y , z)*PQ(x, y, z))/ @SUM (PLANHOR(y)|y
#GE# 2: ED(x, y)) ) >= 0.8);
@FOR (PRONUMB(x):
@FOR (PLANHOR(y)|y #GE# 2:
@FOR (LINESEG(z)|z #GE# 2: PQ(x, y, z) >= 0)));
!CONSTRAINT 22;
Trang 10@FOR (PLANHOR(y)|y #GE# 2:
@SUM (PRONUMB(x): BPQ(x, y)) <= 1);
!CONSTRAINT 27;
@FOR (PRONUMB(x):
@FOR (PLANHOR(y)|y #GE# 3: BPQ(x, y) <= (BSI(x,y-1) + BPQ(x, y-1))));
!CONSTRAINT 28;
@FOR (PRONUMB(x):
@FOR (PLANHOR(y)|3 #LE# y #AND# y #LE# 10: (BPQ(x, y)+BPQ(x, y+1)) <= (1 + VI(y))));
!CONSTRAINT 29;
@FOR (PRONUMB(x):
@FOR (PLANHOR(y)|y #GE# 2: (VI(y) + BSI(x, y)) <= 1));
!CONSTRAINT 30;
@FOR (PRONUMB(x): BSI(x,1) = 0);
!CONSTRAINT 31-1;
@FOR (PRONUMB(x): BPQ(x,2) = 0);
!CONSTRAINT 31-2;
@FOR (PLANHOR(y)|y #GE# 2: VI(y) >= 0);
!CONSTRAINT 33;
@FOR (LOTCALC2(x,y,z)|y #GE# 2 #AND# z #GE# 2: SB(x,y,z) >= 0);
!CONSTRAINT 34;
@FOR (LOTCALC2(x,y,z)|y #GE# 2 #AND# z #GE# 2: SB(x,y,z) <= 1);
!CONSTRAINT 35;
!CONSTRAINT 34 AND 35 ENSURE THAT THE SLOPE OF BACKORDER IS A PERCENTAGE INDEX;
! BINARY CONDITION;
@FOR (LOTCALC1(x,y)|y #GE# 2: @BIN (BSI(x,y)));
!CONSTRAINT 21;
@FOR (LOTCALC1(x,y)|y #GE# 2: @BIN (BPQ(x,y)));
!CONSTRAINT 32;
! PARAMETERS;
DATA :
SC = 500, 500, 500, 500, 500, 500, 500, 500, 500, 500;
HC = 20, 20, 20, 20, 20, 20, 20, 20, 20, 20;
ST = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
ED =
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
80 , 89 , 4 , 18 , 65 , 27 , 48 , 53 , 82 , 33,
64 , 39 , 63 , 11 , 42 , 57 , 38 , 12 , 6 , 29,
44 , 95 , 93 , 94 , 30 , 21 , 88 , 37 , 23 , 51,
15 , 59 , 16 , 17 , 50 , 90 , 26 , 25 , 74 , 36,
14 , 24 , 10 , 32 , 76 , 69 , 79 , 55 , 41 , 98,
97 , 66 , 40 , 46 , 22 , 5 , 47 , 49 , 70 , 83,
60 , 92 , 54 , 43 , 84 , 7 , 72 , 75 , 1 , 86,
81 , 9 , 68 , 58 , 45 , 96 , 31 , 2 , 13 , 28,
95 , 8 , 85 , 61 , 99 , 35 , 71 , 19 , 77 , 91,
11 , 56 , 80 , 64 , 44 , 15 , 14 , 97 , 60 , 81;
Trang 113 Result analysis:
After finishing our code, we then proceed to solve the case by LINGO with the codes given
Global optimal solution found
Objective value: 2,000,000 Objective bound: 2,000,000 Infeasibilities: 0.000000
Extended solver steps: 1
Total solver iterations: 221
Elapsed runtime seconds: 55.48 Model Class: MIQP Total variables: 5171
Nonlinear variables: 3110
Integer variables: 190
Total constraints: 4601
Nonlinear constraints: 21
Total nonzeros: 15300
Nonlinear nonzeros: 2100 Further results are embedded inside of the txt file (we will include on Google Drive later under the name GROUP 10 - LINGO SOLUTION)
4 Sensitivity analysis:
Realizing that the sensitivity analysis requires to find changes in the data for 5,171 variables available in our project, we decide to skip this part and move on to state our problems while proceeding with our project
LIMITATIONS
Some problems related to model constraints and data base that led to an illogical optimal solution:
• This paper cannot provide the production quantity function 𝑞𝑘𝑡 which led to unidentifiability of the upper and lower limits of each line segment all variables → that related to production are equal to 0
• The numerical results cannot provide specific constants which is necessary to solve
a completed model → assuming data may lead to error in solution (we cannot know whether these parameters are logical or not)
• On the other hand, there is a lack of flexibility of the mathematical model in practice
In addition, the service level constraints do not allow occasional over-achievement of the target service level, which occurs particularly in a situation with high-capacity utilization when the period capacity is not sufficient to fill the actual demand and it, therefore, is required to shift production into an earlier production cycle This limitation has already been resolved and published by the same authors in 2017