## 4 Solution Procedure
### Sub-Gradiant Method  
In each iteration of the LR method, the upper bound is updated according to the rules mentioned in the following. Assume \(\mu_{jlt}^{0}\;\zeta_{jlt}^{0}\;\Lambda_{ilt}^{0}\;\gamma_{ilt}^{0}\) and \(\chi_{il}^{0}\) are the initial multiplier vectors, a sequence of multipliers can be updated by using the subgradiant method at iteration \(\tau\). \(\theta^{\tau}\) is the value of the step size parameter at iteration \(\tau\) (\(0<\theta^{\tau}\leq 2\)) and the solution procedure for LR1 is summarized as follows (Algorithm 2):```
Step0. Put \(UB=+\infty\), \(\tau=0\), \(\zeta_{jlt}^{0}=0\;\forall\;j,l,t,\;\lambda_{ilt}^{0}=0\;\forall\;i,l,t,\; \zeta_{jlt}^{0}=0\;\forall i,l,t,\;\theta^{\tau}=2\). Step1. Solve the problem LR1. Put \(\tau=\tau+1\). Find the optimal values for variables and calculate \(Z_{LR1}\). Step2. Using a feasible solution of the problem MMCMCLP (Section 4.2.1), Calculate \(Z_{LB}\). Step3. Update the upper and lower bounds. If \(Z_{LB}>LB\), then put \(LB=Z_{LB}\). If \(Z_{LR1}<UB\), then put \(UB=Z_{LR1}\). Step4 Update the step size parameter. If there was no improvement in upper bound for the past \(b\) iterations then put \(\theta^{\tau}=\rho\theta^{\tau}\) in which \(0<\rho<1\). Step5. Check the termination conditions. Stop, if one of the following conditions holds. \(\frac{UB-LB}{UB}\leq 0.01\;\text{or}\tau=80\). Step6. Update Lagrangian multipliers and go to Step 1. ```

**Algorithm 2**LR1-LB

The same procedure is used to solve LR2, except that instead of multipliers \(\mu_{jlt}^{\tau}\), \(\lambda_{ilt}^{\tau}\), and \(\gamma_{ilt}^{\tau}\) the multipliers \(\zeta_{jlt}^{\tau}\) and \(\chi_{ilt}^{\tau}\) will be used and instead of LR1, LR2 should be solved in each iteration. Accordingly, to solve LD the same procedure as LR2 would be used except that instead of LR2 first \(Z_{LD1}\) then \(Z_{LD2}\) will be solved to calculate \(Z_{LD}\) in order to be used as the upper bound. For the case the lower bound is obtained from the heuristic method and to save space, in the following the procedure for LD is described and for LR1 and LR2 the procedure would be the same. The only difference would be the multipliers used and the problems to be solved in steps 0 and 1, respectively. The solution procedure for LD using the heuristic method to obtain the lower bound \(Z_{LB}\) is summarized as follows (Algorithm 3):

```
Step0. Put \(UB=+\infty\), \(\tau=0\), \(\zeta_{jlt}^{0}=0\;\forall\;j,l,t,\;\lambda_{ilt}^{0}=0\;\forall\;i,\;t,\; \theta^{\tau}=2\). Step1. Solve the problem SubP1. Obtain \(l_{o}\) and solve SubP2 for \(l_{o}\). Put \(\tau=\tau+1\) Find the optimal values for variables and calculate. \(Z_{LD}=Z_{LD1}+Z_{LD2}\). Step2. Update the upper bound. If \(Z_{LD}<UB\) then put \(UB=Z_{LD}\). Step3. Update the step size parameter. If there was no improvement in upper bound for the past \(b\) iterations then put \(\theta^{\tau}=\rho\theta^{\tau}\) in which \(0<\rho<1\). Step4. Check the termination conditions. Stop, if one of the following conditions holds. \(\frac{UB-Z_{jilk}}{UB}\leq 0.01\;\text{or}\;\tau=80\). Step5. Update Lagrangian multipliers and go to Step 1. ```

**Algorithm 3**LD-HLB

## 5 Numerical Experiments

### Model Validation

#### 5.1.1 Illustrative Example

To guarantee the validity of the proposed model, some test instances are generated. In all instances, the number of points is 50 and the number of potential locations of facilities is 10. The problems are studied for two time periods, three kinds of modules with three possible sizes. The coordination and demands of points are generated randomly between (0, 1000) and (0, 5), respectively and \(p=3\). For the illustrative example, the cost of module assignment and capacity of facilities have been generated using uniform function between (20, 40) and (60, 80), respectively. The objective function value for this example is 76.2 and 39% of the total points' demand was covered. Figure 1 shows the schematic location of facilities and the module assignment arrangement in two periods studied for this example.