A Comparative Study of Differential Evolution Variants in Constrained Structural Optimization

Differential evolution (DE) is a population-based metaheuristic search algorithm that optimizes a problem by iteratively improving a candidate solution based on an evolutionary process. Such algorithms make few or no assumptions about the underlying optimization problem and can quickly explore very large design spaces. DE is arguably one of the most versatile and stable population-based search algorithms that exhibits robustness to multi-modal problems. In the field of structural engineering, most practical optimization problems are associated with one or several behavioral constraints. Constrained optimization problems are quite challenging to solve due to their complexity and high nonlinearity. In this work we examine the performance of several DE variants, namely the standard DE, the composite DE (CODE), the adaptive DE with optional external archive (JADE) and the self-adaptive DE (JDE and SADE), for handling constrained structural optimization problems associated with truss structures. The performance of each DE variant is evaluated by using five well-known benchmark structures in 2D and 3D. The evaluation is done on the basis of final optimum result and the rate of convergence. Valuable conclusions are obtained from the statistical analysis which can help a structural engineer in practice to choose the suitable algorithm for such kind of problems.


INTRODUCTION
The optimization of structures has been a topic of great interest for both scientists and engineering professionals, especially in recent years. Metaheuristic search algorithms are widely accepted as efficient approaches for handling difficult optimization problems. Such algorithms are designed for solving a wide range of optimization problems in an approximate way, without having to adapt explicitly to every single problem. Moreover, they can be generally applied to problems for which there exists no satisfactory problem-specific algorithm.
In recent years differential evolution (DE) (Storn and Price, 1997) has gained increasing interest for solving optimization problems in many scientific and engineering fields. Today, it is considered one of the most popular optimization algorithms for continuous optimization problems. The method was originally proposed by Storn and Price (1995) for minimizing non-differentiable and possibly nonlinear continuous functions. It is worth noting that although DE is an evolutionary algorithm, it bears no natural paradigm and it is not biologically inspired like most other evolutionary algorithms. DE has exhibited very good performance in a variety of optimization problems from various scientific fields. It belongs to stochastic population-based evolutionary methods and like other evolutionary algorithms, it uses a population of candidate solutions and the search is done in a stochastic way by applying mutation, crossover, and selection operators to drive the population toward better solutions in the design space.
The main advantage of standard DE is the fact that it has only three control parameters that one needs to adjust. The performance of DE in a specific optimization problem depends largely on both the trial vector generation scheme and the choice of the control parameters. First, one needs to choose the trial vector generation scheme and then to adjust the control parameters for the optimization problem in order to achieve good optimization results. Finding the right values of the control parameters is not always easy and can become time consuming and difficult especially for specific hard problems. This has led the researchers to study and develop new advanced DE variants that exhibit adaptive and self-adaptive control parameters. In the case of adaptive parameter control (Eiben et al., 1999), the parameters are adapted based on feedback received during the search process. Shukla et al. (2017) presented a modified mutation vector generation scheme for the basic DE for solving the stagnation problem. A new variant of DE was proposed and its performance was tested on 24 benchmark functions. Abbas et al. (2015) proposed a tournament-based parent selection variant of the DE algorithm in an effort to enhance the searching capability and improve convergence speed of DE. The paper also describes a statistical comparison of existing DE mutation variants, categorizing these variants based on their overall performance. Charalampakis and Tsiatas (2019) compare variants of Genetic Algorithms, Particle Swarm Optimization (Plevris and Papadrakakis, 2011), Artificial Bee Colony, Differential Evolution, and Simulated Annealing in truss sizing structural optimization problems. The authors claim that for the examined problems, DE is the most reliable algorithm, showing robustness, excellent performance and scalability. Mezura-Montes et al. (2006) present an empirical comparison of several DE variants in solving global optimization problems where 13 benchmark problems from the literature were examined and eight different variants were implemented.
In the present study, we investigate the performance of five popular DE variants in dealing with constrained structural optimization problems. More specific the following five problems are considered: • The standard differential evolution (DE) (Storn and Price, 1997) • The composite differential evolution (CODE) (Wang et al., 2011) • The self-adaptive control parameters differential evolution (JDE) (Brest et al., 2006) • The adaptive differential evolution with optional external archive (JADE) (Zhang and Sanderson, 2009) • The self-adaptive differential evolution (SADE) (Qin et al., 2009).
We examine the performance of each algorithm in five structural optimization problems, three plane and two space truss benchmark structures where the objective is to minimize the structural weight subject to constraints on stresses and displacements. The remainder of the paper is organized as follows. The second section contains the problem definition and the constraint handling scheme. Section 3 describes the standard DE, the most frequently used mutation schemes and the other four DE variants examined in the study. The numerical examples, the relevant results and a discussion on them are presented in section 4. Section 5 discusses the conclusions of the work.

