Articles | Volume 10, issue 8
https://doi.org/10.5194/wes-10-1611-2025
https://doi.org/10.5194/wes-10-1611-2025
Research article
 | 
08 Aug 2025
Research article |  | 08 Aug 2025

Offshore wind farm layout optimization with alignment constraints

Paul Malisani, Tristan Bartement, and Pauline Bozonnet
Abstract

Wind farm layout optimization involves placing wind turbines in a defined domain to minimize the expected production losses due to wake effects within the wind farm. Due to navigational regulations and risks, tenders for offshore wind farms often impose so-called alignment constraints; i.e., wind turbines must be located at the intersections of a grid formed by parallelograms. The shape and orientation of these parallelograms are to be determined to minimize wake losses. Mathematically, this problem belongs to the class of non-convex, nonlinear mixed-integer programming problems, known to be highly complex. The literature has not yet investigated the wind farm layout optimization problem under alignment constraints. This paper makes two contributions. First, we propose a modelization of the annual energy production (AEP) maximization with alignment constraints as a mixed-integer nonlinear problem, where the continuous parameters are the parallelogram-based tiling parameters and the discrete variables are the turbines' positions at the tiling's intersections. Second, we provide a heuristic derived from the DEBO algorithm developed by the same team and presented in Thomas et al. (2023). The proposed method is the subject of international patent application number WO 2024/061627.

Share
1 Introduction

Selecting the proper layout is a crucial task when building a wind farm. A layout far from optimal is prone to significant loss of expected annual energy production (AEP) due to wake effects within the farm. Having an optimized method of turbine placement in a given area helps maximize energy production over the wind farm's lifespan. In its full generality, the problem of optimizing a wind farm layout is a complex one for several reasons. The first is that computing a given farm's mean annual energy production is numerically complex; i.e., evaluating the optimization problem's objective function is computationally time-consuming (LoCascio et al.2024; Porté-Agel et al.2020). The second difficulty is that the problem is not convex; i.e., neither the objective function nor the minimization set are convex. As a result, the problem of wind farm layout optimization necessitates the development of dedicated optimization tools. Wind farm optimization has been the subject of much scientific research; see, for example, Herbert-Acero et al. (2014), Fischetti and Pisinger (2019), and Hou et al. (2019) for a list of reviews of such methods. Let us now focus on recent contributions to the field. In Quick et al. (2023), the authors develop a stochastic gradient-based method for optimizing wind farm layouts. The presented algorithm is developed for circular or square domains and could be easily extended to convex domains but not to non-convex or non-connected ones. In Kumar and Sharma (2023), the authors use a teaching–learning-based algorithm to solve the wind farm layout optimization problem for a circular domain. In Liang and Liu (2023), the authors use genetics and particle swarm algorithms to solve the problem on a square domain. In Fischetti and Fischetti (2022), the authors propose a mixed-integer linear programming model to solve turbine placement and cable routing optimization problems. In Kunakote et al. (2022), the authors compare 12 meta-heuristic methods for wind farm layout optimization. The presented methods do not rely on any assumption on the shape of the admissible domain. However, the method relies on a very coarse discretization of the domain and can be numerically intractable using a finer one. In Thomas et al. (2023), the authors compare eight wind farm optimization methods and provide a benchmark case study for comparing algorithm performances. The proposed benchmark is highly complex since the admissible domain is neither convex nor connected. However, this contribution does not account for any alignment constraints. Finally, in Stanley and Ning (2019), the authors propose a so-called inner-grid wind farm layout parameterization that satisfies strong alignment constraints. However, the authors assume a one-to-one correspondence between this parameterization and the layout configuration, which dramatically reduces the degree of freedom and potentially leads to far-from-optimal solutions. In fact, despite the extensive literature on wind farm optimization, to the best of our knowledge, no other method can handle turbine alignment constraints. By alignment constraint, we mean that we place the turbines at the intersections of a regular grid composed of parallelograms, whose shape and orientation are to be determined, while considering the possibility of not occupying all the grid's intersections. This possibility is a key feature of the proposed algorithm, and its interest is illustrated in the numerical examples presented in the paper. Far from being just an academic question, turbine alignment constraints are often imposed by maritime authorities on developers in practice to ensure the safe navigation of boats within the wind farm (see, for example, the following technical reports: Ministry of Transport of the French Republic2017, and Maritime and Coastguard Agency2012). The contribution of this paper is to provide an optimization algorithm for wind farm layout optimization that can handle alignment constraints. Mathematically, these alignment constraints render the wind farm layout optimization problem a mixed-integer nonlinear programming (MINLP) problem. The integer variables represent the positions of the turbines, which are restricted to the finite set of grid intersections within the admissible domain. The continuous variables are the grid parameters, that is to say the size and orientation of the grid's unit parallelogram. The nonlinearity mainly stems from the wind farm's annual energy production (AEP) as a function of the optimization parameters. These problems are generally extremely difficult to solve. As detailed in Burer and Letchford (2012), solving algorithms for non-convex MINLPs fall into two different categories: exact methods and heuristic-based methods. Exact methods often rely on branch-and-bound methods (Papadimitriou and Steiglitz1998) or separation properties of the objective function. Heuristic methods include tabu research (Exler et al.2008), particle swarm algorithms (Yiqing et al.2007; Young et al.2007), genetic algorithms (Schlüter et al.2009), or local-search methods (Liberti et al.2011). The strategy adopted in this paper is to adapt the DEBO method developed by the authors in Thomas et al. (2023) to the problem at hand. This method is a local-search-based approach coupled with an exploration heuristic for optimizing parameters. The paper is organized as follows. In Sect. 2, we introduce useful notations and definitions. In Sect. 3, we describe the aligned-layout optimization problem; that is to say, we present the objective function, the constraints, and the optimization variables. We fully describe the optimization algorithm in Sect. 4. In Sect. 5, we take up the benchmark presented in Thomas et al. (2023) and add the alignment constraints, and we conduct a thorough study on the setting of the optimization algorithm hyper-parameters. In Sect. 6, we illustrate the impact of the alignment-grid parameters exploration method on the AEP and prove that an efficient exploration method yields a strong improvement in the AEP. Finally, in Sect. 7, we give the conclusions of this work and draw up research perspectives on the subject.

