Introduction
References | Multi-objective | Economic cost | Cold chain | Shortage | Multi stage | Blood quality | Satisfaction | Epidemic risk |
---|---|---|---|---|---|---|---|---|
[17] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||||
[18] | \(\checkmark \) | \(\checkmark \) | ||||||
[19] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | |||||
[20] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | |||||
[21] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | |||||
[22] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||||
[6] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||||
[7] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | |||||
[23] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | |||||
[24] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | |||||
[25] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | |||||
[26] | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | ||||
Our study | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) | \(\checkmark \) |
Literature review
Blood transshipment and allocation problem in conventional environment
Blood transshipment and allocation problem in emergencies
Blood supply chain management in the COVID-19 epidemic
A two-stage transshipment-allocation model for emergency blood products
Problem description
Notations
-
S: Set of decision-making stages, \(S=\left\{ s|s=1,2 \right\} \).
-
T: Set of periods for each stage, \(T=\left\{ t|t=1,2,...,{{t}_{\text {end}}} \right\} \).
-
I: Set of rescue blood banks, \(i\in I\).
-
J: Set of affected blood banks, \(j,n\in J\).
-
JH: Set of hospitals served by blood bank j,\(jh\in JH\). Here, the subscript jh represents hospital h in the area covered by blood bank j.
-
M: Set of transportation modes,\(m=\left\{ m|m=1,2 \right\} \), where \(m=1\) denotes the road transportation, and \(m=2\) denotes the air transportation.
-
P: Set of blood products,\(P=\left\{ p|p=wb,bp,rc \right\} \), where wb, bp, and rc represent whole blood, plasma, and red blood cell suspension, respectively
-
(2) Parameters
-
\(d_{ij}^{m}\): Distance between location i and location j by using transportation mode.
-
\(v^{m}\): Velocity of transportation mode m.
-
\(\tau _{ij}^{m}\): Transportation time from i to j from using transportation mode m.
-
\({{\tau }^{m}}\): The remaining time spent going from i to j from using transportation mode m. It includes the time spent from by loading and unloading goods and getting them to the airport.
-
\(C\text {a}{{\text {p}}^{m}}\): The capacity limit for the transportation mode m.
-
\(T{{U}_{s}}\): Transport time limit at stage s.
-
\(\Delta {{T}^{p}}\): Refrigeration temperature coefficient for blood product p.
-
\({{c}_{s}}\): Unit penalty cost for shortage
-
\({{c}_{m}}\): Unit transportation cost per unit of blood product from using transportation mode m.
-
\({{c}_{e}}\): Unit blood refrigeration cost.
-
\({{f}^{m}}\): The fixed cost of transportation per time from using transportation mode m.
-
\({{\lambda }_{p}}\): Output coefficient for blood product p.
-
\(N(\mu _{jh}^{p},\sigma {{_{jh}^{p}}^{2}})\): Normal distribution of daily predicted demand with mean \(\mu _{jh}^{p}\) and variance \(\sigma {{_{jh}^{p}}^{2}}\) for blood product p in hospital h covered by blood bank j.
-
\(de_{jh,s}^{p}(t)\): Actual demand for blood product p in hospital h during period t at stage s.
-
\(\overline{B}_{i,s}^{p}\): Upper limit for the transshipment amount of blood product p from rescue blood bank i at stage s.
-
\(I_{j,0}^{p}\): Initial inventory level of blood product p in blood bank j.
-
\(I_{jh,0}^{p}\): Initial inventory level of blood product p in hospital h covered by blood bank j
-
\({{Q}_{j,s}}(t)\): The amount of blood collected in blood bank j at stage s.
-
\(q_{j,s}^{p}(t)\): The amount of blood product p being prepared in blood bank j at stage s during period t.
-
\(r_{j,s}^{{}}\): If blood bank j is located in low-risk areas at stage s, it is 1; otherwise, it is 0.
-
(3) Intermediate variables
-
\(I_{j,s}^{p}\): Inventory level of blood product p in blood bank j at the end of stage s.
-
\(I_{jh,s}^{p}\): The amount of inventory of blood product p that hospital h is being allocated by blood bank j at the end of stage s.
-
\(x_{j,s}^{p}\): The available amount of blood product p to be allocated in blood bank j at stage s.
-
\(R_{jh,s}^{p}\): The amount of shortage for blood product p in hospital h at stage s.
-
(4) Decision variables
-
\(x_{ij,s}^{p}\): The amount of blood product p being transshipped from rescue bank i to affected bank j at stage s.
-
\(X_{jn,s}^{p}\): The amount blood product p being transshipped from affected bank j to affected bank n at stage s.
-
\(y_{ij,s}^{m}\): The used number of vehicles or airplanes from using transportation mode m to move from rescue bank i to affected bank j at stage s.
-
\(z_{jh,s}^{p}\): The allocated amount for blood product p from affected bank j to hospital h at stage s
Objective functions
Mathematical formulation
Estimation of the collected amount of blood products
An improved hybrid MOWOA
Whale position encoding
Algorithm procedure
Distance (air/road) | Rescue banks | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
CQ | CD | CS | GY | NJ | NC | HF | ZZ | XA | ||
Affected banks | WH | 754/944 | 979/1156 | 297/329 | 865/1044 | 457/536 | 262/341 | 310/378 | 467/510 | 653/739 |
YC | 471/581 | 694/834 | 319/401 | 636/859 | 728/842 | 495/636 | 575/688 | 503/625 | 453/683 | |
XY | –/802 | –/976 | –/524 | –/1029 | –/768 | –/647 | –/613 | –/392 | –/510 | |
HG | –/946 | –/1236 | –/386 | –/1100 | –/512 | –/290 | –/357 | –/576 | –/849 | |
JZ | –/667 | –/933 | –/330 | –/825 | –/749 | –/537 | –/594 | –/586 | –/704 |
Stage1/ Stage 2 | CQ | CD | CS | GY | NJ | NC | HF | ZZ | XA |
---|---|---|---|---|---|---|---|---|---|
wb(U) | 809/443 | 839/460 | 639/359 | 822/450 | 791/434 | 648/364 | 769/423 | 730/406 | 799/401 |
bp(U) | 3236/1770 | 3357/1839 | 2557/1432 | 3287/1804 | 3165/1743 | 2582/1451 | 3076/1698 | 2900/1610 | 3160/1732 |
rc(U) | 4046/2213 | 4197/2299 | 3197/1799 | 4109/2255 | 3957/2179 | 3228/1814 | 3846/2123 | 3625/2013 | 3950/2075 |
Quality | 0.95/0.98 | 0.96/0.97 | 0.93/0.96 | 0.90/0.95 | 0.91/0.92 | 0.92/0.97 | 0.95/0.92 | 0.97/0.94 | 0.91/0.93 |
Product/ Hospital | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
wb(U) | 14 | 12 | 13 | 12 | 12 | 14 | 14 | 12 | 14 | 12 |
bp(U) | 56 | 48 | 54 | 53 | 50 | 55 | 55 | 50 | 55 | 53 |
rc(U) | 70 | 60 | 67 | 66 | 63 | 69 | 69 | 63 | 69 | 67 |
Product/ Hospital | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
wb(U) | 15 | 15 | 14 | 15 | 13 | 14 | 14 | 12 | 14 | 13 |
bp(U) | 59 | 60 | 56 | 59 | 52 | 56 | 55 | 49 | 55 | 53 |
rc(U) | 73 | 73 | 71 | 73 | 66 | 70 | 69 | 62 | 68 | 67 |
Product/bank | WH | YC | XY | HG | JZ | |||||
---|---|---|---|---|---|---|---|---|---|---|
\(I_{j,0}^{p}\)
|
\(q_{j,s}^{p}(t)\)
|
\(I_{j,0}^{p}\)
|
\(q_{j,s}^{p}(t)\)
|
\(I_{j,0}^{p}\)
|
\(q_{j,s}^{p}(t)\)
|
\(I_{j,0}^{p}\)
|
\(q_{j,s}^{p}(t)\)
|
\(I_{j,0}^{p}\)
|
\(q_{j,s}^{p}(t)\)
| |
wb(U) | 776 | – | 664 | 40 | 579 | 40 | 463 | – | 558 | 40 |
bp(U) | 3103 | – | 2656 | 160 | 2313 | 160 | 1852 | – | 2232 | 160 |
rc(U) | 3879 | – | 3320 | 200 | 2891 | 200 | 2315 | – | 2789 | 200 |
\({{r}_{j,s}}\)
| 0 | 1 | 1 | 0 | 1 |
Case study and numerical analysis
Case description and data
Results
Algorithm comparison
No. | Objective value | Stage | \({{x}_{ij,s}}\)(U) | Shortage (U) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
\({{z}_{1}}=9.348\)
\({{z}_{2}}=183.229\)
\({{z}_{3}}=706799\)
| 1 | 1821 | 4318 | 330 | 4538 | 3320 | 772 | 241 | 636 | 1492 | 0 |
3871 | 1168 | 329 | 1955 | 1900 | 314 | 674 | 80 | 1199 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 217 | 5534 | 4781 | ||||
0 | 0 | 0 | 551 | 0 | 4947 | 6137 | 0 | 0 | ||||
749 | 0 | 5729 | 1162 | 0 | 378 | 419 | 865 | 0 | ||||
2 | 3604 | 1892 | 511 | 1262 | 1950 | 268 | 668 | 541 | 2430 | |||
0 | 2440 | 554 | 3014 | 1326 | 194 | 361 | 571 | 1398 | ||||
328 | 0 | 0 | 182 | 0 | 241 | 496 | 2655 | 70 | ||||
0 | 0 | 132 | 0 | 60 | 2561 | 501 | 0 | 111 | ||||
0 | 174 | 1992 | 0 | 25 | 340 | 2200 | 0 | 317 | ||||
2 |
\({{z}_{1}}=9.631\)
\({{z}_{2}}=161.560\)
\({{z}_{3}}=2259484\)
| 1 | 2723 | 2854 | 169 | 3003 | 5537 | 712 | 670 | 521 | 6675 | 11,590 |
5351 | 5505 | 216 | 5177 | 2372 | 518 | 741 | 176 | 1223 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 6550 | 0 | ||||
0 | 0 | 0 | 36 | 0 | 5186 | 0 | 0 | 0 | ||||
0 | 0 | 6006 | 0 | 0 | 37 | 0 | 0 | 0 | ||||
2 | 1781 | 1217 | 49 | 2038 | 2819 | 417 | 2766 | 191 | 1420 | |||
2615 | 3359 | 104 | 2450 | 1517 | 278 | 1455 | 168 | 2908 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 3644 | 0 | ||||
0 | 0 | 0 | 0 | 0 | 2910 | 0 | 0 | 0 | ||||
27 | 0 | 3417 | 0 | 0 | 0 | 0 | 0 | 0 | ||||
3 |
\({{z}_{1}}=9.619\)
\({{z}_{2}}=176.849\)
\({{z}_{3}}=1454537\)
| 1 | 2664 | 2695 | 117 | 2832 | 5577 | 259 | 522 | 396 | 1034 | 3728 |
5397 | 5695 | 144 | 5376 | 2334 | 183 | 314 | 154 | 640 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 6689 | 6215 | ||||
11 | 0 | 0 | 0 | 0 | 5086 | 6852 | 0 | 0 | ||||
17 | 0 | 6128 | 0 | 0 | 926 | 0 | 0 | 0 | ||||
2 | 1740 | 1461 | 85 | 2046 | 2768 | 122 | 2677 | 132 | 1436 | |||
2684 | 3111 | 68 | 2442 | 1562 | 97 | 1547 | 89 | 2872 | ||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 3777 | 19 | ||||
0 | 0 | 0 | 0 | 0 | 3387 | 0 | 0 | 0 | ||||
0 | 0 | 3418 | 0 | 0 | 0 | 0 | 0 | 0 |
Numerical example | Algorithm | Model size | Convergence iterations | Tiers | CPU time(s) | Different pareto solutions | HV(\(*10^7\)) |
---|---|---|---|---|---|---|---|
1 | NSGA-II | 9\(\times \)5 | 222 | 1 | 150.188 | 97 | 0.661 |
MODE | 213 | 1 | 214.648 | 96 | 0.865 | ||
MOGWO | – | 2 | 162.960 | 23 | – | ||
MOWOA | 368 | 1 | 131.198 | 100 | 3.910 | ||
2 | NSGA-II | 10\(\times \)5 | 378 | 1 | 153.519 | 85 | 0.762 |
MODE | 298 | 1 | 220.621 | 100 | 0.620 | ||
MOGWO | – | 2 | 168.951 | 27 | – | ||
MOWOA | 369 | 1 | 128.905 | 100 | 4.225 | ||
3 | NSGA-II | 13\(\times \)6 | 355 | 1 | 205.447 | 88 | 10.361 |
MODE | 180 | 1 | 270.526 | 100 | 2.446 | ||
MOGWO | – | 2 | 231.141 | 20 | – | ||
MOWOA | 373 | 1 | 139.534 | 100 | 16.880 | ||
4 | NSGA-II | 16\(\times \)7 | 275 | 1 | 184.021 | 92 | 30.168 |
MODE | 386 | 1 | 336.022 | 100 | 47.305 | ||
MOGWO | – | 2 | 246.011 | 22 | – | ||
MOWOA | 317 | 1 | 153.395 | 100 | 49.080 | ||
5 | NSGA-II | 19\(\times \)8 | 289 | 1 | 238.611 | 84 | 17.583 |
MODE | 366 | 1 | 417.341 | 100 | 18.310 | ||
MOGWO | – | 2 | 298.865 | 23 | – | ||
MOWOA | 360 | 1 | 188.120 | 100 | 47.695 | ||
6 | NSGA-II | 22\(\times \)9 | 350 | 1 | 221.194 | 83 | 5.638 |
MODE | 396 | 1 | 463.810 | 100 | 47.008 | ||
MOGWO | – | 2 | 234.780 | 18 | – | ||
MOWOA | 340 | 1 | 200.830 | 100 | 50.397 | ||
7 | NSGA-II | 30\(\times \)10 | 377 | 1 | 279.631 | 90 | 8.737 |
MODE | 379 | 1 | 706.985 | 100 | 2.948 | ||
MOGWO | – | 2 | 312.982 | 15 | – | ||
MOWOA | 316 | 1 | 214.351 | 100 | 26.727 | ||
8 | NSGA-II | 40\(\times \)10 | 374 | 1 | 300.880 | 81 | 12.670 |
MODE | 389 | 1 | 724.026 | 100 | 76.330 | ||
MOGWO | – | 2 | 293.951 | 11 | – | ||
MOWOA | 373 | 1 | 256.655 | 100 | 213.220 | ||
9 | NSGA-II | 50\(\times \)10 | 385 | 1 | 336.682 | 86 | 3.691 |
MODE | 397 | 1 | 988.276 | 100 | 3.441 | ||
MOGWO | – | 2 | 288.461 | 15 | – | ||
MOWOA | 308 | 1 | 239.865 | 100 | 35.668 |
Solution no. | Method | Obj.1 | Obj.2 | Obj.3 | Shortage |
---|---|---|---|---|---|
1 | One-stage | 9.601 | 144.247 | 3,124,246 | 24,923 |
Two-stage | 9.602 | 183.229 | 1,054,183 | 0 | |
Gap | \(< 0.1\%\) | 27.02% | 66.26% | 100% | |
2 | One-stage | 9.545 | 170.367 | 1,591,669 | 7913 |
Two-stage | 9.626 | 170.433 | 1,859,612 | 7435 | |
Gap | 0.85% | \(< 0.1\%\) | 16.83% | 6.04% | |
3 | One-stage | 9.562 | 164.150 | 1,925,736 | 11,491 |
Two-stage | 9.628 | 169.189 | 1,928,258 | 8131 | |
Gap | 0.69% | 3.07% | <\(-\)0.1% | 29.24% |