# Composing Vessel Fleets for Maintenance at Offshore Wind Farms by Solving a Dual-Level Stochastic Programming Problem Using GRASP

^{1}

^{2}

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Problem Description and Mathematical Model

#### 2.1. Problem Description

#### 2.2. Dual-Level Scenario Trees Applied to the DLPOW

#### 2.3. Mathematical Model

#### 2.3.1. Strategic Model

#### 2.3.2. Operational Model

## 3. Solution Method

#### 3.1. Overview of the GRASP

`FIND_RCL`. The RCL parameter, $\alpha $, controls the size of the RCL, and is further described below. Once no further promising candidates can be identified, the RCL becomes empty, and the constructed solution ${x}^{1}$ is compared to ${x}^{Best}$ (line 14), and if it has a lower objective value, it is set as the best found solution on line 15. Finally, on lines 16–18 the probabilities $P\left({\alpha}_{i}\right)$ are updated every ${I}^{B}$ iterations to favor $\alpha $-values that have lead to good solutions in previous iterations, using the strategy proposed by Prais and Ribeiro [13]. Once ${I}^{Max}$ iterations of the algorithm have been completed, the best solution is returned by the algorithm on line 20.

#### 3.2. Building the Restricted Candidate List

Algorithm 1: Overall description of the reactive GRASP heuristic |

**Rule**

**1**

**.**Considering the current partial solution, increase one of the strategic decision variables (${x}_{nvl}$, ${y}_{nqv}^{IN}$ or ${y}_{nqv}^{OUT}$) by 1 unit.

#### 3.3. Evaluate Candidate Solution

`EvaluateFirstStage(${x}^{c}$)`). These terms only include the variables ${x}_{nvl}$, ${y}_{nqv}^{IN}$, and ${y}_{nqv}^{OUT}$, which are stored in ${x}^{c}$, and ${\delta}_{b}$, which is directly deduced from the ${x}_{nvl}$ variables. To evaluate the last term of the objective function, we need to solve the second-stage problem for each node, season type, and scenario to get a value for ${\Omega}_{nqs}\left({z}_{nq}^{*}\right)$. This is done in lines 3–16, where the algorithm loops through each node, season type, and scenario. For each combination, it creates vectors, t, u, $\gamma $, and $\beta $, holding values for each variable presented in the second stage model (14)–(23). To assign values to these variables, two greedy heuristics,

`Corrective_Maintenance`(Algorithm 3) and

`Preventive_Maintenance`(Algorithm 4) are used. The first heuristic tries to complete as many corrective maintenance tasks as possible, since these are usually more costly to delay, while the second uses the remaining capacity of the fleet to perform preventive maintenance at the wind farms. Afterwards,

`EvaluateOmega($t,u,\gamma ,beta$)`calculates the objective function value (13) based on the assigned values to the variables and updates $z\left({x}^{c}\right)$ with this value. When all nodes, seasons, and scenarios have been considered, the value of $z\left({x}^{c}\right)$ is returned. Below, we explain Algorithms 3 and 4 in detail.

Algorithm 2: Fleet deployment heuristic |

Algorithm 3: Corrective Maintenance |

Algorithm 4: Preventive Maintenance |

#### 3.4. Strategies for Improving Efficiency

## 4. Computational Study

#### 4.1. Performance of the Fleet Deployment Heuristic

#### 4.2. Calibration of the Reactive GRASP

`Max_Iterations`,

`Top_Down`,

`Rank_Based`, $\delta $, $A=\{{\alpha}_{1},\dots ,{\alpha}_{m}\}$, and ${I}^{B}$. Both the quality of the solutions and the computational time of running the GRASP are affected by these parameters. Calibration testing is used to evaluate combinations of parameter values and determine the best performing combination. Such testing has been executed by considering the parameters in a sequential manner, changing one parameter at a time while keeping the other parameters fixed at reasonable values.

`Rank_Based`, $A=\{{\alpha}_{1},\dots ,{\alpha}_{m}\}$, and