2 Notations and definitions

Throughout the paper we will use recurrently the following notations:

  • R,R+ denote respectively the set of real numbers and the set of non negative real numbers.

  • Z,Z* denote respectively the set of integers and the set of non-zero integers.

  • Ω∈ℝ2 denotes two-dimensional domain where turbines can be planted.

  • Nmax denotes maximal number of turbines to be placed within the admissible domain E.

  • Dturb denotes turbine diameter.

  • Dmin denotes minimal distance between turbines.

  • Dmax denotes maximal distance between turbines.

  • ws denotes wind speed.

  • wd denotes wind direction.

  • denotes logical true.

  • denotes logical false.

  • ¬ denotes logical negation.

  • denotes logical and operator.

  • denotes logical or operator.

Definition 1. (Wind farm). A capital bold character associated with a subscript such as Fn denotes a n-turbine wind farm. Mathematically Fn is a function satisfying

(1) F n : { 1 , , n } k ( x k y k ) R 2 ,

where (xk  yk) is the position of the kth turbine. Let Fn and let (xy)R2; we denote Hn+1:=Fn(xy) the wind farm defined as follows.

(2) H n + 1 ( k ) := F n ( k ) if k n ( x y ) if k = n + 1

Definition 2. (Wind farm power production). We denote P:(Fn,ws,wd)R+ the power production of the wind farm Fn for a wind speed ws and a wind direction wd.

Definition 3. (Expected power production and annual energy production). We denote W:=(ws,wd)R+×[0,2π) the wind random variable, and we denote W the probability measure on R+×[0,2π) associated with the random variable W. Finally, we denote 𝔼W the expectation with respect to the probability W, and the expected power production of a wind farm Fn is

(3) E W ( P ( F n , w s , w d ) ) := R + × [ 0 , 2 π ) P ( F n , w s , w d ) d P W ( w s , w d ) ,

and the annual energy production of a wind farm Fn denoted AEP(Fn) is

(4) AEP ( F n ) := 8760 . E W ( P ( F n , w s , w d ) ) .

Finally, when the probability is discrete, i.e., PW:=n=1NWp(wsn,wdn)δ(wsn,wdn), where p(wsn,wdn) is the probability of wind W=(wsn,wdn) and δ(wsn,wdn) is the Dirac delta function at (wsn,wdn), the AEP computation is

(5) AEP ( F n ) := 8760 n = 1 N W p ( w s n , w d n ) P ( F n , w s n , w d n ) .
3 Optimization model for layout optimization with alignment constraints

The optimization problem we are interested in consists of optimizing the grid configuration and the turbine placement on the intersections of this grid. This optimization problem is a nonlinear mixed-integer programming problem, a class of problems known to be challenging to solve. In this section, we describe the parameterization of our problem.

3.1 Grid parameterization

To write the optimization problem, we parameterize the grid using 6 parameters (r1,r2,θ1,θ2,vx,vy) as represented in Fig. 1. The grid is a parallelogram-based tiling of the plane, the parameters r1,r2 are the two sides' length of the parallelogram, the parameter θ1 (θ2) is the angle formed between the side of the parallelogram of length r1 (r2) and the x axis. Finally the parameters vx,vy are the offset between the origin of the Cartesian and the parallelogram-based grids. Using this parameterization we define the change-of-basis matrix from the canonical basis denoted 0 to the grid basis denoted B(θ1,θ2,r1,r2) as follows.

(6) P B 0 B ( θ 1 , θ 2 , r 1 , r 2 ) = r 1 cos ( θ 1 ) r 2 cos ( θ 2 ) r 1 sin ( θ 1 ) r 2 sin ( θ 2 )

In the grid-basis coordinates, any intersection point p is as follows.

p:=k1k2+PB0B(θ1,θ2,r1,r2)-1vxvyk1,k2Z

This parameterization in grid basis is, in turn, equivalent to

(7) p = k 1 k 2 + Δ 1 Δ 2 k 1 , k 2 Z and Δ 1 , Δ 2 [ 0 , 1 ) .
https://wes.copernicus.org/articles/10/1611/2025/wes-10-1611-2025-f01

Figure 1Grid parameterization for aligned layout.

Download

3.2 Layout parameterization

Using the grid parameterization described in Sect. 3.1, an aligned layout has its turbines located on the intersections of the grid which is

(8) F [ B ] n ( i ) : { 1 , , n } i k 1 i k 2 i + Δ 1 Δ 2 , k 1 i , k 2 i Z ; Δ 1 , Δ 2 [ 0 , 1 ) .

The corresponding wind farm in canonical coordinates Fn thus is

(9) F n ( i ) = P B 0 B ( θ 1 , θ 2 , r 1 , r 2 ) F [ B ] n ( i ) , i = 1 , , n .

Thanks to the parameterization from Eq. (8), the alignment constraint translates into an integer constraint on the optimization variables (k1i,k2i).

3.3 Optimization problem

