\`x^2+y_1+z_12^34\`
Advanced Search
Article Contents
Article Contents

A model and two heuristic methods for The Multi-Product Inventory-Location-Routing Problem with heterogeneous fleet

Abstract Full Text(HTML) Figure(4) / Table(19) Related Papers Cited by
  • The Multi-Product Inventory-Location-Routing Problem with heterogeneous fleet considers a supply chain, which comprises multiple producers, potential distribution centers (DCs) with opening capacity levels and geographically scattered retailers each of which has deterministic demand over a discrete planning horizon. The goal is determining a set of DCs with their capacity levels to open, assigning retailers to the opened DCs, finding product quantities to be ordered by and distributed from opened DCs and determining the fleet and routes to satisfy the demands of retailers with minimum cost. A mixed-integer linear programming model is proposed to describe the problem, which is strengthened by two valid inequalities. Since the commercial solver can only solve the very small-sized instances within a reasonable time, two heuristic methods are developed. Results show that the proposed valid inequalities are effective and both methods provide important savings in acceptable run times compared to the commercial solver.

    Mathematics Subject Classification: Primary: 90B05, 90B06, 90C11; Secondary: 90C27.

    Citation:

    \begin{equation} \\ \end{equation}
  • 加载中
  • Figure 1.  Representation of the problem

    Figure 2.  Representation of the shift delivery move 2

    Figure 3.  Effect of the SEH sub-procedures used in the findRoutes procedure

    Figure 4.  Analysis of intensifications' phases and diversifications

    Table 1.  Main literature review summary on ILRP

    Study # of Pe. # of Pr. Demand Fleet Solution method
    Liu and Lee (2003) Single Single Stochastic Homo. Sequential heuristic
    Liu and Lin (2005) Single Single Stochastic Homo. Hybrid heuristic
    Ambrosino and Scutella (2005) Single Single Deterministic Homo. Com. solver
    Ma and Davidrajuh (2005) Single Single Stochastic Homo. Sequential heuristic
    Shen and Qi (2007) Single Single Stochastic Homo. Branch & Bound
    Javid and Azad (2010) Single Single Stochastic Homo. Tabu search & Sim.Annealing
    Granada and Silva (2012) Multiple Single Deterministic Homo. Column generation
    Sajjadi et al. (2013) Single Multiple Deterministic Homo. Sequential heuristic
    Guerrero et al. (2013) Multiple Single Deterministic Homo. Hybrid heuristic
    Nekooghadirli et al. (2014) Multiple Multiple Stochastic Hete. Multi-objective meta-heuristic methods
    Zhang et al. (2014) Multiple Single Deterministic Homo. Hybrid heuristic
    Guerrero et al. (2015) Multiple Single Deterministic Homo. Relax & Price
    Hiassat et al. (2017) Multiple Single Deterministic Homo. Genetic algorithm
    Saragih et al. (2019) Single Single Stochastic Homo. Sim.Annealing
    Our study Multiple Multiple Deterministic Hete. Sequential heuristic Hybrid heuristic
     | Show Table
    DownLoad: CSV

    Table 2.  Pseudocode of the sequential heuristic method

    Procedure: solveSeq
    1: S$ {}_{00} $ ← findSeqSolWithoutRoutes()
    2: for repNum = 1 to numOfReps do // for all replications
    3:    S$ {}_{0} $ = S$ {}_{00} $
    4:    S$ {}^{*} $ ← findAllRoutes(S$ {}_{0} $)
    5:    Save the S$ {}^{*} $ as the best solution found for the replication numbered repNum
     | Show Table
    DownLoad: CSV

    Table 3.  Pseudocode of the procedure for finding sequential solution without routes

    Procedure: findSeqSolWithoutRoutes
    1:  S$ {}_{00} $ ← findLocAllocDecisions()
    2:  S$ {}_{00} $ ← findInvManDecUsingInvManModel(S$ {}_{00} $)
    3:  S$ {}_{00 } $ ← checkAndUpdateOpenedDCsCapLevels(S$ {}_{00} $)
    4:  return S$ {}_{00} $
     | Show Table
    DownLoad: CSV

    Table 4.  Pseudocode of the procedure for finding vehicle routes

    Procedure: findAllRoutes(sol)
    1: for i = 1 to sol.getNumOfOpenDCs() do    // For all open DCs in the solution
    2:    Assign the next open DC to openDC$ {}_{i} $
    3:    for t = 1 to numOfPeriods do    // For all periods
    4:       If there is a distribution (dist.) to openDC$ {}_{i} $ at period t
    5:          Find the routes for openDC$ {}_{i} $ at period t using findRoutes procedure
    6:    Add the fleet of openDC$ {}_{i} $ to the new created triedFleetsForOpenDCI list
    7:    for strInd = 1 to numOfStrategies do    //For all of the fleet finding strategies
    8:       Find a new fleet (newFleetForOpenDC$ {}_{i} $) for openDC$ {}_{i} $ with the strategy in turn
    9:       If newFleetForOpenDC$ {}_{i} $ is not included in the triedFleetsForOpenDCIlist
    10:          Add newFleetForOpenDC$ {}_{i} $ to the triedFleetsForOpenDCI list
    11:          for t = 1 to numOfPeriods do    // For all periods
    12:             Ifthere is a distribution to openDC$ {}_{i} $ at period t
    13:                If the fleet of openDC$ {}_{i} $ at period t is not a subset of newFleetForOpenDC$ {}_{i} $
    14:                   Find and assign routes to openDC$ {}_{i} $ for period t with newFleetForOpenDC$ {}_{i} $
    15:         If all of the new routes of openDC$ {}_{i} $ is feasible
    16:             Ifdist. plus fixed cost of new routesfor openDC$ {}_{i} $ is less than the original cost
    17:                Assign the new routes to openDC$ {}_{i} $
     | Show Table
    DownLoad: CSV

    Table 5.  Pseudocode of the procedure that finds the routes for a specific DC at a given period

    Procedure: findRoutes $ (DC \ openDC_i, short \ t, short[] \ fixedFleet) $
    1: $S_0$ ← findInitialRoutes(open$DC_i$, t, fixedFleet)
    2: If (isFeasible($S_0$)) // Initialize the best solution if necessary
    3:    $S^*=S_0 $
    4: globalCounter = 6000; sEHCallFreq = 30; // Initialize parameters
    5: beta = PENALTYFACTOR; sEHCallCounter = 0;
    6: while(globalCounter > 0) do // Main loop of tabu search
    7:    globalCounter = globalCounter – 1;
    8:    updateSEHCallFreqAndTabuTenure(globalCounter);
    9:    moveList ← findMoves($S_0$)      // Find the available moves
    10:    bestMove ← findNonTabuBestMove(moveList);
    11:    $S_0$ ← applyMove ($S_0$, bestMove);
    12:    updateTabuList(); // Update the tabu list
    13:    If(isFeasible($S_0$) && ($S_0$.getCost() < $S^*$.getCost()))
    14:      $S^*=S_0$
    15:    If(sEHCallCounter >= sEHCallFreq)
    16:      sEHCallCounter = 0
    17:      If(fixedFleet == null) // Apply the appropriate SEH procedure to $S_{0}$
    18:        $S_{0}$ ← SEHWithoutFixedFleet( $S_0$, t)
    19:    Else
    20:        $S_0$ ← SEHWithFixedFleet($S_0$, t, fixedFleet)
    21:   If(isFeasible($S_0$) && ($S_0$.getCost() < $S^*$.getCost()))
    22:    $S^*=S_0$
    23:    sEHCallCounter = sEHCallCounter + 1
    24:    If(isFeasible($S_{0}$)) // Update the beta parameter appropriately
    25:  beta = beta * (1 - ALFA)
    26:    Else
    27:  beta = beta * (1 + ALFA)
    28: return $S^*$
     | Show Table
    DownLoad: CSV

    Table 6.  Pseudocode of the hybrid heuristic

    Procedure: solveHybrid
    1: S$ {}_{00} $ ← findHybridSolWithoutRoutes()              // Find the base hybrid solution
    2: for repNum = 1 to numOfReps do        // For all replications
    3:    Empty the triedLocAllocConfigsList
    4:    S$ {}_{0} $ = S$ {}_{00} $ // Assign the base solution to initial solution
    5:    Add the location allocation decision of S$ {}_{0} $ to the triedLocAllocConfigsList
    6:    S$ {}_{0} $ ← findAllRoutes(S$ {}_{0} $) // Find all of the routes for initial solution
    7:    S$ {}^{*} $ ← intensify(S$ {}_{0} $, triedLocAllocConfigsList)
    8:    S$ {}_{new} $ = S$ {}^{*} $
    9:    diverCounter = 0 // Initialize diversification counter
    10:    while (diverCounter < totalNumOfDiversifications) do
    11:    S$ {}_{new} $ ← diversify(S$ {}_{new} $, triedLocAllocConfigsList)
    12:    S$ {}_{new} $ ← intensify(S$ {}_{new} $, triedLocAllocConfigsList)
    13:    If (S$ {}_{new} $.getCost() < S$ {}^{*} $.getCost())
    14:    S$ {}^{*} $ = S$ {}_{new} $
    15:    diverCounter = diverCounter + 1
    16:    Save S$ {}^{*\ } $ as the best solution found for the replication numbered repNum
     | Show Table
    DownLoad: CSV

    Table 7.  Pseudocode of the intensification process

    Procedure: intensify
    1: S$ {}^{*} $ = S$ {}_{m} $             // Assign the input solution to the best solution
    2: temp = INI_TEMP;   // Initialize the temperature used in the simulated annealing
    3: solNotImpAtConsTempCounter = 0
    4: Initialize the fields used for tabu search
    5: changeAllDCsCapLevMove = false;
    6: optAllDCsOrdersMove = false;   // By default make optAllDCSOrdersMove passive
    7: while (temp > FRE_TEMP) do   // Main loop of the simulated annealing
    8:   preIntPhase = curIntPhase
    9:   curIntPhase ← findIntPhase(temp)
    10:   setIntParams(curIntPhase, S$ {}_{m} $.getNumOfOpenDCs)
    11:   If (preIntPhase!= curIntPhase)   //If the int. phase has been changed
    12:     If(S$ {}_{m} $.getOpenedDCsMinFilDegree <= DC_FIL_DEGREE_MIN_LEVEL||
               S$ {}_{m} $.getOpenedDCsMaxFilDegree >= DC_FIL_DEGREE_MAX_LEVEL)
    13:      changeAllDCsCapLevMove = true
    14:     If (curIntPhase % 2 == 0)   // If the intensification phase number is even
    15:       optAllDCsOrdersMove = true   // Make optAllDCsOrdersMove active
    16:   solImpAtThisTemp = false   // By default make solImpAtThisTemp false
    17:   numOfIterAtThisTempCounter = NUM_OF_ITERS_AT_ALL_TEMPS
    18:   while (numOfIterAtThisTempCounter > 0) do
    19:     Find the move to be applied randomly and apply it to S$ {}_{m} $
    20:     deltaCost ← calcDeltaCost(S$ {}_{new} $, S$ {}_{m} $ )
    21:     If (deltaCost < 0 || Math.exp(-1.0f * deltaCost / temp) > probRegarCost)
    22:       S$ {}_{m} $ = S$ {}_{new} $
    23:       If (S$ {}_{m} $.getCost() < S$ {}^{*} $.getCost())   // Update the best solution if necessary
    24:         S$ {}^{*} $ = S$ {}_{m} $
    25:         solImpAtThisTemp = true       // Make solImpAtThisTemp true
    26:     numOfIterAtThisTempCounter = numOfIterAtThisTempCounter - 1
    27:     Update the fields used for tabu search
    28:   If (solImpAtThisTemp == true)
    29:     solNotImpAtConsTempsCounter = 0
    30:   Else
    31:     solNotImpAtConsTempsCounter = solNotImpAtConsTempsCounter + 1
    32:   If (solNotImpAtConsTempsCounter == NUM_OF_CONS_TEMPS_SOL_NOT_IMP)
    33:     solNotImpAtConsTempsCounter = 0
    34:     If(getRandomFloat() <= ASSIGN_THE_BEST_SOL_RATIO)
    35:       S$ {}_{m} $ = S$ {}^{*} $  // Assign the best solution to the current solution
    36:     Else
    37:       S$ {}_{m} $ ← updateOrdersWithOrderingModel(S$ {}_{m} $, DC_CAP_MULTIPLIER)
    38:       If (S$ {}_{m} $.getCost() <S$ {}^{*} $.getCost())   // If the best solution is improved
    39:         S$ {}^{*} $ = S$ {}_{m} $
    40:   temp = temp * COOLING_SPEED     // Update the current temperature
    41: findAllRoutes(S$ {}^{*} $ )   // Find all of the routes for the best solution again
    42: $S^*$← optimizeDCsCapLevelsAndOrders(S*)
    43: return S$ {}^{*} $
     | Show Table
    DownLoad: CSV

    Table 19.  Effect of fixed fleet finding strategies used in the $ findAllRoutes $ procedure

    Instance Strategies are passive Strategies are active
    MinCost Cost CPU (s) MinCost Cost CPU (s)
    5-50-3-3-P6 193242.2 205648.1 0.098 170738.0 175134.7 0.153
    5-50-3-3-P7 180165.0 192193.6 0.053 162587.4 164062.5 0.139
    5-50-3-3-P8 178610.2 188135.7 0.041 165380.2 170228.2 0.077
    5-50-3-3-P9 173728.4 184784.3 0.053 150471.2 156236.2 0.099
    5-50-3-3-P10 157350.8 170610.8 0.053 144801.6 148610.9 0.105
    Average 176619.3 188274.5 0.060 158795.7 162854.5 0.115
     | Show Table
    DownLoad: CSV

    Table 8.  Values assigned to the important constants used in the vehicle routing algorithm

    Constant (Factor) Value
    Filling degree threshold (fillingDegreeThres)a 0.8
    Call frequency for SEH functions (sEHCallFreq)b 30
    Number of iterations in the main loop (globalCounter) b 6000
    Extra percentage by which the vehicle capacity can be exceeded (extraLoadPerc) b 0.6
    afillingDegreeThres is used in SEHWithFixedFleet and SEHWithoutFixedFleet procedures.
    bsEHCallFreq, globalCounter and extraLoadPerc are used in findRoutes procedure.
     | Show Table
    DownLoad: CSV

    Table 9.  Values assigned to the important constants, which are used in the intensification process

    Constant (Factor) Value
    INI_TEMP 45
    FRE_TEMP 1
    COOLING_SPEED 0.93
    NUM_OF_ITERS_AT_ALL_TEMPS 400
    NUM_OF_CONS_TEMPS_SOL_NOT_IMP 3
    NUM_OF_PHASES 12
    ASSIGN_THE_BEST_SOL_RATIO 0.75
    DC_FIL_DEGREE_MAX_LEVEL 0.85
    DC_FIL_DEGREE_MIN_LEVEL 0.70
    DC_CAP_MULTIPLIER 0.80-0.85-0.90 a
    a These values are used at the first half, at the second half and at the final phase, respectively.
     | Show Table
    DownLoad: CSV

    Table 10.  Probabilities for the application of intensification moves

    Move's Name Application Probabilities
    Number of Open DCs > 1 Number of Open DCs = 1
    Shift Delivery Move 1 0.30 0.32
    Shift Delivery Move 2 0.10 0.11
    Shift Delivery Move 3 0.40 0.45
    Shift Delivery Move 4 0.10 0.10
    Shifting a Retailer Move 0.05 -
    Swapping Two Retailers Move 0.03 -
    Finding All of the Routes Move 0.02 0.02
     | Show Table
    DownLoad: CSV

    Table 11.  Values assigned to the important constants used in the diversification process

    Constant (Factor) Value
    CLOSE_OPEN_DC_RATIO 0.8
    CLOSED_DCS_PRI_RATIO 0.7-0.3 a
    ASSIGN_RETA_RATIO 0.6-0.8 b
    CLOSED_DCS_RAND_OPENING_RATIO 0.7-0.8 a
    a The value assigned to the relevant parameter changes with the phase currently in.
    b The value assigned to the relevant parameter is generated randomly in this interval.
     | Show Table
    DownLoad: CSV

    Table 12.  Comparison of MILRP models

    M1$ {}^{G} $ model M1 model
    Instance CPU (s) CPU (s)
    3-5-3-2-P1 298.6 170.6
    3-5-3-2-P2 1284.2 453.7
    3-5-3-2-P3 484.4 161.7
    3-5-3-2-P4 739.5 559.9
    3-5-3-2-P5 546.2 423.9
    Average 670.6 353.9
     | Show Table
    DownLoad: CSV

    Table 13.  Computational results for very small-sized MILRP instances

    ILOG SHM HHM
    Instance GAP
    (1200s)
    GAP
    (7200s)
    Cost CPU
    (s)
    Cost GAP ILOG CPU (s) Cost GAP ILOG GAP SHM CPU (s)
    3-5-3-2-P1 0.0 0.0 35267.9 220 36952.5 4.6 0.1 36643.6 3.8 -0.8 4.2
    3-5-3-2-P2 0.0 0.0 30858.4 45 35045.0 11.9 0.1 33006.8 6.5 -6.2 3.0
    3-5-3-3-P1 7.9 2.4 32273.5 3470 35081.8 8.0 0.1 33085.3 2.5 -6.0 4.1
    3-5-3-3-P2 3.3 0.0 37305.3 800 37653.9 0.9 0.1 38002.1 1.8 0.9 2.8
    3-5-3-3-P3 0.0 0.0 29107.2 1379 29107.2 0.0 0.2 30585.0 4.8 4.8 3.2
    3-5-4-2-P1 12.2 0.0 31552.6 3750 31786.9 0.7 0.2 32877.2 4.0 3.3 4.5
    3-5-4-2-P2 6.8 2.0 34855.1 350 38254.0 8.9 0.2 38554.6 9.6 0.8 4.5
    3-5-4-2-P3 10.1 3.3 33480.8 4700 36148.7 7.4 0.1 36416.3 8.1 0.7 2.6
    3-6-3-2-P1 14.6 9.7 38556.4 1966 47082.1 18.1 0.1 43580.0 11.5 -8.0 2.5
    3-6-4-3-P1 28.9 14.6 35581.4 7200 41216.3 13.7 0.2 38755.4 8.2 -6.3 3.6
    5-10-4-2-P1 76.0 56.9 84643.5 7051 66101.1 -28.1 0.3 65867.8 -28.5 -0.4 10.9
    5-10-5-3-P1 73.0 60.4 114260.7 7185 91432.5 -25.0 0.9 85159.8 -34.2 -7.4 18.6
    5-12-4-4-P1 78.2 69.4 139721.1 7195 78330.1 -78.4 0.5 74669.7 -87.1 -4.9 17.9
    5-12-5-3-P1 79.5 72.1 143038.5 7200 76196.6 -87.7 1.1 74408.4 -92.2 -2.4 19.1
    5-15-3-3-P1 79.0 74.7 154831.3 7190 87291.8 -77.4 0.2 83214.9 -86.1 -4.9 12.8
    5-15-4-2-P1 80.1 76.9 156552.6 5050 71446.8 -119.1 0.4 71245.0 -119.7 -0.3 17.0
    5-15-4-4-P1 89.0 74.7 174019.7 5828 90018.0 -93.3 0.9 90261.9 -92.8 0.3 18.1
    5-15-4-7-P1 86.5 78.0 251935.1 3575 113323.5 -122.3 2.1 113618.3 -121.7 0.3 22.1
    5-15-5-3-P1 84.6 84.0 243900.1 2450 77672.0 -214.0 1.2 77267.7 -215.7 -0.5 22.4
    5-20-6-4-P1 100 89.9 436645.1 4805 119599.3 -265.1 47.4 120897.7 -261.2 1.1 62.0
    Average 45.5 38.4 111919.3 4070.5 61987.0 -51.8 2.8 60905.9 -53.9 -1.8 12.8
     | Show Table
    DownLoad: CSV

    Table 14.  Computational results for small, medium and large-sized MILRP instances

    SHM HHM
    Instance Cost CPU
    (s)
    IM CPU
    (s)
    PIM
    (%)
    Cost GAP SHM CPU
    (s)
    5-50-3-3-P1 172939.9 0.5 0.3 66.67 167457.3 -3.3 66.1
    5-50-3-3-P2 208332.0 0.5 0.4 76.60 207016.9 -0.6 67.7
    5-50-3-3-P3 227655.0 0.3 0.2 69.70 221462.7 -2.8 65.9
    5-50-3-3-P4 230679.9 0.4 0.3 75.68 215962.2 -6.8 66.3
    5-50-3-3-P5 176528.9 0.4 0.3 78.57 162825.3 -8.4 65.1
    Average 203227.1 0.4 0.3 73.4 194944.9 -4.4 66.2
    15-100-5-5-P1 514177.6 141.8 141.5 99.77 493879.2 -4.1 414.5
    15-100-5-5-P2 502955.3 244.1 243.7 99.84 485170.5 -3.7 393.7
    15-100-5-5-P3 647847.3 121.8 121.5 99.70 627396.9 -3.3 422.6
    15-100-5-5-P4 629868.5 193.1 192.8 99.82 598746.6 -5.2 433.2
    15-100-5-5-P5 578960.6 111.8 111.4 99.69 560799.6 -3.2 428.4
    Average 574761.9 162.5 162.2 99.8 553198.6 -3.9 418.5
    20-150-7-7-P1 1214217.0 3402.7 3382.1 99.39 1129150.2 -7.5 1182.6
    20-150-7-7-P2 1042158.5 3602.7 3602.1 99.98 983087.1 -6.0 1294.7
    20-150-7-7-P3 1064822.3 3502.9 3475.3 99.21 1023313.9 -4.1 1253.8
    20-150-7-7-P4 1115968.3 3627.2 3626.6 99.98 1104168.2 -1.1 1180.7
    20-150-7-7-P5 1041073.8 3727.4 3696.8 99.18 1004549.8 -3.6 1182.8
    Average 1095648.0 3572.6 3556.6 99.5 1048853.8 -4.5 1218.9
     | Show Table
    DownLoad: CSV

    Table 15.  Analysis of ordering cost weight factor

    $\alpha = 1, \beta = 1, \theta = 1, \gamma = 1$ $\alpha = 10, \beta = 1, \theta = 1, \gamma = 1$
    Instance TotCapa TotNumOfOrdersa TotInvOfDCsb TotCapa TotNumOfOrdersa TotInvOfDCsb
    15-10-5-5-P1 5159 49 643 5371 43 1199
    15-10-5-5-P2 5277 46 834 6087 39 3303
    15-10-5-5-P3 5410 48 503 6431 38 2715
    15-10-5-5-P4 5137 50 0 5570 45 2148
    15-10-5-5-P5 5392 48 644 5958 41 2894
    aTotCap: Total capacity provided by open DCs, aTotNumOfOrders: Total number of orders.
    bTotInvOfDCs: Total amount of products in inventories of open DCs comprising all periods.
     | Show Table
    DownLoad: CSV

    Table 16.  Analysis of distribution cost weight factor

    $\alpha = 1, \beta = 1, \theta = 1, \gamma = 1$ $\alpha = 1, \beta = 10, \theta = 1, \gamma = 1$
    Instance NumOfOpDCsa TotCapa TotNumOfDistsb TotInvOfDCsc TotInvOfRetsd NumOfOpDCsa TotCapa TotNumOfDistsb TotInvOfDCsc TotInvOfRetsd
    15-10-5-5-P1 2 5159 426 643 6404 3 7226 322 6112 13862
    15-10-5-5-P2 2 5277 415 834 7056 4 7847 326 6419 14232
    15-10-5-5-P3 2 5410 380 503 8410 3 7701 303 6576 15643
    15-10-5-5-P4 2 5137 378 0 9575 3 6701 299 3780 14375
    15-10-5-5-P5 2 5392 390 644 8052 4 9031 321 9346 13532
    aNumOfOpDCs: Number of open DCs, aTotCap: Total capacity provided by open DCs.
    bTotNumOfDists: Total number of distributions.
    cTotInvOfDCs: Total amount of products in inventories of open DCs comprising all periods.
    dTotInvOfRets: Total amount of products in inventories of retailers comprising all periods.
     | Show Table
    DownLoad: CSV

    Table 17.  Analysis of inventory cost weight factor for DCs

    $\alpha = 1, \beta = 1, \theta = 1, \gamma = 1$ $\alpha = 1, \beta = 1, \theta = 100, \gamma = 1$
    Instance TotNumOfOrdersa TotInvOfDCsb TotNumOfOrdersa TotInvOfDCsb
    15-10-5-5-P1 49 643 50 0
    15-10-5-5-P2 46 834 50 0
    15-10-5-5-P3 48 503 50 0
    15-10-5-5-P4 48 644 50 0
    15-10-5-5-P5 40 2315 50 0
    aTotNumOfOrders: Total number of orders.
    bTotInvOfDCs: Total amount of products in inventories of open DCs comprising all periods.
     | Show Table
    DownLoad: CSV

    Table 18.  Analysis of inventory cost weight factor for retailers

    $\alpha = 1, \beta = 1, \theta = 1, \gamma = 1$ $\alpha = 1, \beta = 1, \theta = 1, \gamma = 100$
    Instance TotNumOfOrdersa TotNumOfDistsa TotInvOfDCsb TotInvOfRetsc TotNumOfOrdersa TotNumOfDistsa TotInvOfDCsb TotInvOfRetsc
    15-10-5-5-P1 49 426 643 6404 46 498 1980 89
    15-10-5-5-P2 46 415 834 7056 45 500 2418 7
    15-10-5-5-P3 48 380 503 8410 44 497 2621 61
    15-10-5-5-P4 48 390 644 8052 45 493 2492 0
    15-10-5-5-P5 40 399 2315 8449 39 494 4159 0
    aTotNumOfOrders: Total number of orders, aTotNumOfDists: Total number of distributions.
    bTotInvOfDCs: Total amount of products in inventories of open DCs comprising all periods.
    cTotInvOfRets: Total amount of products in inventories of retailers comprising all periods.
     | Show Table
    DownLoad: CSV
  • [1] D. Ambrosino and M. G. Scutella, Distribution network design: New problems and related models, European Journal of Operational Research, 165 (2005), 610-624.  doi: 10.1016/j.ejor.2003.04.009.
    [2] D. Blanchard, Supply Chain Management Best Practices, John Wiley & Sons, 2010.
    [3] T. M. Cioppa and T. W. Lucas, Efficient nearly orthogonal and space-filling latin hypercubes, Technometrics, 49 (2007), 45-55.  doi: 10.1198/004017006000000453.
    [4] A. Ghorbani and M. R. A. Jokar, A hybrid imperialist competitive-simulated annealing algorithm for a multisource multi-product location-routing-inventory problem, Computers & Industrial Engineering, 101 (2016), 116-127.  doi: 10.1016/j.cie.2016.08.027.
    [5] F. Glover and M. Laguna, Tabu search, In Handbook of Combinatorial Optimization, Vol. 3, Kluwer Acad. Publ., Boston, MA, 1998,621–757.
    [6] M. G. Granada and C. W. Silva, Inventory Location Routing problem: A column Generation Approach, PhD thesis, Uniandes, 2011.
    [7] W. J. GuerreroC. ProdhonN. Velasco and C. A. Amaya, Hybrid heuristic for the inventory location-routing problem with deterministic demand, International Journal of Production Economics, 146 (2013), 359-370.  doi: 10.1016/j.ijpe.2013.07.025.
    [8] W. J. GuerreroC. ProdhonN. Velasco and C.-A. Amaya, A relax-and-price heuristic for the inventory-location-routing problem, International Transactions in Operational Research, 22 (2015), 129-148.  doi: 10.1111/itor.12091.
    [9] A. HiassatA. Diabat and I. Rahwan, A genetic algorithm approach for location-inventory-routing problem with perishable products, Journal of Manufacturing Systems, 42 (2017), 93-103. 
    [10] A. A. Javid and N. Azad, Incorporating location, routing and inventory decisions in supply chain network design, Transportation Research Part E: Logistics and Transportation Review, 46 (2010), 582-597. 
    [11] S. C. Liu and C. C. Lin, A heuristic method for the combined location routing and inventory problem, The International Journal of Advanced Manufacturing Technology, 26 (2005), 372-381.  doi: 10.1007/s00170-003-2005-3.
    [12] S. C. Liu and S. B. Lee, A two-phase heuristic method for the multi-depot location routing problem taking inventory control decisions into consideration, The International Journal of Advanced Manufacturing Technology, 22 (2003), 941-950.  doi: 10.1007/s00170-003-1639-5.
    [13] H. Ma and R. Davidrajuh, An iterative approach for distribution chain design in agile virtual environment, Industrial Management & Data Systems, 2005.
    [14] N. NekooghadirliR. Tavakkoli-MoghaddamV. R. Ghezavati and S. Javanmard, Solving a new bi-objective location-routing-inventory problem in a distribution network by meta-heuristics, Computers & Industrial Engineering, 76 (2014), 204-221.  doi: 10.1016/j.cie.2014.08.004.
    [15] U. PashaA. Hoff and L. M. Hvattum, Simple heuristics for the multi-period fleet size and mix vehicle routing problem, INFOR: Information Systems and Operational Research, 54 (2016), 97-120.  doi: 10.1080/03155986.2016.1149314.
    [16] S. R. Sajjadi, M. Hamidi and S. H. Cheraghi, Multi-product capacitated location routing inventory problem, International Journal of Modern Engineering, 13 (2013).
    [17] N. I. SaragihN. BahagiaI. Syabri and et al, A heuristic method for location-inventory-routing problem in a three-echelon supply chain system, Computers & Industrial Engineering, 127 (2019), 875-886. 
    [18] Z.-J. M. Shen and L. Qi, Incorporating inventory and routing costs in strategic location models, European journal of operational research, 179 (2007), 372-389.  doi: 10.1016/j.ejor.2006.03.032.
    [19] Y. ZhangM. QiL. Miao and E. Liu, Hybrid metaheuristic solutions to inventory location routing problem, Transportation Research Part E: Logistics and Transportation Review, 70 (2014), 305-323. 
  • 加载中

Figures(4)

Tables(19)

SHARE

Article Metrics

HTML views(1181) PDF downloads(460) Cited by(0)

Access History

Other Articles By Authors

Catalog

    /

    DownLoad:  Full-Size Img  PowerPoint
    Return
    Return