`Max_Iterations`, while $\delta $ is set to 10 as proposed by Prais and Ribeiro [13] and ${I}^{B}=10$ based on preliminary tests. The parameter tuning took place in three phases, with different parameters being calibrated in each phase.

`Max_Iterations`= 1000, and $\alpha $-values were drawn from the set $A=\{0.00,0.10,0.20,\dots ,1.00\}$. The value-based selection outperforms the rank-based selection both in terms of total computational time and the time to reach the best solution found. All following tests therefore applied a value-based RCL selection.

`Max_Iterations`. Given that test instances differ significantly in terms of size and complexity, the number of iterations required to identify high-quality solutions may vary from instance to instance. The number of vessel types and strategic nodes in an instance are both expected to affect the number of iterations required, as both directly influence the number of valid candidate insertions to evaluate per iteration. Instead of deciding on one specific value of the maximum iterations to use for all of the test instances, the number of iterations was set as a function of the problem size, thereby allowing the GRASP to spend a higher number of iterations when solving larger test instances. The number of iterations is then a function:

`Max_Iterations`= strategic nodes × vessel types ×$\beta $, where $\beta $ is a parameter whose value must be determined.

#### 4.3. Performance of GRASP

## 5. Concluding Remarks

## Author Contributions

## Funding

## Data Availability Statement

## Conflicts of Interest

## References