We are now ready to write the general wind farm layout optimization problem with alignment constraints. This optimization problem consists of maximizing the wind farm's annual energy production as defined in Eq. (4). This is

(10) max ( k 1 i , k 2 i ) i = 1 , , N max , Δ 1 , Δ 2 , r 1 , r 2 , θ 1 , θ 2 AEP ( F [ B ] N max )

under the following constraints.

(11)k1i,k2iZ;i=1,,Nmax(12)k1i-k1j+k2i-k2j1;ij(13)Δ1,Δ2[0,1)(14)FNmax(i)Ω;i=1,,Nmax(15)θ1-π2,π2(16)θ2-π2,θ1(17)DminminzZ*2PB0B(θ1,θ2,r1,r2)z

Equations (11), (12), and (13) ensure that the turbines are located at the intersections of the grid defined by the parameters (r1,r2,θ1,θ2,vx,vy) and thus that the turbines are aligned along the directions θ1 and θ2. The constraint from Eq. (14) guarantees that the turbines are located in the admissible domain. Constraints defined in Eqs. (15) and (16) allow us to generate all possible parallelogram-based grids. We only consider θ1(-π/2,π/2] since θ1>π/2 (θ1<-π/2) yields the same tiling as θ1-π/2 (θ1+π/2). Finally, the constraint from Eq. (17) ensures that no grid's intersections are closer to each other than Dmin. Since the turbines are necessarily located on these intersections, this constraint ensures that turbines are at least Dmin distant from each other.

4 Solving algorithm

4.1 General description of the proposed solving algorithm

The method presented in this paper belongs to the category of heuristic-based methods and consists of the following steps.

  • STEP 1. The first step consists of computing the set R1,2 of parameters (r1,r2) by discretization of the space Dmin,Dmax2 using a grid size of Δr. There is no upper limit to the Dmax value. However, it is useless to set this parameter at a large value. Indeed, beyond a certain value d>Dmin, any shape-parameter configuration such that r1,r2>d will produce coarse grids with fewer than Nmax admissible intersections.

  • STEP 2. The second step consists of reducing the size of the angle search space. To do so, for each couple (r1,r2)R1,2, we discretize the search space -π2,π2×-π2,θ1 using a discretization size of Δθ. Then, for each grid configuration (r1,r2,θ1k,θ2k)k satisfying Eq. (17) we compute the AEP of an elementary 4-turbine wind farm. Then, we store the Nθ best angle configurations (θ1,θ2) in an angle set Θ. This latter set Θ is the reduced angle search space.

  • STEP 3. Then, we compute a set of grid configurations (r1,r2,θ1,θ2) defined as grids:={(r1,r2,θ1,θ2):(r1,r2)R1,2,(θ1,θ2)Θ,Eq. (17) holds}.

  • STEP 4. For each explored shape configuration (r1,r2,θ1,θ2), we compute an optimal layout using a greedy algorithm for placing the Nmax turbines on the intersections of the grid and using a local-search optimization method to move the turbines on the intersections. The sequence of greedy initialization followed by a local-search method has already been proved efficient for wind farm layout optimization without alignment constraints; see the DEBO algorithm from Thomas et al. (2023).

  • STEP 5. Return the best overall wind farm layout.

Finally, the corresponding pseudo-code is displayed in Algorithm 1. As one can see on line 13, step 4, which is the most computationally demanding, can be run in parallel.

Algorithm 1Aligned_Optimization(Ω,Nmax,Nθ,Dmin, Dmax,Δr,Δθ).

1:
{STEP 1 : Compute R1,2}
2:
R1,2 GenerateR1R2(Δr,Dmin,Dmax)
3:
4:
{STEP 2 : Compute Reduced Angles Search Space Θ}
5:
Θ← ReduceSearchSpace(R1,2,Δθ,Dmin,Dmax,Dturb,Nθ)
6:
7:
{STEP 3 : Generate compute admissible intersections for each grid configurations}
8:
grids← GenerateConfigs(R1,2,Θ,Dmin,Dmax,Dturb)
9:
intersections_sets← ComputeAllIntersections(grids,Dmin,Ω)
10:
11:
{STEP 4 : Compute optimal layout for each set of intersections}
12:
layouts←∅
13:
for (intersections,(r1,r2,θ1,θ2))intersections_sets {Run in parallel} do
14:
FNmax,aep PlaceTurbines(intersections)
15:
layoutslayouts{(FNmax,aep,intersections, (r1,r2,θ1,θ2))}
16:
end for
17:
layouts←sort(layouts) by aep in descending order
18:
19:
{STEP 5 : Get best overall layout}
20:
return  layouts(0)

4.2 Angle search space reduction and grid configuration selection

In this section, we describe the first part of the algorithm which consists of finding a set of grid configurations (r1,r2,θ1,θ2) of reasonable size and performing a complete wind farm layout optimization for each element of this set. To do so, we first compute the set R1,2 of parameters (r1,r2) by discretizing the space Dmin,Dmax2 using a discretization of size Δr. Then, for each (r1,r2)R1,2, discretize the following search space

(18) S := ( θ 1 , θ 2 ) - π 2 , π 2 2 : θ 1 - π 2 + Δ θ , θ 2 θ 1 - Δ θ

with an angle discretization parameter Δθ. We denote SD this discrete search space. Then, for each (r1,r2)R1,2, we define the corresponding angle search space Θr1,r2 as follows.

(19) Θ r 1 , r 2 := ( θ 1 , θ 2 ) S D : Eq . ( 17 ) holds

Then, for each configuration (r1,r2,θ1k,θ2k)k with (θ1k,θ2k)Θr1,r2 we compute the AEP of the elementary farms
(F[B(r1,r2,θ1k,θ2k)]4)k defined as follows,