PROBLEM DEFINITION
Many problems in structural engineering involve often dealing with a large number of design parameters which can affect the performance of the system. The design and testing of civil engineering structures requires often an iterative process with proper adjustment of the parameters, that can be hard and time consuming. Design optimization offers solutions to this problem by changing the design parameters in an organized and automated manner in an effort to reach an optimal solution. The target of the optimization is usually the minimization of a cost function.
In sizing structural optimization problems, the objective is associated with the minimization of the weight of the structure under some behavioral constraints that have usually to do with displacements and stresses. The design parameters have to do with the dimensions of the cross sections of the structural members. The present study is focused on 2D and 3D truss structures and the design variables are continuous representing the cross-sectional areas of the members of the structure. For such problems the objective function is usually the weight (or mass) of the structure and the problem is formulated as follows: where W(x) is the total structural weight, N e is the number of structural elements, x = {x 1 , . . . , x N e } is the vector which contains the cross-section areas x i of all elements, L i is the length and ρ i is the material density of element i. In addition, g(x) are the behavioral constraints, K in total. The behavioral constraints are relationships involving usually stresses and deflections of the various elements and nodes of the structure, for example the maximum stress, the maximum deflection, or the minimum load capacity to satisfy norms requirements. Many times, for practical purposes and for uniformity, the areas of particular members are grouped together so that the number of design variables can become significantly smaller than the total number of elements of the structure. This is very convenient especially for big structures with a large number of elements. Grouping in optimization is also in line with actual grouping that is performed in practice due to symmetry and simplicity.

Constraint Handling
A common practice for dealing with an optimization problem that includes inequality constraints is the use of a penalty function. Such functions can be used to transform the original constrained problem to an unconstrained one. This has been a popular approach for dealing with such problems because it is simple and rather easy to implement. In the present study, the following penalty formulation is used to handle the optimization problem constraints: where f (x) is the objective function to be minimized, P(x) is the penalty term, g k (x) is the k-th constraint function in the form g k (x) ≤ 0, µ ≥ 0 is a penalty factor that should be large enough (e.g., 10 6 ) and the H k (x) function is defined as follows:

Standard DE
DE is a popular optimization method used for multidimensional real-valued functions which uses a population of individual solutions. The method does not require gradient information, which means that the optimization problem does not need to be differentiable. The algorithm searches the design space by maintaining a population of candidate solutions (individuals) and creating new solutions by combining existing ones according to a specific process. The candidates with the best objective values are kept in the next iteration of the algorithm in a manner that the new objective value of an individual is improved forming consequently part of the population, otherwise the new objective value is discarded. The process repeats itself until a given termination criterion is satisfied. Let x ∈ R D designate a candidate solution in the current population, where D is the dimensionality of the problem being optimized and f : R D −→ R is the objective function to be minimized. The basic DE algorithm, following the "DE/rand/1" scheme, can be described schematically as follows: The trial vector u i is developed either from the elements of the target vector x i or the elements of the donor vector v i as follows: . . , NP}, j = {1, . . . , D}, r i,j ∼ ∪(0, 1) is a uniformly distributed random number which is generated for each j and j rand ∈ {1, . . . , D} is a random integer used to ensure that u i = x i in all cases EVALUATE If f (u i ) ≤ f (x i ) then replace the individual x i in the population with the trial vector u i FES = FES + NP end G = G + 1; end In every generation (iteration) G, Differential Evolution uses the mutation operator for producing the donor vector v i for each individual x i in the current population. For each target vector x i = {x i,1 , . . . , x i,D } at generation G, the associated mutant vector v i = {v i,1 , . . . , v i,D } can be produced using a specific mutation scheme. The six most widely used mutation schemes in differential evolution are described below: Frontiers in Built Environment | www.frontiersin.org
where the indices r 1 , r 2 , r 3 , r 4 , r 5 are random integers which are mutually exclusive, within the range [1, NP] and are also different than index i (r 1 = r 2 = r 3 = r 4 = r 5 = i). These indices are generated once for each mutant vector. F is the scaling factor, a positive control parameter for scaling the difference vector, while x best is the best individual vector, i.e., the individual with the best objective value in the population at the current generation G.
The main advantage of DE is the fact that it has only three control parameters that the user of the algorithm needs to adjust. These include the population size NP, where NP ≥ 4, the mutation factor (or differential weight, or scaling factor) F ∈ [0, 2] and the crossover probability (or crossover control parameter) CR ∈ [0, 1]. In the standard DE these control parameters were kept fixed for all the optimization process. The population size has a significant influence on the ability of the algorithm to explore. In case of problems with a large number of dimensions, the population size needs also to be large to make the algorithm capable of searching in the multi-dimensional design space. A population size of 30-50 is usually sufficient in most problems of engineering interest. The mutation factor F is a positive control parameter for scaling and controlling the amplification of the difference vector. Small values of F will lead to smaller mutation step sizes and as a result it will take longer for the algorithm to converge. Large values of F facilitate exploration, but can lead to the algorithm overshooting good optima. Thus, the value has to be small enough to enhance local exploration but also large enough to maintain diversity. The crossover probability CR has an influence on the diversity of DE, as it controls the number of elements that will change. Larger values of CR will lead to introducing more variation in the new population, therefore increasing it increases exploration. But again a compromise value has to be found to ensure both local and global search capabilities.

CODE
Studies have shown that both the control parameters and the schemes for the trial vector generation can have a significant to NP do GENERATE three trial vectors u i 1 ,G , u i 2 ,G and u i 3 ,G for the target vector x i,G using the three generation schemes "rand/1/bin, " "rand/2/bin, " and "current-to-rand/1, " each with control parameter setting randomly selected from the parameter candidate pool: EVALUATE the objective function value of the three trial vectors u i 1 ,G , u i 2 ,G , and u i 3 ,G CHOOSE the best trial vector u * i,G from the three trial vectors influence on the algorithm's performance. Different trial vector generation schemes and control parameters can be therefore combined to improve the performance of the optimization process for different kinds of problems. Mallipeddi et al. (2011) was the first to attempt, trying to combine various schemes for trial vector generation with different control parameter settings.
Composite DE (CODE) (Wang et al., 2011) is based on the idea of randomly combining a number of trial vector generation schemes with several control parameter settings at each generation, for the creation of new trial vectors. These combination schemes are based on experimental results from the literature. In particular, CODE uses three different trial vector generation schemes and three control parameter settings, combining them randomly for the generation of trial vectors. The structure of CODE is rather simple, and the algorithm is easy to implement. The three trial vector generation schemes of the method are the following: (i) "rand/1/bin"; (ii) "rand/2/bin"; (iii) "current-to-rand/1." It has to be noted that in the case of the "current-to-rand/1"scheme, the binominal crossover operator is not applied. The three control parameter settings used are the following: (1) F = 1.0 and CR = 0.1; (2) F = 1.0 and CR = 0.9; (3) F = 0.8 and CR = 0.2.   In each generation, three trial vectors are generated for each target vector as follows: each of the three trial vector generation schemes is combined with a control parameter setting from the relevant pool, in a random manner. If the best one of the three is better than its target vector, then it enters the next generation. The pseudocode of the method is presented in Algorithm 2.

JDE
The standard DE algorithm includes a set of parameters that are kept fixed throughout the optimization process. These parameters would need to be adjusted for every single optimization problem in order to ensure optimal performance. Some researchers have claimed that the DE parameters are not so difficult to set manually (Storn and Price, 1997). Yet, others (Gamperle et al., 2002) claim that the process can be quite demanding especially for particular optimization problems. According to Liu and Lampinen (2002), the effectiveness, efficiency, and robustness of the DE algorithm are very sensitive to the values of the control parameters, while certain parameters may work well in a problem but not so well with other problems, which makes the optimal selection of the parameters a problemspecific question.
JDE features self-adaptive control parameter settings and has shown acceptable performance on benchmark problems (Brest et al., 2006). It uses the idea of the evolution of the evolution, i.e., it uses an evolution process to fine tune the optimization algorithm parameters. Although the idea sounds promising, the proof of convergence of self-adaptation algorithms is a difficult task in general. In JDE the parameter control technique is based on the self-adaptation of the parameters F and CR of the DE evolutionary process, producing a flexible DE which adjusts itself in order to achieve the best optimization outcome. According to Storn and Price (1997), DE behavior is more sensitive to the where rand j with j ∈ {1, 2, 3, 4} are uniform random values in [0, 1] and τ 1 , τ 2 represent probabilities to adjust factors F and   user no longer needs to guess good values of F and CR, which are problem-dependent.

JADE
The selection of the values of the mutation factor (F) and the crossover probability (CR) can significantly affect the performance of DE. Trial-and-error attempts for fine-tuning these control parameters can be successful but they require much time and effort and the result is always problem-specific.
Researchers have suggested various self-adaptive mechanisms for dealing with this problem (Qin and Suganthan, 2005;Brest et al., 2006Brest et al., , 2007Huang et al., 2006;Teo, 2006) in an effort to dynamically update the control parameters without having any prior knowledge of the characteristics of the problem. JADE was proposed to improve the performance of the standard DE by implementing a new mutation scheme which updates control parameters in an adaptive way. The method introduces a new mutation scheme denoted as "DE/currentto-pbest" with an optional external archive. The algorithm, as described in Zhang and Sanderson (2009) utilizes not only the best solution, but a number of 100p%, p ∈ (0, 1] good solutions. Compared to "DE/rand/k, " greedy schemes such as the "DE/current-to-best/k" and the "DE/best/k" can benefit from their fast convergence by incorporating best solution information in the search procedure. However, this best solution information can also cause premature convergence problems due to reduced diversity in the population. In the "DE/current-to-pbest/1" scheme (without archive), a mutation vector is generated as follows: Where x p best is chosen randomly as one of the top 100p% individuals of the current population with p ∈ (0, 1], and F i is the mutation factor associated with x i . In JADE, any of the top 100p% solutions can be randomly chosen to play the role of the single best solution in the standard "DE/current-to-best" scheme. This is because recently explored solutions that are not the best can still provide additional information about the desired search direction. In the "DE/current-to-pbest/1" scheme with archive, a mutation vector is generated as follows: Where x i,g , x r1,g and x p best,g are selected from the current population P in the usual way, while x r2,g is randomly chosen individual (distinct from x i,g and x r1,g ) from the union P ∪ A of the current population and the set of archived inferior solutions A. The archive is initiated as empty. Consequently, after each iteration, the parent solutions that fail in the selection process are added to the archive. If the size of the archive exceeds a predefined value, for example NP, then some solutions are removed from the archive randomly. The "DE/current-to-pbest/1" scheme (without archive) is a special case of the "DE/current-to-pbest/1" scheme with archive, if we set the archive size equal to zero (i.e., empty archive). Numerical results have shown that JADE exhibits superior or at least comparable performance to other standard or adaptive DE algorithms (Zhang and Sanderson, 2009).

SADE
In SADE, both the trial vector generation schemes and their associated control parameter values can be gradually self-adapted according to their previous experiences of generating promising solutions (Qin et al., 2009). The method consists a self-adaptive DE variant, in which one trial vector generation scheme is selected from the candidate pool according to the probability learned from its success rate in generating improved solutions within a certain number of previous generations LP (learning period). The selected scheme is then applied to the corresponding target vector in order to obtain the trial vector. At each generation, the sum of the probabilities of choosing a scheme from the candidate pool are equal to 1.
In the beginning, all schemes have an equal probability to be selected, i.e., the probabilities with respect to each scheme are initialized as 1/K, where K is the total number of schemes. The population size NP remains a user-specified parameter because it has to do with the complexity of the given optimization problem. The parameter F is approximated by a normal distribution with mean value 0.5 and a standard deviation of 0.3 which makes F fall within the range [−0.4, 1.4] with a probability of 0.997. The control parameter K in the "DE/current-to-rand/1" scheme is randomly generated within [0,1] while CR is assumed to follow a normal distribution with mean value CR m and standard deviation Std, where initially it is set CR m = 0.5 and Std = 0.1. A set of random CR values is generated following the normal distribution and then applied to those target vectors to which the k-th scheme is assigned.
To adapt the CR values, memories CRMemory k are established to store those CR values with respect to the k-th scheme of successfully trial vectors generation, entering the next generation within the previous LP generations that keep the success and failure memories by storing CR values. During the first LP generations, CR values with respect to the k-th scheme are drawn from the normal distribution. At each generation after LP generations, the median value that stored in CRMemory k will be calculated to overwrite CR mk . After evaluating the newly generated trial vectors, CR values in CRMemory k that correspond to earlier generations will be replaced by promising CR values obtained at the current generation with respect to the k-th scheme. The method is described in detail in Qin et al. (2009).

NUMERICAL EXAMPLES
The performance of each of the five optimization algorithms (the standard DE and the four DE variants) is examined in five well-known benchmark structural engineering test examples.
The characteristics of each test example is given in Table 1.
For all test examples the objective is the minimization of the structural weight under constraints on stresses and displacements. The parameters of the optimization algorithms are the following: population size NP = 30, mutation factor F = 0.6, crossover probability CR = 0.9. More specifically, for the JDE variant, τ 1 , and τ 2 probabilities are both taken equal to 0.1. JADE is used with the optional archive, with archive size equal to NP = 30, while p = 0.05. The maximum number of objective function evaluations is used as the termination criterion for all cases, with a value of 10 5 . The value of µ used in Equation (2) is equal to 10 10 . Furthermore, 30 independent runs have been conducted for each method examined and the convergence history results presented are the average results of the different runs. Other statistical quantities and measures are also presented, such as best, worst, mean, median, standard deviation, and coefficient of variation (COV).

25-Bar Space Truss
The first test example is a 25-member space truss. The geometry of the structure is shown in Figure 1A where the dimensions a, b and h are equal to 200, 75, and 100 in, respectively. The density of the material is ρ = 0.1 lb/in 3 and the Young's modulus is E = 10,000 ksi. There are two load cases, as shown in Table 2. There are eight groups where the members of the structure belong to. The cross section areas of each design group, in the range [0.01, 5] (in 2 ), are the design variables of the problem. The design variable groups and the stress constraints for each group are shown in Table 3. The maximum allowable displacement for each node is d max = ±0.35 in every direction. The convergence history of the various DE methods is shown in Figure 1B as the average of 30 independent runs for each optimization algorithm. Figure 1B shows the convergence history of the five algorithms. The horizontal dashed line represents the best solution ever found in the literature for this specific problem, for comparison purposes. The convergence histories reveal that all the five algorithms eventually manage to converge to approximately the same final result. However, the rate of convergence is different. JADE is the fastest, converging to the optimum earlier than the other algorithms. JADE, DE, and JDE appear to be ranked 1st, 2nd, and 3rd as far as the convergence speed is concerned. Then come SADE and CODE with similar convergence performance. Table 4 reveals that all algorithms managed to find the same best solution (545.555). It is worth noting that three of them managed to find the same best solution in all 30 runs, as the best value and the worst value are the very same. Only JDE and SADE failed to deliver the best solution in all 30 runs, but again the difference is very small and the coefficient of variation has very small values equal to 1.92E-5 and 2.24E-4 for the two methods, respectively.

10-Bar Plane Truss
The second test example is the standard benchmark 10-bar plane truss problem. The geometry of the structure is shown in Figure 2A. The characteristics of the structure are: Young's modulus E = 10,000 ksi, density of the material ρ = 0.1 lb/in 3 , L = 360 in, P = 100 kip. There are 10 group members, i.e., each member of the structure belongs to its own group. The design variables represent the cross-section areas of each structural element in the interval [0.1, 35] (in 2 ). The maximum allowable stress (absolute value) is σ allow = 25 ksi in tension or compression while the maximum allowable displacement in the ±x and ±y directions for each node is d max = 2 in. The convergence history of the various DE methods is shown in Figure 2B as the average of 30 independent runs for each optimization algorithm. Figure 2B shows that all methods converge to the optimum, but with different convergence rates. Again JADE shows the best convergence performance. The algorithms are ranked as JADE-DE-JDE-SADE-CODE from the fastest to the slowest in reaching the optimum. Table 5 shows that all algorithms managed to find the optimum solution as their "best" run. DE and CODE were very successful in achieving the optimum result even in their "worst" runs. DE and CODE show very consistent performance in all runs and JADE is also good in that. JDE and SADE have the most variation in their results with values of COV equal to 5.68E-4 and 1.21E-3, respectively. It is worth noting that CODE exhibits the slowest convergence but simultaneously the most consistent behavior in reaching the same optimum value in all runs. Figure 3A shows the third test example, a space truss with 72 members. The basis of the structure is a rectangle with 2b = 120 in, while the total height is 4b = 240 in. Nodes 1, 2, 3, and 4 are pinned on the ground while all the other nodes are free to move in all three directions. Each member has the following material characteristics: Young's modulus is E = 10,000 ksi and material density ρ = 0.1 lb/in 3 . Two load cases have been considered. There are 16 groups of structural members. The design variables represent the cross-section areas of each group. There is no upper limit, while the lower limit is 0.01 in 2 for each design variable. The constraints are imposed on displacements and stresses. The maximum allowable stress (as an absolute value) is σ allow = 25 ksi, in tension or compression, while the maximum allowable displacement in the ±x and ±y directions is d max = 0.25 in, for each node. The convergence history of the various DE variants is shown in Figure 3B as the average of 30 independent runs for each method.

72-Bar Space Truss
Again, Figure 3B shows that all methods converge to the same result with JADE being the fastest. The ranking from fastest to slowest convergence is now JADE-JDE-DE-SADE-CODE. Once again, CODE is very successful in obtaining almost the same optimum value in all runs (COV = 6.89E-6) as shown in Table 6. SADE exhibits the worst performance in terms of variation of the results (COV = 1.04E-3). In any case, all algorithms are again quite successful in almost all their 30 runs.

200-Bar Plane Truss
The fifth example is a space truss consisting of 200 members. The geometry of the structure is shown in Figure 5A where dimensions a, b, and c are equal to 360, 144, and 240 in, respectively. The density of the material is ρ = 0.283 lb/in 3 and the Young's modulus is E = 30,000 ksi. There are three independent load cases (LC) as shown in Figure 5A: (i) LC1: 1.0 kip acting in the positive x-direction (blue arrows); (ii) LC2: 10 kips acting in the negative y-direction (orange arrows) and (iii) LC3: the first two load cases acting together. The members of the structure are divided into 29 groups in total, as shown in Table 8. The cross-section areas of each member group, in the interval [0.1, 35] (in 2 ), are the design variables of the problem. The stress of each member, in absolute terms, needs to be less than σ allow = 10 ksi (in tension or compression). No displacement limit is set for this problem.
The convergence history of the various DE methods is shown in Figure 5B as the average of 30 independent runs for each optimization algorithm.
In this problem, JADE is again the fastest algorithm to converge to the final result, followed by JDE. Table 9 shows that CODE exhibits the most stable performance with COV = 4.68E-3 as far as the final optimum is concerned. SADE has the most variation of the results (worst performance) with COV = 1.95E-2. The difference between the best and the worst solutions are 396.171 in CADE and 1901.913 in SADE.

DISCUSSION
The convergence history plots show that in all problems, JADE converges faster to the final result, followed by JDE and DE which exhibit similar performance with each other in terms of convergence speed. It appears that in the JADE algorithm, the parameter adaptation is beneficial in accelerating the convergence performance of DE by automatically updating the control parameters during the optimization search. This has effect even in the very first iterations of the algorithm, making JADE clearly stand out from the other variants, from the beginning of the search process. CODE exhibits the slowest convergence performance among the five algorithms. All algorithms manage to reach the final result with efficient accuracy in most of the optimization runs. CODE shows the most robust performance among all algorithms as it manages to find the same solution in almost all the optimization runs, with very small variation of the results among the 30 runs. CODE has the lowest values of the coefficient of variation (COV) metric in all five test problems, as shown in Figure 6 (y-values in logarithmic scale). SADE shows the most variation of the results (highest values of COV). CODE guarantees very robust final results but at the expense of slower convergence speed, while JADE manages to provide satisfactory convergence speed and a good quality of the final optimum result. The performance of the standard DE algorithm is also rather good as DE manages to outperform some of the other adaptive schemes.

CONCLUSIONS
The present study investigates the performance of five DE variants, DE, CODE, JDE, JADE, and SADE, in dealing with constrained structural optimization problems. The structures examined are 2D and 3D trusses under single or multiple loading conditions. The constraints are imposed on stresses and displacements while the objective is to minimize the weight of each structure. Five wellknown benchmark problems of truss structures have been considered in the comparison. In order to ensure neutrality and to compare the results of the various algorithms, 30 runs have been conducted for each test problem and each algorithm and various statistical metrics have been calculated.
From the statistical analysis that has been conducted, it can be concluded that the CODE algorithm guarantees robustness but with slower convergence speed, while JADE manages to provide a satisfactory compromise between the convergence speed and the quality of the final optimum result, compared to the other four competitors. Surprisingly, even in the case of the standard DE algorithm the performance is rather good as DE manages to outperform some other adaptive schemes, such as SADE, in terms of the quality of the final result and the convergence speed achieved. The same finding has also been reported by Charalampakis and Tsiatas (2019).

DATA AVAILABILITY STATEMENT
The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.

AUTHOR CONTRIBUTIONS
MG did the data collection, contributed in the numerical analysis of the test examples, analyzed and interpreted the data, and wrote parts of the paper. VP contributed in the conception and design of the work, analyzed and interpreted the data, wrote parts of the paper, and supervised the overall research work. All authors have made a substantial, direct and intellectual contribution to the work, and approved it for publication.