- Stålhane, M.; Bolstad, K.H.; Joshi, M.; Hvattum, L.M. A dual-level stochastic fleet size and mix problem for offshore wind farm maintenance operations. INFOR Inf. Syst. Oper. Res.
**2021**, 59, 257–289. [Google Scholar] [CrossRef] - Laporte, G.; Louveaux, F.V. The integer L-shaped method for stochastic integer programs with complete recourse. Oper. Res. Lett.
**1993**, 13, 133–142. [Google Scholar] [CrossRef] - Gundegjerde, C.; Halvorsen, I.B.; Halvorsen-Weare, E.E.; Hvattum, L.M.; Nonås, L.M. A stochastic fleet size and mix model for maintenance operations at offshore wind farms. Transp. Res. Part C Emerg. Technol.
**2015**, 52, 74–92. [Google Scholar] [CrossRef] - Stålhane, M.; Hvattum, L.M.; Skaar, V. Optimization of Routing and Scheduling of Vessels to Perform Maintenance at Offshore Wind Farms. Energy Procedia
**2015**, 80, 92–99. [Google Scholar] [CrossRef] [Green Version] - Halvorsen-Weare, E.E.; Norstad, I.; Stålhane, M.; Nonås, L.M. A metaheuristic solution method for optimizing vessel fleet size and mix for maintenance operations at offshore wind farms under uncertainty. Energy Procedia
**2017**, 137, 531–538. [Google Scholar] [CrossRef] - Stålhane, M.; Halvorsen-Weare, E.E.; Nonås, L.M.; Pantuso, G. Optimizing vessel fleet size and mix to support maintenance operations at offshore wind farms. Eur. J. Oper. Res.
**2019**, 276, 495–509. [Google Scholar] [CrossRef] - Gutierrez-Alcoba, A.; Hendrix, E.; Ortega, G.; Halvorsen-Weare, E.; Haugland, D. On offshore wind farm maintenance scheduling for decision support on vessel fleet composition. Eur. J. Oper. Res.
**2019**, 279, 124–131. [Google Scholar] [CrossRef] - Pantuso, G.; Fagerholt, K.; Hvattum, L.M. A survey on maritime fleet size and mix problems. Eur. J. Oper. Res.
**2014**, 235, 341–349. [Google Scholar] [CrossRef] [Green Version] - Vieira, B.S.; Ribeiro, G.M.; Bahiense, L.; Cruz, R.; Mendes, A.B.; Laporte, G. Exact and heuristic algorithms for the fleet composition and periodic routing problem of offshore supply vessels with berth allocation decisions. Eur. J. Oper. Res.
**2021**, 295, 908–923. [Google Scholar] [CrossRef] - Pantuso, G.; Fagerholt, K.; Wallace, S.W. Solving hierarchical stochastic programs: Application to the maritime fleet renewal problem. INFORMS J. Comput.
**2015**, 27, 89–102. [Google Scholar] [CrossRef] - Louveaux, F.V. Multistage stochastic programs with block-separable recourse. In Stochastic Programming 84 Part II; Mathematical Programming Studies; Prekopa, A., Wets, R.J.B., Eds.; Springer: Berlin/Heidelberg, Germany, 1986; Volume 28, pp. 48–62. [Google Scholar]
- Hvattum, L.M.; Løkketangen, A.; Laporte, G. Scenario tree-based heuristics for stochastic inventory-routing problems. INFORMS J. Comput.
**2009**, 21, 268–285. [Google Scholar] [CrossRef] - Prais, M.; Ribeiro, C.C. Reactive GRASP: An application to a matrix decomposition problem in TDMA traffic assignment. INFORMS J. Comput.
**2000**, 12, 164–176. [Google Scholar] [CrossRef] [Green Version] - Festa, P.; Resende, M.G.C. An annotated bibliography of GRASP—Part II: Applications. Int. Trans. Oper. Res.
**2009**, 16, 131–172. [Google Scholar] [CrossRef] - Resende, M.G.C.; Ribeiro, C.C. Greedy randomized adaptive search procedures: Advances, hybridizations, and applications. In Handbook of Metaheuristics; International Series in Operations Research & Management Science; Gendreau, M., Potvin, J.Y., Eds.; Springer: New York, NY, USA, 2010; Volume 146, pp. 283–319. [Google Scholar]
- Kaut, M.; Midthun, K.T.; Werner, A.S.; Tomasgard, A.; Hellemo, L.; Fodstad, M. Multi-horizon stochastic programming. Comput. Manag. Sci.
**2012**, 11, 179–193. [Google Scholar] [CrossRef] - Bianchi, L.; Dorigo, M.; Gambardella, L.M.; Gutjahr, W.J. A survey on metaheuristics for stochastic combinatorial optimization. Nat. Comput.
**2009**, 8, 239–287. [Google Scholar] [CrossRef] [Green Version] - Gutjahr, W.J. Recent trends in metaheuristics for stochastic combinatorial optimization. Cent. Eur. J. Comput. Sci.
**2011**, 1, 58–66. [Google Scholar] [CrossRef] [Green Version] - Hvattum, L.M.; Esbensen, E.F. Metaheuristics for stochastic problems. In Wiley Encyclopedia of Operations Research and Management Science; Cochran, J.J., Cox, L.A., Jr., Keskinocak, P., Kharoufeh, J.P., Smith, J.C., Eds.; Wiley: New York, NY, USA, 2011; Volume 5, pp. 3218–3229. [Google Scholar]
- Attari, M.; Torkayesh, A.; Malmir, B.; Jami, E. Robust possibilistic programming for joint order batching and picker routing problem in warehouse management. Int. J. Prod. Res.
**2021**, 59, 4434–4452. [Google Scholar] [CrossRef] - Ghaffarinasab, N.; Andaryan, A.; Torkayesh, A. Robust single allocation p-hub median problem under hose and hybrid demand uncertainties: Models and algorithms. Int. J. Manag. Sci. Eng. Manag.
**2020**, 15, 184–195. [Google Scholar] [CrossRef] - Alinaghian, M.; Tirkolaee, E.; Dezaki, Z.; Hejazi, S.; Ding, W. An augmented tabu search algorithm for the green inventory-routing problem with time windows. Swarm Evol. Comput.
**2021**, 60, 100802. [Google Scholar] [CrossRef] - Tirkolaee, E.; Goli, A.; Pahlevan, M.; Kordestanizadeh, R. A robust bi-objective multi-trip periodic capacitated arc routing problem for urban waste collection using a multi-objective invasive weed optimization. Waste Manag. Res.
**2019**, 37, 1089–1101. [Google Scholar] [CrossRef] [PubMed] - Dogger Bank. Dogger Bank Wind Farm: About the Project. 2021. Available online: https://doggerbank.com/about/ (accessed on 20 September 2021).
- Equinor. Equinor Selected for Largest-Ever US Offshore Wind Award. 2021. Available online: https://www.equinor.com/en/news/202101-us-offshore-wind.html (accessed on 20 September 2021).
- Cox, S. How Do You Finance Projects in a Zero-Subsidy World? 2021. Available online: https://www.dnv.com/article/how-do-you-finance-projects-in-a-zero-subsidy-world–166391 (accessed on 20 September 2021).