(20) F [ B ( r 1 , r 2 , θ 1 k , θ 2 k ) ] 4 ( i ) := ( 0 0 ) if i = 1 , ( 1 0 ) if i = 2 , ( 0 1 ) if i = 3 , ( 1 1 ) if i = 4 ,

and sort the couples (θ1k,θ2k)i by decreasing order of AEP. Finally, for each (r1,r2)R1,2, we store in the set Θ the best Nθ angles configuration (θ1k,θ2k)Θr1,r2. Then, the continuous-variable search space denoted grids consists of all the combinations of the (r1,r2)R1,2 explored with all the angles' configuration from Θ, i.e.,

(21) grids := { ( r 1 , r 2 , θ 1 , θ 2 ) : ( r 1 , r 2 ) R 1 , 2 , ( θ 1 , θ 2 ) Θ : Eq . ( 17 ) holds } .

The corresponding algorithm in pseudo-code is described in Algorithms A1, A2, A3, and A4.

4.3 Compute intersections for each grid configuration

This part of the algorithm consists of traversing grids(k) and, for each configuration (r1k,r2k,θ1k,θ2k), calculating the maximum number of intersections located in the admissible domain Ω and their positions. If this set of intersections has more than Nmax elements and if all intersections are Dmin apart from each other, this set of intersections is stored in a set of intersections that we denote intersections_sets. The corresponding algorithm is written in pseudo-code in Algorithm A5.

4.4 Optimize turbines placement

4.4.1 Greedy initialization

Given a grid configuration (r1,r2,θ1,θ2,Δ1,Δ2), a greedy algorithm is used to sequentially place Nmax turbines on the admissible intersections. This algorithm consists of sequentially placing the turbines on the best possible empty intersection, in the sense of AEP maximization, until Nmax turbines are placed. The corresponding algorithm in pseudo-code is given in Algorithm A6.

4.4.2 Local search

This part of the algorithm sequentially moves each turbine in random order from its current intersection to a free one if it provides a strict increase in AEP. The algorithm stops when a complete course of all the turbines has been made without a single one being moved. When the number of intersections in the admissible domain is much bigger than Nmax, one can explore a subset of the free intersections. For example, one can explore the p closest intersections from the turbine to be moved or select p random free intersections. In this case, the size of the subset to explore and its definition, p, are user-defined parameters. The algorithm in pseudo-code is given in Algorithm A7.

4.4.3 Turbine placement optimization

Finally, given a set of intersections, the optimization algorithm for optimal turbine placement consists of using sequentially the greedy initialization and the local-search algorithm as described in pseudo-code in Algorithm A9.

5 Numerical examples

5.1 Problem presentation

For this numerical example, we use the same case study as in Thomas et al. (2023), whose data are available in Baker et al. (2021). The windrose corresponding to this case study is displayed in Fig. 2. This case study was created within the International Energy Association (IEA) Wind Task 37, and it is based on the Borssele III and IV wind farms. Of particular interest in this case study is the presence of five disconnected boundary regions and concave boundary features. The turbines are 10 MW machines with 198 m rotor diameters based on the IEA 10 MW reference wind turbine (Bortolotti et al.2019). For the AEP computation, we also use the same algorithm as in Thomas et al. (2023). This method is based on a simple Gaussian wake model based on Bastankhah's Gaussian wake model (Bastankhah and Porté-Agel2016) and presented in the IEA case study 3 and 4 announcement documents (Baker et al.2021) to calculate wind speeds at each turbine in the wind farm. However, any other AEP computation software, such as FLORIS (2023), can be used with the presented algorithm as long as the computation time of the AEP is fast enough. Indeed, our optimization algorithm requires a large number of AEP evaluations. Finally, the AEP is computed using a windrose discretized as follows.

winddirectionbins={0,1,,359}windspeedbins={0.90,1.98,3.18,4.40,5.64,6.87,8.11,9.35,10.59,11.83,13.07,14.31,15.56,16.80,18.04,19.28,20.52,21.77,23.01,24.25}
https://wes.copernicus.org/articles/10/1611/2025/wes-10-1611-2025-f02

Figure 2This figure, reproduced from Thomas et al. (2023), displays the full wind resource used for evaluating the final wind farm layouts. (a) The wind direction probability (360 bins). (b) A representative wind speed probability distribution (20 bins).

5.2 Influence of the hyper-parameters on the AEP and the computation time

The optimization procedure described in Sect. 4 requires setting 5 hyper-parameters: Dmin, Dmax, Δθ, Nθ, and Δr. The turbine's manufacturer usually sets Dmin at a fixed value. In this example, we set Dmin=2Dturb. The parameter Dmax must be chosen large enough to allow a good exploration range for the grid parameters (r1,r2). However, setting Dmax with a significant value generates grids with a number of admissible intersections smaller than the number of turbines to be placed, i.e., in generating non-admissible layouts. Therefore, we have set Dmax=6Dturb. The parameter Δθ should be chosen to the minimal value such that the wake model used to compute the AEP is valid. For this example, we set Δθ=1°. The remaining hyper-parameters, Nθ and Δr, dramatically affect the optimization procedure regarding AEP value and computation time. Indeed, as explained in Sect. 4.2, the larger Nθ, the larger the reduced angle set denoted Θ, and the smaller Δr, the larger the set R1,2. The number of configurations to optimize being the product of the cardinal of the sets Θ and R1,2, the larger these sets, the longer the computation time. However, the more configuration to optimize, the greater the AEP. Therefore, any layout optimization needs to make a trade-off between computation time and size of the set of configuration to optimize. In this section, we will show the effect of the parameters Nθ and Δr on the optimal AEP and the computation time and give the user some guidelines to set these parameters. To do so, we run Algorithm 1 for all possible configurations of the hyper-parameters valued in their respective value set given in Table 1 for wind farm sizes of 81, 100, 150, and 250 turbines respectively. The numerical results of these optimizations are gathered in Table 2 and illustrated in Figs. 3 and 4. In Fig. 3, one can see that the expected power per turbine1 is growing with respect to Nθ and decreasing with respect to Δr. Also, when Nθ≥5 and Δr≤1Dturb, the expected powers per turbine are similar whatever the value of these hyper-parameters. However, as illustrated in Fig. 4, the execution time is strongly increasing with respect to Nθ and strongly decreasing with respect to Δr. Therefore, if Algorithm 1 is run using an AEP computation method more precise and computationally more expensive than the one we used (see Baker et al.2021; Thomas et al.2023), keeping Nθ reasonably small (≈5) and Δr reasonably large (≈1) should enable the solving algorithm to find a well-performing layout in a reasonable execution time. In addition, as illustrated in Table 1, the solving algorithm often sets the optimal shape parameters (r1,r2) to their minimal authorized values. This behavior indicates that the method generates grids with many intersections and, thus, a large degree of freedom for the local-search part of the algorithm. The larger the degree of freedom for the local-search algorithm, the better the solution. The best layout for each wind farm size is displayed in Fig. 5, and the optimal parameters (r1,r2,θ1,θ2), the optimal AEP, the optimal expected power per turbine, and the execution time are displayed in Table 3. The execution time corresponds to the total execution time. However, steps 1 to 3 from Algorithm 1 are always computed in less than 1.5 min (for Δr=0.5 and Nθ=10); the majority of the execution time is spent on step 4 of Algorithm 1.

Table 1Value set of each hyper-parameter.

Download Print Version | Download XLSX

https://wes.copernicus.org/articles/10/1611/2025/wes-10-1611-2025-f03

Figure 3Expected power per turbine for 81-, 100-, 150-, and 250-turbine wind farms, displayed in panels (a), (b), (c), and (d) respectively, as a function of the hyper-parameters Nθ and Δr.

Download

https://wes.copernicus.org/articles/10/1611/2025/wes-10-1611-2025-f04

Figure 4Execution time of Algorithm 1 for 81-, 100-, 150-, and 250-turbine wind farms, displayed in panels (a), (b), (c), and (d) respectively, as a function of the hyper-parameters Nθ and Δr. All optimizations were run on a 12th Gen Intel(R) i7-12700H 2.30 GHz core.

Download

Table 2Influence of the hyper-parameters Nθ and Δr on the AEP and Algorithm 1 execution time. All optimizations were run on a 12th Gen Intel(R) i7-12700H 2.30 GHz core.

Download Print Version | Download XLSX

Table 3Optimal AEP, shape configuration, and mean power per turbine for an increasing number of turbines.

Download Print Version | Download XLSX

https://wes.copernicus.org/articles/10/1611/2025/wes-10-1611-2025-f05

Figure 5Best layouts for wind farm sizes of 81, 100, 150, and 250 turbines, displayed in panels (a), (b), (c), and (d) respectively, using Algorithm 1.

Download

6 Exploration method's impact on the AEP

The optimization layout algorithm presented in this paper relies on the discrete exploration of the space of shape parameters (r1,r2,θ1,θ2)[Dmin,Dmax]2×[-π/2,π/2]2. Despite the angles' search space reduction technique presented in Sect. 4.2 and Algorithm A2, exploring this space using fine discretization is numerically too demanding since it requires running step 4 of Algorithm 1 for a number of shape parameters too large for a reasonable running time. Unfortunately, the performance of the optimization depends on the capacity to tune the shape parameters finely. Achieving such a fine-tuning with Algorithm 1 requires using a small shape-parameter space discretization step. Therefore, there is a strong incentive to develop heuristic methods to explore the shape parameters' space other than by using the angle search space reduction associated with a brute-force-like exploration method. Indeed, using more efficient shape-parameter-space exploration methods allows for a good trade-off between a fine-tuning of these parameters and a reasonable computation time. In this section, we present optimization results using such a heuristic to provide a benchmark for an aligned optimization algorithm. Unfortunately, for industrial confidentiality reasons, we do not describe its principle and only focus on the improvement in terms of AEP. Again, we have run the optimization procedure for wind farms of 81, 100, 150, and 250 turbines. The results in terms of optimal shape parameters, AEP, expected power per turbine, and wake losses are summarized in Table 4, and the optimal layouts are displayed in Fig. 6. The optimal layout obtained using this heuristic exhibits the same behavior as those found in the previous section regarding r1 and r2. Indeed, these parameters are systemically found to be equal to the lowest possible value. In contrast, the optimal angles are not the same. One of the alignment directions is conserved (≈18°), but the other one is quite different even when taking into account the 180° periodicity of the angles. Concerning the AEP, using a heuristic to explore the space of shape parameters more efficiently allows for improvement. Interestingly, as illustrated in Fig. 7 and in the last column of Table 4, the percentage of AEP increase grows almost linearly concerning the wind farm size and reaches 1 % for the larger one. This behavior stems from the decreasing degrees of freedom in the turbine's optimal placing problem as the wind farm size grows. Therefore, for larger farms, the efficiency of the shape parameters' optimization algorithm is of greater importance than for smaller farms; thus, there is a more substantial improvement in AEP for large farms when using a better exploration algorithm for the space of shape parameters. These results prove to be a strong incentive to develop efficient heuristics to explore the space of shape parameters.

Table 4Optimal AEP, shape configuration, and mean power per turbine for an increasing number of turbines using a fast heuristic for the optimization of the shape's parameters.

Download Print Version | Download XLSX

https://wes.copernicus.org/articles/10/1611/2025/wes-10-1611-2025-f06

Figure 6Best layouts for wind farm sizes of 81, 100, 150, and 250 turbines, displayed in panels (a), (b), (c), and (d) respectively, using an efficient shape parameter exploration method and the same local-search algorithm.

Download

https://wes.copernicus.org/articles/10/1611/2025/wes-10-1611-2025-f07

Figure 7Percentage of AEP increase when using an efficient shape-parameter-space exploration method compared to the brute force discretization from Algorithm 1.

Download

7 Conclusions

This work tackles the wind farm layout optimization problem with alignment constraints. We introduced a model of the corresponding optimization problem and adapted the DEBO algorithm from Thomas et al. (2023) to this new problem. The proposed method is based on an exploration heuristic for computing the grid parameters and a local-search method to place the turbines on the grid's intersections optimally. We have shown that this method performs well on the benchmark of IEA Wind Task 37 (Thomas2022) since it produced an AEP increase of 0.41 % compared to the baseline layout, even though the latter does not satisfy any alignment constraints and is potentially less prone to significant wake losses. Using this numerical example, we have also demonstrated the benefits of developing efficient heuristics for exploring the grid parameters. Indeed, using efficient heuristics allows for a better trade-off between wake-loss reduction and computation time. Therefore, these heuristics can be used to find layouts with higher AEP or to use more precise and computationally demanding AEP models. A more efficient algorithm can enable the introduction of other optimization parameters or constraints, such as cable routing or shared mooring for floating farms. Otherwise, to quantify the effect of alignment constraints on the wake losses, one could perform a sensitivity analysis by allowing small displacements of each turbine, resulting in an almost aligned layout. Finally, future works can also investigate the robustness of the optimal layout with respect to the wind probability measure PW:=n=1NWp(wsn,wdn)δ(wsn,wdn). The sensitivity of the AEP with respect to the wind probability is easy to estimate if the support of the probability is unchanged, i.e., if the modified probability P^W is P^W:=n=1NWp(wsn,wdn)+Δp(wsn,wdn)δ(wsn,wdn), with Δp(wsn,wdn)=0. In this case we have

ΔAEP(Fn):=8760n=1NWP(Fn,wsn,wdn)Δp(wsn,wdn)).

However, when the probability's support is also varying, computations are much more involved, and future works could focus on using distributionally robust optimization methods (see Rahimian and Mehrotra2022, for a review on the subject) to produce robust layouts with respect to the wind probability measure.

Appendix A: Algorithms in pseudo-code

Algorithm A1GenerateR1R2(Δr,Dmin,Dmax).

1:
R1,2
2:
r1Dmin.Dturb
3:
angles←∅
4:
while r1Dmax.Dturb do
5:
r2Dmin.Dturb
6:
while r2Dmax.Dturb do
7:
R1,2R1,2r1,r2)
8:
r2r2+Δr
9:
end while
10:
r1r1+Δr
11:
end while
12:
return  R1,2

Algorithm A2ReduceSearchSpace(R1,2,Δθ,Dmin,Dmax, Dturb,Nθ).

1:
Θ←∅
2:
for (r1,r2)R1,2 do
3:
Θr1,r2 GetBestAngles(r1,r2,Δθ,Dmin,Dmax,Dturb,Nθ)
4:
ΘΘΘr1,r2
5:
end for
6:
return  Θ

Algorithm A3GetBestAngles(r1,r2,Δθ,Dmin,Dmax,Dturb, Nθ).

1:
farms←∅
2:
Θr1,r2
3:
θ1-π2+Δθ
4:
while θ1π2 do
5:
θ2-π2
6:
while θ2θ1-Δθ do
7:
DgridminzZ*2PB0B(θ1,θ2,r1,r2)z
8:
if DgridDmin.Dturbθ1-θ2π-Δθ  then
9:
n←1
10:
for i=0 to i=1  do
11:
for j=0 to j=1  do
12:
F4(n)PB0B(θ1,θ2,r1,r2)ij
13:
nn+1
14:
end for
15:
end for
16:
aepEWP(F4,ws,wd)
17:
farmsfarms(θ1,θ2,aep)
18:
end if
19:
θ2θ2+Δθ
20:
end while
21:
θ1θ1+Δθ
22:
end while
23:
sort(farms) {by decreasing order of aep}
24:
for i=1 to i=Nθ do
25:
Θr1,r2Θr1,r2(farms(i).θ1,farms(i).θ2)
26:
end for
27:
return  Θr1,r2

Algorithm A4GenerateConfigs(R1,2,Θ,Dmin,Dmax,Dturb).

1:
grids←∅
2:
for  (r1,r2)R1,2 do
3:
for (θ1,θ2)Θ do
4:
DgridminzZ*2PB0B(θ1,θ2,r1,r2)z
5:
if minzZ*2PB0B(θ1,θ2,r1,r2)zDmin.Dturb then
6:
gridsgrids{(r1,r2,θ1,θ2)}
7:
end if
8:
end for
9:
end for
10:
return  grids

Algorithm A5ComputeAllIntersections(grids, Dmin, Ω).

