This repository contains the files of my project for the "Production Planning" course at Amirkabir University of Technology (Tehran Polytechnic).
The dataset contains 6 tables, containing the actual demands for 6 type of products belonging to 3 groups:
- Group 1 (G1): M1, M3, and M4
- Group 2 (G2): M2 and M5
- Group 3 (G3): M6
This phase focuses on 3 major contributions:
- Predicting the demands for each group at the next 6 steps in the time series, implementing and using various forecasting methods such as Simple Exponential Smoothing (SES) and Linear Regression (LR).
- Conducting error analysis on the resulting predictions from the forecasting methods, calculating MFE and MAE for each of them.
- Calculating the tracking signal for each forecasting method.
Our demand forecasting section contains 5 methods:
- Simple Exponential Smoothing (SES) with
alpha=0.3
. - Simple Moving Average (SMA) with
n=3
. - Weighted Moving Average (WMA) with
weights=[0.2, 0.3, 0.5]
. - Linear Regression (LR)
- Adjusted Linear Regression (ALR) with
cycle_length=12
.
This section's results can be found at
./1.%20Demand%20Forecasting/output.xlsx
. However, we can have a glimpse at the
tracking signals:
G1 | G2 | G3 | |
---|---|---|---|
SES | 1.627202 | 1.494879 | -5.000000 |
SMA | -1.497890 | -0.543943 | -5.000000 |
WMA | -2.279876 | -1.372624 | -5.000000 |
LR | 4.758926 | 4.039556 | 3.254925 |
ALR | 5.000000 | 3.809070 | 1.948311 |
In this phase, we use the forecasts of the first phase in the S&OP of these 3 product groups, modeling an LP problem and conducting sensitivity analysis on two of its parameters.
The objective function, constraints, parameters, and decision variables can be
found at ./2. S&OP/report.pdf
. Also, the implementation of this problem in
Python's PuLP can be found at ./2. S&OP/notebook.ipynb
. Moreover, the solved
model is exported and saved at ./2. S&OP/model.json
.
total cost: 59338527006666.664
T20 | T21 | T22 | T23 | T24 | T25 | |
---|---|---|---|---|---|---|
RP | (434092, 147043, 5215) | (434092, 147043, 5215) | (434092, 147043, 5215) | (434148, 147033, 4644) | (434148, 147033, 4644) | (434148, 147033, 4644) |
OP | (5788, 18832, 1413) | (1, 11920, 0) | (0, 0, 0) | (0, 0, 0) | (0, 0, 0) | (0, 0, 0) |
PI | (434092, 147043, 5215) | (0, 0, 0) | (0, 0, 0) | (56, 0, 0) | (0, 0, 0) | (0, 0, 0) |
PD | (0, 0, 0) | (0, 0, 0) | (0, 0, 0) | (0, 10, 571) | (0, 0, 0) | (0, 0, 0) |
IL | (0, 0, 0) | (-599, -2, -300) | (655, -6002, -91) | (0, -6089, 0) | (-44, 8985, 273) | (0, 0, 0) |
IS | (0, 0, 0) | (0, 0, 0) | (655, 0, 0) | (0, 0, 0) | (0, 8985, 273) | (0, 0, 0) |
IG | (0, 0, 0) | (599, 2, 300) | (0, 6002, 91) | (0, 6089, 0) | (44, 0, 0) | (0, 0, 0) |
TW | 187632 | 187632 | 187632 | 187464 | 187464 | 187464 |
OW | 29157 | 13352 | 0 | 0 | 0 | 0 |
HW | 167632 | 0 | 0 | 0 | 0 | 0 |
FW | 0 | 0 | 0 | 168 | 0 | 0 |
As said, sensitivity analysis is conducted on two following parameters:
rs = 12000000, total cost: 55962663006666.664
rs = 13000000, total cost: 57087951006666.664
rs = 14000000, total cost: 58213239006666.664
rs = 15000000, total cost: 59338527006666.664
rs = 16000000, total cost: 60463815006666.664
rs = 17000000, total cost: 61589103006666.664
rs = 18000000, total cost: 62714391006666.664
hc = 1200000, total cost: 59137368606666.664
hc = 1600000, total cost: 59204421406666.664
hc = 2000000, total cost: 59271474206666.664
hc = 2400000, total cost: 59338527006666.664
hc = 2800000, total cost: 59405579806666.664
hc = 3200000, total cost: 59472632606666.664
hc = 3600000, total cost: 59539685406666.664
In the final phase, MPS is developed and MRP is conducted for each product
group. More details can be found at ./3. MPS and MRP/notebook.ipynb
and
./3. MPS and MRP/report.pdf
.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Forecast | 0.0 | 109970.0 | 109970.0 | 109970.0 | 109970.0 | 108673.0 | 108673.0 | 108673.0 | 108673.0 | 108210.0 | ... | 108701.0 | 108701.0 | 108548.0 | 108548.0 | 108548.0 | 108548.0 | 108526.0 | 108526.0 | 108526.0 | 108526.0 |
Order | 0.0 | 101008.0 | 107570.0 | 82990.0 | 92990.0 | 81660.0 | 69276.0 | 62743.0 | 59740.0 | 75777.0 | ... | 70151.0 | 58829.0 | 61655.0 | 53822.0 | 56719.0 | 59315.0 | 60527.0 | 54358.0 | 53500.0 | 62392.0 |
Demand | 0.0 | 101008.0 | 107570.0 | 82990.0 | 92990.0 | 81660.0 | 69276.0 | 108673.0 | 108673.0 | 108210.0 | ... | 108701.0 | 108701.0 | 108548.0 | 108548.0 | 108548.0 | 108548.0 | 108526.0 | 108526.0 | 108526.0 | 108526.0 |
PoH | 4740.0 | 119950.0 | 12380.0 | 145608.0 | 52618.0 | 187176.0 | 117900.0 | 9227.0 | 116772.0 | 8562.0 | ... | 6483.0 | 114000.0 | 5452.0 | 113122.0 | 220792.0 | 112244.0 | 219936.0 | 111410.0 | 219102.0 | 110576.0 |
ATP | 0.0 | 7640.0 | 0.0 | 40238.0 | 0.0 | 2539.0 | 0.0 | 0.0 | 80701.0 | 0.0 | ... | 0.0 | 95734.0 | 0.0 | 162396.0 | 100184.0 | 0.0 | 101333.0 | 0.0 | 100326.0 | 0.0 |
MPS | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 0.0 | 216218.0 | 0.0 | ... | 0.0 | 216218.0 | 0.0 | 216218.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Forecast | 0.0 | 41469.0 | 41469.0 | 41469.0 | 41469.0 | 39742.0 | 39742.0 | 39742.0 | 39742.0 | 38261.0 | ... | 36780.0 | 36780.0 | 32990.0 | 32990.0 | 32990.0 | 32990.0 | 39005.0 | 39005.0 | 39005.0 | 39005.0 |
Order | 0.0 | 37048.0 | 38661.0 | 32388.0 | 30016.0 | 28078.0 | 29133.0 | 33582.0 | 27698.0 | 28652.0 | ... | 22506.0 | 19947.0 | 23133.0 | 26109.0 | 20192.0 | 22460.0 | 19769.0 | 18557.0 | 18004.0 | 18910.0 |
Demand | 0.0 | 37048.0 | 38661.0 | 32388.0 | 30016.0 | 28078.0 | 29133.0 | 39742.0 | 39742.0 | 38261.0 | ... | 36780.0 | 36780.0 | 32990.0 | 32990.0 | 32990.0 | 32990.0 | 39005.0 | 39005.0 | 39005.0 | 39005.0 |
PoH | 3160.0 | 110257.0 | 71596.0 | 39208.0 | 9192.0 | 125259.0 | 96126.0 | 56384.0 | 16642.0 | 122526.0 | ... | 41548.0 | 4768.0 | 115923.0 | 82933.0 | 49943.0 | 16953.0 | 122093.0 | 83088.0 | 44083.0 | 5078.0 |
ATP | 0.0 | 6032.0 | 0.0 | 0.0 | 0.0 | 25654.0 | 0.0 | 0.0 | 0.0 | 41413.0 | ... | 0.0 | 0.0 | 52251.0 | 0.0 | 0.0 | 0.0 | 68905.0 | 0.0 | 0.0 | 0.0 |
MPS | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | ... | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Forecast | 0.0 | 1657.0 | 1657.0 | 1657.0 | 1657.0 | 1379.0 | 1379.0 | 1379.0 | 1379.0 | 1252.0 | ... | 1139.0 | 1139.0 | 1093.0 | 1093.0 | 1093.0 | 1093.0 | 1230.0 | 1230.0 | 1230.0 | 1230.0 |
Order | 0.0 | 1497.0 | 1195.0 | 1558.0 | 1280.0 | 1426.0 | 1342.0 | 1074.0 | 1041.0 | 1133.0 | ... | 821.0 | 1122.0 | 1122.0 | 856.0 | 1019.0 | 842.0 | 1074.0 | 815.0 | 947.0 | 855.0 |
Demand | 0.0 | 1497.0 | 1195.0 | 1558.0 | 1280.0 | 1426.0 | 1342.0 | 1379.0 | 1379.0 | 1252.0 | ... | 1139.0 | 1139.0 | 1122.0 | 1093.0 | 1093.0 | 1093.0 | 1230.0 | 1230.0 | 1230.0 | 1230.0 |
PoH | 1975.0 | 90570.0 | 89375.0 | 87817.0 | 86537.0 | 85111.0 | 83769.0 | 82390.0 | 81011.0 | 79759.0 | ... | 72586.0 | 71447.0 | 70325.0 | 69232.0 | 68139.0 | 67046.0 | 65816.0 | 64586.0 | 63356.0 | 62126.0 |
ATP | 0.0 | 63994.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
MPS | 0.0 | 90092.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Gross Requirements | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 0.0 | 216218.0 | 0.0 | ... | 0.0 | 216218.0 | 0.0 | 216218.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 |
Scheduled Receipts | 0.0 | 216218.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
PoH | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | ... | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 | 4740.0 |
Net Requirements | 0.0 | 0.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 0.0 | 216218.0 | 0.0 | ... | 0.0 | 216218.0 | 0.0 | 216218.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 |
Planned Order Receipt | 0.0 | 0.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 0.0 | 216218.0 | 0.0 | ... | 0.0 | 216218.0 | 0.0 | 216218.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 |
Planned Order Release | 0.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | ... | 216218.0 | 0.0 | 216218.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 216218.0 | 0.0 | 0.0 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Gross Requirements | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | ... | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 |
Scheduled Receipts | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
PoH | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | ... | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 | 3160.0 |
Net Requirements | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | ... | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 |
Planned Order Receipt | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | ... | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 |
Planned Order Release | 0.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | ... | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 144145.0 | 0.0 | 0.0 | 0.0 | 0.0 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ... | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Gross Requirements | 0.0 | 90092.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
Scheduled Receipts | 0.0 | 90092.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
PoH | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | ... | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 | 1975.0 |
Net Requirements | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
Planned Order Receipt | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
Planned Order Release | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | ... | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |