1 Introduction
2 Literature
2.1 Food supply chain (FSC)
2.2 Recent related works on seafood supply chain (SFSC)
-
This study presented a seven-level MILP supply chain network for shrimp product including marine fishery and aquaculture product resources, distributors, wholesalers, factories, markets (customers), shrimp waste powder factories and poultry and livestock food market.
-
For the first time, the proposed network considered potential factories which use the collected waste of shrimp products as input for their process.
-
In this study, the cost minimization of the network is considered while satisfying the demand of shrimp products and in the same time supplying the demands of poultry and livestock food market.
-
The above review has shown that all previous related works have focused either on marine or aquaculture products; however our proposed model took both the products into account with interesting industrial sights.
-
The literature review has emphasized that most of the supply chain and logistics studies were based on NP-hard models (Jo et al. 2007; Zheng et al. 2013; Deng et al. 2017). Hence, metaheuristic algorithms are the compulsory and the best way to solve large-scale networks (Rocco and Morabito 2020; Wang et al. 2013). Therefore, this research not only takes advantages of classic and modern metaheuristics but also develops two hybrid metaheuristics to solve the suggested NP-hard problem.
Author(s) | Year | Type of product | Modeling | Objective |
---|---|---|---|---|
Yu and Leung | 2005 | Shrimp | Linear | Scheduling (the harvesting and restocking time) for maximizing total profit throughout the planning horizon, with biological and economic constraints |
Yu et al | 2006 | Shrimp | Linear | Production scheduling for maximizing the net revenue under different constraints |
Kumar et al | 2006 | Fish | Multi-objective | Minimization of service costs, late deliveries, and unfulfilled demands |
Pathumnakul et al | 2009 | Shrimp | Mixed Integer Linear | Minimization of overall inventory costs of the chain |
Jensen et al | 2010 | Fish | Linear | Maximization of fish supply chain profit |
Blanchard et al | 2013 | Shrimp | Non-Linear | Determination of the optimal harvesting times and corresponding optimal harvesting fractions for Maximization of the total revenue |
Abedi and Zhu | 2016 | Fish | Mixed Integer Linear | Optimal purchase, production and distribution of fish farm for maximization of the total profit of the supply chain |
Lin and Wu | 2016 | White Shrimp | Theoretical Models | Optimal price and inventory level to maximize profit |
Tabrizi et al | 2018 | Warm-Water Fish | Non-Linear | Maximization of the total profit |
This study | 2020 | Shrimp | Mixed Integer Linear | Minimization of the supply chain costs |
-
How many and which distribution points, wholesalers, shrimp factories, and shrimp waste powder factories should be selected and established?
-
How much shrimp products and shrimp waste powder should be transported within the network?
-
How do shrimp production and shrimp waste powder optimally flow in the network?
3 Proposed model
3.1 Problem description
3.2 Assumptions
-
The SSC model is a single-period, single-product mixed integer linear programming model.
-
The locations of the fisheries, aquacultures, and customers are considered fixed. On the other hand, the distribution centers, wholesalers, factories, and markets are assumed as potential locations.
-
Market demands must be satisfied.
-
It is supposed that there is shrimp waste and also there is demand for the shrimp powder.
-
Shrimp products are transported and preserved in cold containers.
3.3 Model notations
Indices | |
i = 1,2,…,I | The production location (shrimp fisher) |
i' = 1,2,…,I' | The production location (shrimp farm) |
j = 1,2,…,J | The potential point of the distribution center |
k = 1,2,…,K | The potential location for the wholesaler |
l = 1,2,…,L | The potential location for the factory |
m = 1,2,…,M | The customer index |
n = 1,2,…,N | The potential site for shrimp waste powder factory |
p = 1,2,…,P | The poultry and livestock food market |
Parameters | |
\({f}_{l}\) | Fixed cost of opening factory l |
\({f{^{\prime}}}_{n}\) | Fixed cost of opening shrimp waste powder factory n |
\({Cx}_{ij}\) | Transport cost per unit of product from shrimp fishers i to distribution center j |
\({Cy}_{i{^{\prime}}j}\) | Transport cost per unit of product from shrimp farmers i' to distribution center j |
\({Cu}_{jk}\) | Transport cost per unit of product from distribution center j to wholesaler k |
\({Ca}_{jl}\) | Transport cost per unit of product from distribution center j to factories l |
\({Cb}_{km}\) | Transport cost per unit of product from wholesaler k to customer m |
\({Cd}_{lm}\) | Transport cost per unit of product from factory l to customer m |
\({Cf}_{kn}\) | Transport cost per unit of shrimp waste from wholesaler k to shrimp waste powder factory n |
\({Cf{^{\prime}}}_{ln}\) | Transport cost per unit of shrimp waste from factory l to shrimp waste powder factory n |
\({Cl}_{np}\) | Transport cost per unit of shrimp waste powder from factory n to market p |
\({\lambda }_{i}\) | Production capacity of shrimp fisher i |
\({\lambda {^{\prime}}}_{i{^{\prime}}}\) | Production capacity of shrimp farmer i' |
\({\lambda d}_{j}\) | Holding capacity at distribution center j |
\({\lambda f}_{l}\) | Production capacity of factory l |
\({\lambda w}_{k}\) | Holding capacity at wholesaler k |
\({\lambda s}_{n}\) | Production capacity of shrimp waste powder factory n |
\({\alpha }_{k}\) | Shrimp waste rate by wholesaler k |
\({\beta }_{l}\) | Shrimp production rate by factory l |
\({\xi }_{n}\) | Shrimp waste powder production rate by factory n |
\({Db}_{m}\) | Shrimp product demand by customer m |
\({Dp}_{p}\) | Shrimp waste powder demand by poultry and livestock food market p |
Decision variables | |
\({X}_{ij}\) | Quantity of product transported from shrimp fisher \(i\) to distribution center \(j\) |
\({X{^{\prime}}}_{i{^{\prime}}j}\) | Quantity of product transported from shrimp farmer \(i{^{\prime}}\) to distribution center \(j\) |
\({U}_{jk}\) | Quantity of product transported from distribution center \(j\) to wholesaler \(k\) |
\({S}_{jl}\) | Quantity of product transported from distribution center \(j\) to factory \(l\) |
\({W}_{km}\) | Quantity of product transported from wholesaler \(k\) to customer \(m\) |
\({V}_{lm}\) | Quantity of product transported from factory \(l\) to customer \(m\) |
\({R}_{kn}\) | Quantity of waste shrimp transported from wholesaler \(k\) to shrimp waste powder factory \(n\) |
\({G}_{ln}\) | Quantity of waste shrimp transported from factory \(l\) to shrimp waste powder factory \(n\) |
\({B}_{np}\) | Quantity of shrimp waste powder transported from factory \(n\) to market \(p\) |
\({Ih}_{j}\) | Quantity of stored shrimp by distribution center \(j\) |
\({Dis}_{j}\) | Equal to 1 if distribution center \(j\) is opened at the elected location, 0 otherwise |
\({Wh}_{k}\) | Equal to 1 if wholesaler \(k\) is opened at the elected location, 0 otherwise |
\({Fr}_{l}\) | Equal to 1 if factory \(l\) is opened at the elected location, 0 otherwise |
\({Wp}_{n}\) | Equal to 1 if shrimp waste powder factory \(n\) is opened at the elected location, 0 otherwise |
3.4 Shrimp supply chain mathematical model
-
Objective FunctionThe objective function of the SSC is to minimize the total cost including fixed opening costs and transportation costs by means of Eq. (1).$$ \begin{aligned} Min~Z = \left[ {\mathop \sum \limits_{{l = 1}}^{L} f_{l} \times Fr_{l} + \mathop \sum \limits_{{n = 1}}^{N} f'_{n} \times Wp_{n} } \right] + \left[ {\mathop \sum \limits_{{i = 1}}^{I} \mathop \sum \limits_{{j = 1}}^{J} Cx_{{ij}} \times X_{{ij}} } \right. \hfill \\ & + \mathop \sum \limits_{{i' = 1}}^{{I'}} \mathop \sum \limits_{{j = 1}}^{J} Cy_{{i'j}} \times X'_{{i'j}} + \mathop \sum \limits_{{j = 1}}^{J} \mathop \sum \limits_{{k = 1}}^{K} Cu_{{jk}} \times U_{{jk}} + \mathop \sum \limits_{{j = 1}}^{J} \mathop \sum \limits_{{l = 1}}^{L} Ca_{{jl}} \times S_{{jl}} \hfill \\ &+ \mathop \sum \limits_{{k = 1}}^{K} \mathop \sum \limits_{{m = 1}}^{M} Cb_{{km}} \times W_{{km}} + \mathop \sum \limits_{{l = 1}}^{L} \mathop \sum \limits_{{m = 1}}^{M} Cd_{{lm}} \times V_{{lm}} + \mathop \sum \limits_{{k = 1}}^{K} \mathop \sum \limits_{{n = 1}}^{N} Cf_{{kn}} \times R_{{kn}} \hfill \\ \left. { + \mathop \sum \limits_{{l = 1}}^{L} \mathop \sum \limits_{{n = 1}}^{N} Cf'_{{\ln }} \times G_{{\ln }} + \mathop \sum \limits_{{n = 1}}^{N} \mathop \sum \limits_{{p = 1}}^{P} Cl_{{np}} \times B_{{np}} } \right] \hfill \\ \end{aligned} $$(1)
-
Constraint$$\mathop \sum \limits_{j = 1}^{J} Dis_{j} \ge 1$$(2)
4 Solution approach
4.1 Encoding and decoding
4.2 Metaheuristics
4.2.1 Genetic algorithm (GA)
4.2.2 Simulated annealing (SA)
4.2.3 Keshtel algorithm (KA)
4.3 Hybrid metaheuristics
4.3.1 Hybrid of genetic algorithm and simulating annealing (HGASA)
4.3.2 Hybrid of Keshtel algorithm and simulating annealing (HKASA)
5 Computational results
5.1 Data generation
Test # | Index | ||||||||
---|---|---|---|---|---|---|---|---|---|
i | i’ | j | k | l | m | n | p | ||
Small-Size | 1 | 2 | 3 | 3 | 4 | 2 | 3 | 2 | 2 |
2 | 4 | 5 | 3 | 5 | 2 | 5 | 2 | 5 | |
3 | 8 | 7 | 9 | 9 | 7 | 7 | 9 | 8 | |
4 | 14 | 12 | 12 | 11 | 13 | 11 | 12 | 11 | |
5 | 14 | 16 | 15 | 13 | 11 | 15 | 16 | 12 | |
Medium-Size | 6 | 22 | 26 | 20 | 21 | 29 | 22 | 26 | 27 |
7 | 27 | 30 | 30 | 32 | 28 | 33 | 34 | 31 | |
8 | 36 | 48 | 47 | 36 | 36 | 48 | 44 | 46 | |
9 | 53 | 48 | 57 | 53 | 41 | 55 | 48 | 52 | |
10 | 64 | 66 | 69 | 62 | 61 | 61 | 66 | 64 | |
Large-Size | 11 | 84 | 80 | 83 | 87 | 78 | 84 | 85 | 90 |
12 | 93 | 102 | 98 | 104 | 104 | 97 | 97 | 107 | |
13 | 129 | 197 | 133 | 113 | 128 | 118 | 147 | 149 | |
14 | 209 | 159 | 189 | 241 | 190 | 172 | 205 | 213 | |
15 | 339 | 323 | 287 | 307 | 328 | 301 | 318 | 255 |
Parameter | Values | Unit |
---|---|---|
\(f_{l}\) | Uniform ~ [10, 30] | Dollar ($) |
\(f^{\prime}_{n}\) | Uniform ~ [20, 42] | Dollar ($) |
\(Cx_{ij}\) | Uniform ~ [80, 110] | Dollar per Ton |
\(Cy_{i^{\prime}j}\) | Uniform ~ [60, 90] | Dollar per Ton |
\(Cu_{jk}\) | Uniform ~ [55, 75] | Dollar per Ton |
\(Ca_{jl}\) | Uniform ~ [45, 58] | Dollar per Ton |
\(Cb_{km}\) | Uniform ~ [62, 80] | Dollar per Ton |
\(Cd_{lm}\) | Uniform ~ [35, 45] | Dollar per Ton |
\(Cf_{kn}\) | Uniform ~ [35, 45] | Dollar per Ton |
\(Cf^{\prime}_{ln}\) | Uniform ~ [25, 40] | Dollar per Ton |
\(Cl_{np}\) | Uniform ~ [40, 50] | Dollar per Ton |
\(\lambda_{i}\) | Uniform ~ [5, 10] | Tons |
\(\lambda ^{\prime}_{i^{\prime}}\) | Uniform ~ [10, 25] | Tons |
\(\lambda d_{j}\) | Uniform ~ [12, 30] | Tons |
\(\lambda f_{l}\) | Uniform ~ [6, 18] | Tons |
\(\lambda w_{k}\) | Uniform ~ [8, 25] | Tons |
\(\lambda s_{n}\) | Uniform ~ [1, 3] | Tons |
\(\alpha_{k}\) | [0.1, 0.12, 0.15] | Percentage |
\(\beta_{l}\) | [0.90, 0.93, 0.97] | Percentage |
\(\xi_{n}\) | [0.95, 0.93, 0.97] | Percentage |
\(Db_{m}\) | Uniform ~ [12, 30] | Tons |
\(Dp_{p}\) | Uniform ~ [2, 4] | Tons |
5.2 Parameters tuning
Algorithms | GA | SA | KA | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Notation | MaxIt | Pc | Pm | Npop | MaxIt | SubIt | T0 | Tdamp | MaxIt | Npop | PN1 | PN2 | Smax |
Optimal Level | 800 | 0.8 | 0.1 | 100 | 800 | 30 | 1500 | 0.90 | 800 | 150 | 0.3 | 0.2 | 4 |
Algorithms | HKASA | HGASA | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Notation | MaxIt | Npop | PN1 | PN2 | Smax | T0 | Tdamp | MaxIt | Npop | Pc | Pm | T0 | Tdamp |
Optimal Level | 800 | 150 | 0.4 | 0.2 | 4 | 2000 | 0.9 | 800 | 100 | 0.9 | 0.15 | 2000 | 0.88 |
5.3 Applied example
Tests | Algorithms | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
GA | SA | KA | |||||||||
OF | RPD | HT | CT | OF | RPD | HT | CT | OF | RPD | ||
Small-Size | 1 | 7723.55 | 0.0000 | 23.76 | 42.42 | 7723.55 | 0.0000 | 8.99 | 15.76 | 7723.55 | 0.0000 |
2 | 11,486.71 | 0.0115 | 34.84 | 55.31 | 11,474.06 | 0.0104 | 10.41 | 19.64 | 11,355.86 | 0.0000 | |
3 | 33,071.25 | 0.0091 | 65.24 | 95.94 | 32,786.31 | 0.0004 | 17.92 | 33.81 | 32,875.03 | 0.0031 | |
4 | 44,948.50 | 0.0204 | 84.64 | 120.92 | 44,497.55 | 0.0101 | 21.28 | 42.57 | 44,050.55 | 0.0000 | |
5 | 48,576.65 | 0.0370 | 101.89 | 134.06 | 46,845.50 | 0.0000 | 25.84 | 46.14 | 47,155.25 | 0.0066 | |
Medium-Size | 6 | 69,285.68 | 0.0492 | 166.74 | 213.77 | 66,034.25 | 0.0000 | 42.52 | 70.86 | 67,681.41 | 0.0249 |
7 | 119,697.27 | 0.0276 | 257.80 | 303.29 | 116,568.78 | 0.0007 | 49.32 | 98.63 | 116,819.47 | 0.0029 | |
8 | 186,768.95 | 0.0408 | 344.59 | 396.09 | 180,103.55 | 0.0037 | 74.12 | 132.36 | 179,703.90 | 0.0014 | |
9 | 218,473.50 | 0.0279 | 421.41 | 468.23 | 213,292.05 | 0.0036 | 93.63 | 158.70 | 212,849.85 | 0.0015 | |
10 | 267,487.35 | 0.0424 | 558.19 | 613.40 | 258,446.40 | 0.0072 | 125.46 | 212.64 | 256,610.55 | 0.0000 | |
Large-Size | 11 | 327,230.00 | 0.0227 | 766.77 | 782.41 | 319,968.75 | 0.0000 | 260.72 | 266.04 | 321,759.40 | 0.0056 |
12 | 374,918.20 | 0.0119 | 894.35 | 912.60 | 370,492.55 | 0.0000 | 315.87 | 319.06 | 372,906.50 | 0.0065 | |
13 | 517,371.39 | 0.0128 | 1275.40 | 1301.42 | 511,829.17 | 0.0020 | 435.53 | 439.93 | 511,997.58 | 0.0023 | |
14 | 770,929.47 | 0.0282 | 2146.73 | 2190.54 | 751,002.95 | 0.0016 | 722.96 | 730.27 | 751,635.90 | 0.0025 | |
15 | 1,162,159.40 | 0.0188 | 3755.28 | 3831.92 | 1,143,016.73 | 0.0020 | 1251.89 | 1264.53 | 1,143,265.08 | 0.0022 |
Tests | Algorithms | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
KA | HKASA | HGASA | |||||||||
HT | CT | OF | RPD | HT | CT | OF | RPD | HT | CT | ||
Small-Size | 1 | 63.36 | 105.61 | 7723.55 | 0.0000 | 59.11 | 113.68 | 7723.55 | 0.0000 | 33.44 | 58.66 |
2 | 78.13 | 137.07 | 11,433.53 | 0.0068 | 87.25 | 164.62 | 11,483.66 | 0.0113 | 43.81 | 75.54 | |
3 | 129.34 | 244.03 | 32,774.11 | 0.0000 | 145.87 | 270.14 | 32,938.22 | 0.0050 | 69.31 | 130.76 | |
4 | 156.19 | 294.69 | 44,103.75 | 0.0012 | 180.47 | 353.87 | 44,735.86 | 0.0156 | 88.97 | 164.76 | |
5 | 186.82 | 322.11 | 46,949.73 | 0.0022 | 211.51 | 391.68 | 47,725.03 | 0.0188 | 94.42 | 181.58 | |
Medium-Size | 6 | 307.12 | 511.86 | 66,985.99 | 0.0144 | 315.49 | 595.27 | 67,679.93 | 0.0249 | 157.71 | 286.75 |
7 | 414.96 | 715.44 | 116,482.36 | 0.0000 | 528.89 | 944.45 | 118,167.34 | 0.0145 | 230.78 | 404.88 | |
8 | 481.74 | 875.88 | 179,446.81 | 0.0000 | 577.09 | 1049.26 | 183,489.91 | 0.0225 | 271.53 | 532.42 | |
9 | 584.13 | 1123.32 | 212,534.96 | 0.0000 | 811.59 | 1352.66 | 215,945.37 | 0.0160 | 353.75 | 631.69 | |
10 | 723.28 | 1418.20 | 256,664.71 | 0.0002 | 913.81 | 1791.79 | 263,043.70 | 0.0251 | 466.15 | 832.42 | |
Large-Size | 11 | 1911.65 | 1930.96 | 320,464.56 | 0.0015 | 2139.02 | 2160.63 | 323,693.09 | 0.0116 | 1045.87 | 1056.44 |
12 | 2226.55 | 2249.04 | 371,293.06 | 0.0022 | 2388.58 | 2412.71 | 372,812.47 | 0.0063 | 1228.82 | 1241.23 | |
13 | 5593.82 | 5650.32 | 510,829.88 | 0.0000 | 5796.85 | 5915.15 | 514,748.03 | 0.0077 | 1719.46 | 1754.55 | |
14 | 8535.54 | 8621.76 | 749,793.22 | 0.0000 | 8827.05 | 9007.19 | 761,187.19 | 0.0152 | 2883.86 | 2942.72 | |
15 | 9008.35 | 9192.19 | 1,140,700.17 | 0.0000 | 9253.90 | 9442.76 | 1,152,920.42 | 0.0107 | 5031.70 | 5134.38 |
5.4 Sensitivity analyses
Capacity parameters | Change (Tons) | Objective function | Capacity parameters | Change (Tons) | Objective function |
---|---|---|---|---|---|
\(\lambda_{i}\) | 5 | 769,926.8 | \(\lambda w_{k}\) | 5 | 779,183.9 |
10 | 783,700.1 | 10 | 797,546.8 | ||
15 | 801,480.7 | 15 | 846,795.2 | ||
20 | 818,035.9 | 20 | 850,225.3 | ||
25 | 827,072.0 | 25 | 891,046.9 | ||
30 | 844,424.0 | 30 | 921,267.4 | ||
35 | 851,024.2 | 35 | 932,732.1 | ||
\(\lambda ^{\prime}_{i^{\prime}}\) | 5 | 763,474.2 | \(\lambda f_{l}\) | 5 | 804,315.5 |
10 | 771,854.0 | 10 | 826,209.1 | ||
15 | 790,678.5 | 15 | 873,524.1 | ||
20 | 807,244.2 | 20 | 929,484.0 | ||
25 | 813,515.6 | 25 | 954,929.7 | ||
30 | 824,121.2 | 30 | 963,600.9 | ||
35 | 834,273.1 | 35 | 984,758.3 | ||
\(\lambda d_{j}\) | 5 | 782,171.2 | \(\lambda s_{n}\) | 5 | 758,695.0 |
10 | 802,838.9 | 10 | 764,547.2 | ||
15 | 853,042.6 | 15 | 786,475.8 | ||
20 | 871,198.6 | 20 | 793,884.7 | ||
25 | 913,713.3 | 25 | 804,632.3 | ||
30 | 947,666.9 | 30 | 817,834.7 | ||
35 | 956,833.4 | 35 | 828,637.4 |
Production and waste rate parameters | Change (%) | Objective function |
---|---|---|
\(1 - \alpha_{k}\) | 0.80 | 759,524.5 |
0.85 | 770,902.4 | |
0.87 | 796,687.0 | |
0.90 | 814,296.2 | |
0.93 | 873,755.0 | |
0.95 | 917,694.4 | |
0.97 | 934,031.2 | |
\(\beta_{l}\) | 0.80 | 772,198.0 |
0.85 | 781,315.0 | |
0.87 | 809,166.8 | |
0.90 | 844,649.4 | |
0.93 | 883,909.9 | |
0.95 | 929,412.0 | |
0.97 | 963,853.9 | |
\(\xi_{n}\) | 0.80 | 754,590.4 |
0.85 | 757,163.4 | |
0.87 | 773,967.9 | |
0.90 | 785,521.4 | |
0.93 | 846,851.0 | |
0.95 | 906,538.0 | |
0.97 | 914,806.3 |
Demand parameters | Change (Tons) | Objective function | Demand parameters | Change (Tons) | Objective function |
---|---|---|---|---|---|
\(Db_{m}\) | 5 | 749,793.2 | \(Dp_{p}\) | 2 | 758,002.2 |
10 | 772,005.9 | 4 | 768,611.9 | ||
15 | 826,632.0 | 6 | 777,863.1 | ||
20 | 837,372.3 | 8 | 801,915.1 | ||
25 | 854,960.8 | 10 | 813,052.0 | ||
30 | 889,661.5 | 12 | 838,650.6 | ||
35 | 902,351.3 | 14 | 846,043.5 |