1:
intersections_sets←{}
2:
n←1
3:
while  n≤card(grids)  do
4:
{Compute basic shape vector}
5:
r1,r2,θ1,θ2grids(n)
6:
v1(r1cos(θ1),r1sin(θ1))
7:
v2(r2cos(θ2),r2sin(θ2))
8:
{Function of the intersections}
9:
Iv1,v2(Δ1,Δ2):={k1v1+k2v2Z2s.t.k1v1+k2v2+(Δ1,Δ2)Ω;(k1,k2)Z2}
10:
{Compute offset maximising the number of admissible intersections}
11:
(Δ1*,Δ2*)argmaxΔ1,Δ2[0,1)2card(Iv1,v2(Δ1,Δ2))
12:
{Add intersections to the set of intersections}
13:
if card(Iv1,v2(Δ1*,Δ2*))Nmax then
14:
intersections_setsIv1,v2(Δ1*,Δ2*),(r1,r2,θ1,θ2) ⋃intersections_sets
15:
end if
16:
nn+1
17:
end while
18:
return  intersections_sets

Algorithm A6GreedyInitialization(intersections).

1:
(x0,y0)argmaxx,y{x-ys.t.(x,y)intersections}
2:
F1(1)←(x0  y0)
3:
nt←1
4:
intersections intersections{(x0  y0)}
5:
while nt<Nmax do
6:
(x*y*)argmax(x,y)intersectionsEW PFnt(xy),ws,wd
7:
Fnt+1Fnt(x*y*)
8:
ntnt+1
9:
intersections intersections {(x*y*)}
10:
end while
11:
return  FNmax

Algorithm A7LocalSearch(FNmax,intersections).