**Figure 1.**Scenario tree for instance F2, with uncertainty in the step-wise development of wind farms.

MIP Solver | Fleet Deployment Heuristic | ||||
---|---|---|---|---|---|

Fleet | Objective [m€] | Rank [-] | Objective [m€] | Rank [-] | Difference [%] |

1 | 73.77 | 1 | 74.32 | 1 | 1.70 |

2 | 74.02 | 2 | 74.37 | 2 | 1.13 |

3 | 74.11 | 3 | 74.54 | 3 | 1.36 |

4 | 75.60 | 4 | 76.86 | 5 | 3.65 |

5 | 75.64 | 5 | 76.90 | 6 | 3.57 |

6 | 76.43 | 6 | 76.84 | 4 | 1.33 |

7 | 82.10 | 7 | 83.56 | 7 | 3.55 |

8 | 114.89 | 8 | 117.78 | 8 | 3.76 |

9 | 201.22 | 9 | 207.26 | 9 | 3.65 |

10 | 1550.64 | 10 | 1550.64 | 10 | 0.00 |

**Table 2.**Test instances used in the calibration testing of the GRASP. The strategic scenario trees for instances marked with an asterisk are unbalaned. Their structure is explained in [1].

Instance Name | Strategic Uncertainty | # Nodes at Each Stage | # Strategic Nodes | # Vessel Types (# Stations) | # Farms (# Turbines) |
---|---|---|---|---|---|

T1 | Deterministic | (1, 1, 1) | 3 | 4 (2) | 2 (200) |

T2 | Deterministic | (1, 1, 1, 1, 1) | 5 | 4 (2) | 2 (200) |

T3 | Farms | (1, 2, 3) * | 6 | 4 (2) | 3 (300) |

T4 | Farms | (1, 3, 6) * | 10 | 4 (2) | 3 (300) |

T5 | Electricity Price | (1, 2) | 3 | 4 (2) | 2 (200) |

T6 | Electricity Price | (1, 2, 4) | 7 | 6 (3) | 2 (200) |

T7 | Deterministic | (1, 1, 1) | 3 | 6 (3) | 2 (200) |

T8 | Farms | (1, 3, 6) * | 10 | 6 (3) | 3 (300) |

T9 | Electricity Price | (1, 3) | 4 | 6 (3) | 2 (200) |

T10 | Electricity Price | (1, 3, 9) | 13 | 6 (3) | 2 (200) |

**Table 3.**Test instances used in the performance testing. The strategic scenario trees for instances marked with an asterisk are unbalanced. Their structure is explained in [1].

Instance Name | Strategic Uncertainty | # Nodes at Each Stage | # Strategic Nodes | # Vessel Types (# Stations) | # Farms (# Turbines) |
---|---|---|---|---|---|

D1 | Deterministic | (1) | 1 | 4 (2) | 2 (200) |

D3 | Deterministic | (1, 1, 1) | 3 | 4 (2) | 2 (200) |

D5 | Deterministic | (1, 1, 1, 1, 1) | 5 | 4 (2) | 2 (200) |

D10 | Deterministic | (1, 1, 1, …, 1) | 10 | 4 (2) | 2 (200) |

D25 | Deterministic | (1, 1, 1, …, 1) | 25 | 4 (2) | 2 (200) |