1:
convergence
2:
aepEWP(FNmax,ws,wd)
3:
while ¬ convergence do
4:
HNmaxFNmax
5:
random_indices shuffle([[0,,Nmax[[)
6:
for indice random_indices do
7:
{compute all possible layouts by moving ith turbine}
8:
children_layout generate_children(FNmax, indice, intersections)
9:
for (GNmax,intersectionsG)children_layout  do
10:
if EWP(GNmax,ws,wd)>aep then
11:
FNmaxGNmax
12:
aepEWP(FNmax,ws,wd)
13:
intersections←intersectionsG
14:
end if
15:
end for
16:
end for
17:
convergence FNmax=HNmax
18:
end while
19:
return  FNmax,aep

Algorithm A8generate_children(FNmax,indice,intersections).

1:
children_layout ←∅
2:
for (x  y)∈ intersections do
3:
GNmaxFNmax
4:
intersectionG intersections
5:
(xnewynew)GNmax(indice)
6:
GNmax(indice)(xy)
7:
intersectionsG intersectionsG{(xy)}{(xnew,ynew)}
8:
children_layout children_layout {(GNmax,intersectionsG)}
9:
end for
10:
return  children_layout

Algorithm A9PlaceTurbines(intersections).

1:
FNmax GreedyInitialization(intersections)
2:
FNmax,aep LocalSearch(FNmax,intersections)
3:
return  FNmax,aep
Data availability

Provided physics model, turbine, and boundary data are available from Thomas (2022) (https://doi.org/10.5281/zenodo.7125349), and optimal layouts, AEPs, shape configurations, and intersections are available from Malisani (2024) (https://doi.org/10.5281/zenodo.13122308).

Author contributions

PM conceived and developed the methodology and drafted the manuscript. TB contributed to code development and implementation. PB critically revised the manuscript and provided conceptual input and feedback informed by multiple real-world case studies.

Competing interests

The contact author has declared that none of the authors has any competing interests.

Information

The method described in this publication is the subject of the international patent application number WO 2024/061627.

Disclaimer

Publisher’s note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors.

Review statement

This paper was edited by Emmanuel Branlard and reviewed by three anonymous referees.

References

Baker, N. F., Thomas, J. J., Stanley, A. P. J., and Ning, A.: EA Task 37 Wind Farm Layout Optimization Case Studies, Zenodo [data set] and [code], https://doi.org/10.5281/zenodo.5809681, 2021. a, b, c

Bastankhah, M. and Porté-Agel, F.: Experimental and theoretical study of wind turbine wakes in yawed conditions, J. Fluid Mech., 806, 506–541, https://doi.org/10.1017/jfm.2016.595, 2016. a

Bortolotti, P., Tarres, H. C., Dykes, K. L., Merz, K., Sethuraman, L., Verelst, D., and Zahle, F.: IEA Wind TCP Task 37: Systems Engineering in Wind Energy – WP2.1 Reference Wind Turbines, Tech. rep., https://doi.org/10.2172/1529216, 2019. a

Burer, S. and Letchford, A.: Non-convex mixed-integer nonlinear programming: A survey, Surveys in Operations Research and Management Science, 17, 97–106, 2012. a

Exler, O., Antelo, L., Egea, J., Alonso, A., and Banga, J.: A tabu search-based algorithm for mixed-integer nonlinear problems and its application to integrated process and control system design, Computers and Chemical Engineering, 32, 1877–1891, 2008. a

Fischetti, M. and Fischetti, M.: Integrated Layout and Cable Routing in Wind Farm Optimal Design, Manage. Sci., 69, 2147–2164, 2022. a

Fischetti, M. and Pisinger, D.: Mathematical Optimization and Algorithms for Offshore Wind Farm Design: An Overview, Bus. Inf. Syst. Eng., 61, 469–485, 2019. a

FLORIS: NREL 2023, Version 3.4.1., GitHub [code], https://github.com/NREL/floris (last access: 7 August 2025), 2023. a

Herbert-Acero, J., Probst, O., Rethore, P., Larsen, G., and Castillo-Villar, K.: A Review of Methodological Approaches for the Design and Optimization of Wind Farms, Energies, 7, 6930–7016, https://doi.org/10.3390/en7116930, 2014. a

Hou, P., Zhu, J., Ma, K., Yang, G., Hu, W., and Chen, Z.: A review of offshore wind farm layout optimization and electrical system design methods, J. Mod. Power Syst. Cle., 7, 975–986, 2019. a

Kumar, M. and Sharma, A.: Wind Farm Layout Optimization Problem Using Teaching-Learning-Based Optimization Algorithm, in: Communication and Intelligent Systems, edited by: Sharma, H., Shrivastava, V., Bharti, K. K., and Wang, L., Springer Nature Singapore, Singapore, 151–170, ISBN 978-981-99-2322-9, 2023. a

Kunakote, T., Sabangban, N., Kumar, S., Tejani, G. G., Panagant, N., Pholdee, N., Bureerat, S., and Yildiz, A. R.: Comparative Performance of Twelve Metaheuristics for Wind Farm Layout Optimisation, Arch. Comput. Meth. E., 29, 717–730, https://doi.org/10.1007/s11831-021-09586-7, 2022. a

Liang, Z. and Liu, H.: Layout Optimization Algorithms for the Offshore Wind Farm with Different Densities Using a Full-Field Wake Model, Energies, 16, 5916, https://doi.org/10.3390/en16165916, 2023. a

Liberti, L., Mladenović, N., and Nannicini, G.: A recipe for finding good solutions to MINLPs, Mathematical Programming Computation, 3, 349–390, 2011. a

LoCascio, M. J., Bay, C. J., Martinez-Tossas, L. A., Bastankhah, M., and Gorlé, C.: FLOWERS AEP: An Analytical Model for Wind Farm Layout Optimization, Wind Energy, 27, 1563–1580, https://doi.org/10.1002/we.2954, 2024. a

Malisani, P.: Data for Wind farm layout optimization with alignment constraints: Initial release, Zenodo [data set], https://doi.org/10.5281/zenodo.13122308, 2024. a

Maritime and Coastguard Agency: Offshore renewable energy installations: impact on shipping, https://www.gov.uk/guidance/offshore-renewable-energy-installations-impact-on-shipping (last access: 7 August 2025), 2012. a

Ministry of Transport of the French Republic: Note technique du 28 juillet 2017 établissant les principes permettant d’assurer l’organisation des usages maritimes et leur sécurité dans et aux abords immédiats d’un champ éolien en mer, https://eolmernormandie.debatpublic.fr/images/documents/dmo/biblio/cir_42526.pdf (last access: 7 August 2025), 2017. a

Papadimitriou, C. and Steiglitz, K.: Combinatorial optimization, algorithms and complexity, Dover, ISBN 10 0486402584, 1998.  a

Porté-Agel, F., Bastankhah, M., and Shamsoddin, S.: Wind-Turbine and Wind-Farm Flows: A Review, Bound.-Lay. Meteorol., 174, 1–59, 2020. a

Quick, J., Rethore, P.-E., Mølgaard Pedersen, M., Rodrigues, R. V., and Friis-Møller, M.: Stochastic gradient descent for wind farm optimization, Wind Energ. Sci., 8, 1235–1250, https://doi.org/10.5194/wes-8-1235-2023, 2023. a

Rahimian, H. and Mehrotra, S.: Frameworks and Results in Distributionally Robust Optimization, Open Journal of Mathematical Optimization, 3, 4, https://doi.org/10.5802/ojmo.15, 2022. a

Schlüter, M., Egea, J. A., and Banga, J. R.: Extended ant colony optimization for non-convex mixed integer nonlinear programming, Comput. Oper. Res., 36, 2217–2229, 2009. a

tanley, A. P. J. and Ning, A.: Massive simplification of the wind farm layout optimization problem, Wind Energ. Sci., 4, 663–676, https://doi.org/10.5194/wes-4-663-2019, 2019. a

Thomas, J. J.: jaredthomas68/thomas2022-8-opt-algs-wflop: Initial release, Zenodo [data set], https://doi.org/10.5281/zenodo.7125349, 2022. a, b

Thomas, J. J., Baker, N. F., Malisani, P., Quaeghebeur, E., Sanchez Perez-Moreno, S., Jasa, J., Bay, C., Tilli, F., Bieniek, D., Robinson, N., Stanley, A. P. J., Holt, W., and Ning, A.: A comparison of eight optimization methods applied to a wind farm layout optimization problem, Wind Energ. Sci., 8, 865–891, https://doi.org/10.5194/wes-8-865-2023, 2023. a, b, c, d, e, f, g, h, i, j

Yiqing, L., Xigang, Y., and Yongjian, L.: An improved PSO algorithm for solving non-convex NLP/MINLP problems with equality constraints, Comput. Chem. Eng., 31, 153–162, 2007. a

Young, C.-T., Zheng, Y., Yeh, C.-W., and Jang, S.-S.: Information-guided genetic algorithm approach to the solution of MINLP problems, Ind. Eng. Chem. Res., 46, 1527–1537, 2007. a

1

For a Nt-turbine wind farm, the expected power per turbine is given by the formula AEP(MWh)/(8760×Nt) and allows for comparing wind farms of different sizes.

Download
Short summary
Maritime authorities often impose turbine alignment constraints on developers to secure the navigation of boats within the wind farm, potentially creating substantial wake losses. The proposed contribution is a new wind farm layout optimization (WFLO) algorithm that considers these constraints. The proposed method optimizes the grid-alignment parameters and the turbines' location on this grid. We illustrate the algorithm's performances on a challenging example.
Share
Altmetrics
Final-revised paper
Preprint