F6 | Farms | (1, 2, 3) * | 6 | 4 (2) | 3 (300) |

F10 | Farms | (1, 3, 6) * | 10 | 4 (2) | 3 (300) |

F35 | Farms | (1, 3, 6, 10, 15) * | 35 | 4 (2) | 3 (300) |

F56 | Farms | (1, 5, 15, 35) * | 56 | 4 (2) | 3 (300) |

F56${}^{\prime}$ | Farms | (1, 3, 6, 10, 15, 21) * | 56 | 4 (2) | 3 (300) |

EP3 | Electricity Price | (1, 2) | 3 | 4 (2) | 2 (200) |

EP4 | Electricity Price | (1, 3) | 4 | 4 (2) | 2 (200) |

EP7 | Electricity Price | (1, 2, 4) | 7 | 4 (2) | 2 (200) |

EP13 | Electricity Price | (1, 3, 9) | 13 | 4 (2) | 2 (200) |

EP21 | Electricity Price | (1, 4, 16) | 21 | 4 (2) | 2 (200) |

EP40 | Electricity Price | (1, 3, 9, 27) | 40 | 4 (2) | 2 (200) |

EP63 | Electricity Price | (1, 2, 4, 8, 16, 32) | 63 | 4 (2) | 2 (200) |

D1.2 | Deterministic | (1) | 1 | 6 (3) | 2 (200) |

D3.2 | Deterministic | (1, 1, 1) | 3 | 6 (3) | 2 (200) |

D5.2 | Deterministic | (1, 1, 1, 1, 1) | 5 | 6 (3) | 2 (200) |

D10.2 | Deterministic | (1, 1, 1, …, 1) | 10 | 6 (3) | 2 (200) |

D25.2 | Deterministic | (1, 1, 1, …, 1) | 25 | 6 (3) | 2 (200) |

F6.2 | Farms | (1, 2, 3) * | 6 | 6 (3) | 3 (300) |

F10.2 | Farms | (1, 3, 6) * | 10 | 6 (3) | 3 (300) |

F35.2 | Farms | (1, 3, 6, 10, 15) * | 35 | 6 (3) | 3 (300) |

F56.2 | Farms | (1, 5, 15, 35) * | 56 | 6 (3) | 3 (300) |

F56’.2 | Farms | (1, 3, 6, 10, 15, 21) * | 56 | 6 (3) | 3 (300) |

EP3.2 | Electricity Price | (1, 2) | 3 | 6 (3) | 2 (200) |

EP4.2 | Electricity Price | (1, 3) | 4 | 6 (3) | 2 (200) |

EP7.2 | Electricity Price | (1, 2, 4) | 7 | 6 (3) | 2 (200) |

EP13.2 | Electricity Price | (1, 3, 9) | 13 | 6 (3) | 2 (200) |

EP40.2 | Electricity Price | (1, 3, 9, 27) | 40 | 6 (3) | 2 (200) |

EP63.2 | Electricity Price | (1, 2, 4, 8, 16, 32) | 63 | 6 (3) | 2 (200) |

TDG | ANG | ||||||
---|---|---|---|---|---|---|---|

Test Instance | Total Time (s) | Difference to Primal (%) | Difference to Dual (%) | Total Time (s) | Difference to Primal (%) | Difference to Dual (%) | ANG vs. TDG (%) |

D1 | 2 | 0.8 | 0.8 | 2 | 0.8 | 0.8 | 0.0 |

D3 | 6 | 1.3 | 1.4 | 6 | 1.3 | 1.4 | 0.0 |

D5 | 11 | 3.2 | 3.5 | 11 | 2.2 | 2.5 | −0.9 |

D10 | 21 | 2.1 | 2.7 | 27 | 1.1 | 1.7 | −1.0 |

D25 | 102 | −3.6 | 15.9 | 144 | −4.5 | 14.8 | −1.0 |

F6 | 27 | 1.7 | 2.3 | 28 | 1.3 | 2.0 | −0.3 |

F10 | 35 | −10.6 | 2.5 | 42 | −10.6 | 2.5 | 0.0 |

F35 | 204 | −91.9 | 13.9 | 786 | −92.0 | 12.2 | −1.4 |

F56 | 305 | NA | NA | 6848 | NA | NA | 0.0 |

F56’ | 401 | NA | NA | 5221 | NA | NA | −1.3 |

EP3 | 6 | 1.1 | 1.6 | 7 | 1.1 | 1.6 | 0.0 |

EP4 | 7 | 1.2 | 1.5 | 9 | 1.2 | 1.5 | 0.0 |

EP7 | 13 | 1.1 | 1.5 | 15 | 1.1 | 1.5 | 0.0 |

EP13 | 24 | 1.4 | 2.2 | 42 | 1.4 | 2.2 | 0.0 |

EP21 | 46 | −4.7 | 13.3 | 94 | −4.7 | 13.3 | 0.0 |

EP40 | 101 | −90.9 | 11.6 | 851 | −90.9 | 11.6 | 0.0 |

EP63 | 236 | NA | NA | 7200 | NA | NA | −0.9 |

D1.2 | 3 | 0.7 | 0.9 | 4 | 0.7 | 0.9 | 0.0 |

D3.2 | 11 | 0.7 | 1.0 | 17 | 0.7 | 1.0 | 0.0 |

D5.2 | 26 | 2.1 | 2.5 | 29 | 1.2 | 1.6 | −0.9 |

D10.2 | 45 | 1.4 | 2.2 | 68 | 0.9 | 1.7 | −0.5 |

D25.2 | 326 | −15.4 | 15.4 | 407 | −16.9 | 13.3 | −1.8 |

F6.2 | 46 | 0.0 | 3.1 | 48 | −0.8 | 2.2 | −0.8 |

F10.2 | 84 | −16.7 | 11.0 | 107 | −16.7 | 11.0 | 0.0 |

F35.2 | 626 | −95.3 | 14.1 | 1990 | −95.4 | 12.5 | −1.4 |

F56.2 | 745 | NA | NA | 7200 | NA | NA | 0.0 |

F56’.2 | 1032 | NA | NA | 7200 | NA | NA | −1.5 |

EP3.2 | 12 | 0.8 | 1.7 | 10 | 0.8 | 1.7 | 0.0 |

EP4.2 | 18 | 0.7 | 1.0 | 17 | 0.7 | 1.0 | 0.0 |

EP7.2 | 27 | 0.6 | 1.4 | 35 | 0.6 | 1.4 | 0.0 |

EP13.2 | 60 | 0.9 | 2.4 | 91 | 0.9 | 2.4 | 0.0 |

EP40.2 | 295 | −26.4 | 14.5 | 1968 | −26.4 | 14.5 | 0.0 |

EP63.2 | 866 | NA | NA | 7200 | NA | NA | −0.9 |

Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |

© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Bolstad, K.H.; Joshi, M.; Hvattum, L.M.; Stålhane, M.
Composing Vessel Fleets for Maintenance at Offshore Wind Farms by Solving a Dual-Level Stochastic Programming Problem Using GRASP. *Logistics* **2022**, *6*, 6.
https://doi.org/10.3390/logistics6010006

**AMA Style**

Bolstad KH, Joshi M, Hvattum LM, Stålhane M.
Composing Vessel Fleets for Maintenance at Offshore Wind Farms by Solving a Dual-Level Stochastic Programming Problem Using GRASP. *Logistics*. 2022; 6(1):6.
https://doi.org/10.3390/logistics6010006

**Chicago/Turabian Style**

Bolstad, Kamilla Hamre, Manu Joshi, Lars Magnus Hvattum, and Magnus Stålhane.
2022. "Composing Vessel Fleets for Maintenance at Offshore Wind Farms by Solving a Dual-Level Stochastic Programming Problem Using GRASP" *Logistics* 6, no. 1: 6.
https://doi.org/10.3390/logistics6010006