A Modiﬁed jSO Algorithm for Solving Constrained Engineering Problems

: Proposing new strategies to improve the optimization performance of differential evolution (DE) is an important research study. The jSO algorithm was the announced winner of the Congress on Evolutionary Computation (CEC) 2017 competition on numerical optimization, and is the state-of-the-art algorithm in the SHADE (Success-History based Adaptive Differential Evolution) algorithm series. However, the jSO algorithm converges prematurely in the search space with different dimensions and is prone to falling into local optimum during evolution, as well as the problem of decreasing population diversity. In this paper, a modiﬁed jSO algorithm (MjSO) is proposed which is based on cosine similarity with parameter adaptation and a novel opposition-based learning restart mechanism incorporated with symmetry to address the above problems, respectively. Moreover, it is well known that parameter setting has a signiﬁcant impact on the performance of the algorithm and the search process can be divided into two symmetrical parts. Hence, a parameter control strategy based on a symmetric search process is introduced in the MjSO. The effectiveness of these designs is supported by presenting a population clustering analysis, along with a population diversity measure to evaluate the performance of the proposed algorithm, three state-of-the-art DE variant algorithms (EBLSHADE, ELSHADE-SPACMA, and SALSHADE-cnEPSin) and two original algorithms (jSO and LSHADE) are compared with it, for solving 30 CEC’17 benchmark functions and three classical engineering design problems. The experimental results and analysis reveal that the proposed algorithm can outperform other competitions in terms of the convergence speed and the quality of solutions. Promisingly, the proposed method can be treated as an effective and efﬁcient auxiliary tool for more complex optimization models and scenarios.


Introduction
In the real world, there are many engineering optimization problems that need to be solved. The design cost problems in engineering have some practical constraints and one or more objective functions [1]. These engineering problems often demand methods to find optimum from a large number of available solutions, without wasting efforts in searching sub-optimal regions. Because of the large number of these problems and their practical application value, it has become a research hotspot in recent years. These problems are characterized mainly by their large scale and high difficulty. When the traditional optimization algorithm solves such a large-scale problem, it has certain inherent drawbacks, such as local optimal stagnation and derivation of the search space. Therefore, much attention has been paid to stochastic optimization methods [2] in recent decades [3,4]. Stochastic optimization algorithms can avoid the derivation of the mathematical model in that they only adjust the inputs and monitor the outputs of a given system for objective outputs and treat the optimization task as a black box [5]. In addition, stochastic optimization algorithms can solve optimization tasks randomly [6], which means that they have intrinsic superiority over conventional optimization algorithms in the capability of local optimal avoidance. Based on the number of solutions generated at each iteration optimization during the whole process, stochastic optimization algorithms can be divided into population-based algorithms, which generate many random solutions and promote them during the full optimization, and individual-based algorithms, which generate only one candidate solution throughout optimization.
Numerous stochastic optimization algorithms have been proposed based on evolutionary phenomena, swarm-based intelligence techniques, physical rules, and human-related concepts. Evolutionary algorithms include genetic algorithm (GA) [7], particle swarm optimization (PSO) [8], differential evolution (DE) [9], and evolutionary strategy (ES) [10]. Swarm-based intelligence algorithms usually simulate living beings' behavior of social hierarchy, cooperation, and collective, and then mathematically abstract optimization models for problems to be optimized.
The differential evolution (DE) algorithm was proposed by Storn and Price [9] in 1995, and this laid the foundation for a series of successful continuous optimization algorithms. Literature [11] summarizes the extensive research fields focused on DE in recent years. The algorithms based on DE [12][13][14][15][16][17][18][19][20][21][22][23][24][25][26] have gained very high rankings in various competitions held annually at the IEEE (Institute of Electrical and Electronics Engineers) Congress on Evolutionary Computation (CEC). Therefore, DE-based algorithms are generally considered to be an effective and popular population-based evolutionary algorithm for singleobjective continuous optimization problems [27,28].
In recent years, many modified algorithms based on DE algorithms have been derived [29]. In addition to combining DE with other algorithms, the main research modifications of DE include the exploitation of mutation strategies to control the movement of individuals and the adaptive modification of the DE control parameters during operation. SHADE is an adaptive DE that combines parameter adaptation based on the success history with one of the most advanced DE algorithms [30]. LSHADE further expands SHADE through linear population size reduction (LPSR), thus continuously reducing the population size using linear functions [31]. The jSO algorithm, which mainly has a new weighted version of the mutation strategy and some parameter settings, is an improved variant of the LSHADE algorithm [32]. ELSHADE-SPACMA is an improved method based on LSHADE-SPACMA. In LSHADE-SPACMA, the value of p used to control the degree of the greed of the mutant strategy is constant, while in ELSHADE-SPACMA, the value of p is dynamic. The performance of ELSHADE-SPACMA was further improved by integrating another directed mutation strategy into the hybridization framework [33,34]. The improved SALSHADE algorithm with global optimization linearly reduces the scaling factor and exponentially reduces the crossover rate and final Levy distribution step size to adapt to the improvement of the frequency component [35]. These classical algorithms will be reviewed in Section 2.
Furthermore, one of the disadvantages of differential evolutionary algorithms is the loss of population diversity. Therefore, the algorithm may prematurely converge to the local optimum. A good algorithm needs to have high enough population diversity in the early stage of the evolutionary process while reducing the population diversity to improve the convergence rate in the late stage. In order to solve the problems of premature convergence and population stagnation, Ming Yang et al. [36] study the adaptability of the population diversity in dimensions and a mechanism called automatically enhanced population diversity (AEPD) was proposed to automatically enhance the population diversity. Cheng Hongtan et al. [37] focus on controlling the value of the search parameter P. In his proposal, after he normalized the diversity of the population, each individual would select its unique search area according to the diversity conditions. Jing-zhong Wang et al. [38] proposed a variation strategy for a differential evolutionary algorithm (DE) with a fuzzy inference system (FIS), which enables the FIS to have well-controlled population diversity performance by controlling the ratio of the variation with respect to the globally optimal individual. All previously mentioned algorithms share the same idea of balancing between exploration and exploitation abilities, and they try to achieve it in various ways, but there is a general issue that they cannot maintain a long exploration phase or the ability to jump out of local optimum.
Nevertheless, many improved algorithms based on DE algorithms have made great progress in engineering problems. Xiaoyu He et al. [39] proposed a novel DE variant with covariance matrix self-adaptation, which produces a good solution for solving three classic constrained engineering design problems (pressure vessel design problem, tension/compression spring design problem and welded beam design problem). Noor H. Awad et al. [40] introduced an effective surrogate model to assist the differential evolution algorithm to generate competitive solutions during the search process and solved the two engineering design problems of welded beams and pressure vessels. At the same time, the improved algorithm fused with the DE algorithm has also achieved good performance in solving engineering problems. K.R. Subhashini et al. [41] integrated the basic animal migration optimization (AMO) algorithm with the DE algorithm and applied it to engineering problems. The result is significantly better than the original algorithm AMO.
Therefore, this study proposes a modified jSO algorithm to solve engineering problem. The MjSO algorithm uses a novel parameter adaptive mechanism based on cosine similarity instead of the original scaling factor and crossover rate with the weighted mean adaptive mechanism and adopts a parameter control strategy based on a symmetric search process. Thus, it can maintain a high population diversity and a longer exploration phase. In addition, in order to jump out of the local optimum, a novel opposition-based learning restart mechanism is applied. Finally, abundant experiments on 30 unconstrained benchmark functions [42], and 3 constrained engineering problems are carried out to demonstrate the superiority of MjSO algorithm. The experimental results show that the proposed MjSO algorithm can obtain more persuasive optima results than other optimization algorithms on unconstrained benchmark functions and achieve less cost engineering design results than other algorithms on constrained engineering problems.
The rest of this article is arranged as follows: in Section 2, several of the more famous DE variants are reviewed. The MjSO algorithm is described in detail in Section 3. Section 4 describes the experimental setup. Section 5 presents the analysis of the experimental results. The proposed MjSO algorithm for engineering problems is conducted in Section 6. Finally, the conclusion is given in Section 7.

Related Work
In this section, several of the state-of-the-art DE variants will be reviewed, including JADE [43], SHADE [30], LSHADE [31], iLSHADE [44], and jSO [32], because our proposed MjSO algorithm is a further extension of these algorithms. In addition, these algorithms provide a clear idea for the exploitation of DE. By introducing these state-of-the-art DE variants, researchers can better understand how the MjSO algorithm works.

JADE
JADE, proposed by Zhang and Sanderson, was the first algorithm to propose a new experimental vector generation strategy with an optional external archive called "DE/currentto-pbest/1/bin". By integrating external archives, a good balance was achieved between the population diversity and convergence rate. In addition to the mutation strategy, the control parameters F and Cr in JADE obey a Gaussian distribution and Cauchy distribution, respectively, and the control parameters PS remain constant throughout the whole evolution process. In terms of the adaptation of control parameters, JADE further extends the innovation of jDE that "better control parameters lead to better individuals and therefore these control parameters should be retained in the next generation" by using these better control parameters to update their distribution.

SHADE
The SHADE algorithm was modified based on JADE; therefore, they have many of the same mechanisms, and their main differences are historical memory M F and M CR and their updating mechanisms. SHADE is very representative of the state-of-the-art DE variants, and how it works is described in detail below. The basic steps for SHADE are as follows: Step 1. The initial population P consists of randomly generated solution vectors. The solution vector X is generated according to the lower and upper bounds of the solution space: where i represents the individual, j represents the dimension, and rand() is uniformly random. D denotes the dimension of the problem, NP is the population size, and X min = x 1 min , . . . , x D min and X max = x 1 max , . . . , x D max are the lower and upper bounds of the search range, respectively. Step 2. There are two additional components in SHADE, the historical memory and the external archive, which also need to be initialized. The control parameter scaling factor and crossover rate stored in the historical memory are initialized to 0.5.
where H is the capacity of the user-defined historical memory. The index K used for historical memory updates is initialized to 1. In addition, the deposit out solution of the external archive A is initialized to null, A = ∅.
Step 3. The variation strategy of "current-to-pbest/1" is used by SHADE. The variation formula is shown in (4): where x i,G is the current individual and x pbest,G is randomly selected from the former NP × p i (where p i ∈ [0, 1]) optimal individuals of thegeneration population. The vectors x r1,G are randomly selected individuals from thegeneration population, x r2,G are randomly selected individuals from the combination of thegeneration population and the external archive A, r 1 = r 2 = r 3 = i, F i is the scaling factor, NP is the population size, rand() is the uniform random distribution, G is the current iteration, and v i,G is the generated variation vector. Regarding "current-to-pbest/1", the greed of the mutation strategy depends on the control parameters of p i , and the calculation formula for p i is as shown in (5) and (6). It balances exploration and exploitation (a small P is greedier). The scaling factor F i is generated by the following formula: randc i () is a Cauchy distribution, M F,ri is randomly selected from the historical memory M F , and r i is a uniformly distributed random value of [1, H]. If the generated F i > 1, then F i = 1; and if F i ≤ 0, Equation (7) is repeated to generate effective values. If a one-dimensional v j,i,G of the variation vector is outside the search range [x min , x max ], the following correction is performed, as shown in Formula (8): where i represents the individual and j represents the dimension.
Step 4. Conduct the SHADE of the crossover operation using binomial crossover to generate trial vector u. The crossover operation formula is as follows: where i represents the individual, j represents the dimension, rand () is a uniform random distribution, and jrand is the decision variable index selected from the uniform random distribution of [1, D]. When rand [0, 1] is less than or equal to the crossover rate CR i or j = jrand, the dimension of the test vector u inherits the dimension of the variation vector v; otherwise, the dimension of the original vector x is inherited. The purpose of setting j = jrand is to provide a protection mechanism so that at least one dimension of the test vector is inherited from the variation vector. The crossover rate CR i is generated using the following formula: where randn i () is a Gaussian distribution, M CR,ri is randomly selected from historical memory M CR , and r i is a uniformly distributed random value of [1, H]. If the generated CR i > 1, then let CR i = 1; and if CR i < 0, then let CR i = 0.
Step 5. SHADE follows some selection steps to ensure that the optimization will be in the direction of a better solution because it only allows better objective function values or values that at least equal to the next generation of the surviving individual. The selection operation formula is as follows: where f () represents the fitness function, G represents the current generation, and G + 1 represents the next generation. SHADE also needs to update the external archive during the selection process. If a trial individual better than the original individual is generated, the original individual x i,G will be stored in the external archive of elimination solution A. If the external archive exceeds its capacity, one of them will be deleted randomly to make room for the subsequent elimination solution.
Step 6. The renewal of historical memory. The historical memories M F and M CR are initialized according to Formula (3), but the contents inside will change as the algorithm iterates. These memories store the scaling factor F and crossover rate CR of "success", where "success" means that the trial vector u rather than the original vector x is selected in the selection process to be part of the next generation. In each iteration, these "successful" F and CR values are first stored in the arrays S F and S CR , respectively. After each iteration, the historical memories of M F and M CR are updated by one unit. The updated cell is represented by K. It is initialized as 1, 1 is added after each iteration, and it is reset to 1 when K exceeds the memory capacity H. The K th unit of historical memory is updated using the following formula: When all the individuals in iteration G fail to make a better trial vector than the original one, that is, when S F = S CR = ∅, the historical memory does not update. The weighted average W A and the weighted Lehmer average W L are respectively calculated by the following formulas: In order to improve the adaptability of parameters, the weight vector w is calculated based on the absolute value of the difference of the objective function value between the trial individual and the original individual in the current generation G, as shown below: Step 7. Repeat Steps 2 to 6 until a stopping criterion is met.

LSHADE
LSHADE, proposed by Tanabe and Fukunaga, is an improved version of the SHADE algorithm that introduces linear population size reduction (LPSR). In LSHADE, the new population size is calculated after each iteration, as shown in Formula (18). When the new population size NP new is smaller than the current population size NP, the population is sorted according to the value of the objective function, and the worst NP-NP new individuals are discarded. The size of external archive A also decreases as the population size increases.
NP init is the initial population size, and NP f is the final population size. FES is the current number of fitness function evaluations, MAXFES is the maximum number of the fitness function evaluations, and round() is the integral function.

iLSHADE
The iLSHADE algorithm is an improvement on the LSHADE algorithm, and it includes the following modifications: iLSHADE uses a larger M F = 0.8 in the evolution of the initialization phase and a smaller population size NP init = 12·D. b.
In the iLSHADE algorithm, the last entry in the H-entry pool records constant control parameter pairs, which are M F = 0.9 and M CR = 0.9, respectively. These two parameters remain unchanged throughout evolution. c.
At different stages of the evolution, the F and CR of each individual are set to different fixed values, as shown in Equations (18) and (19). d.
The value of the degree of greed control parameter P of the variation strategy in iLSHADE increases linearly as the number of fitness function evaluations increases (see Equation (20)).

jSO
The jSO algorithm is an improved version of the iLSHADE algorithm, and it won the CEC 2017 single objective real parameter optimization competition [42]. In the jSO algorithm, p max = 0.25, p min = p max /2, the initial population size NP init = 25 √ D log D, and the historical memory capacity H = 5. In addition, all parameter values in the historical memory M F and M CR are set to 0.3 and 0.8, respectively, and the weighted current mutation strategy current-to-pBest-w/1 was used.
F w is calculated by the following formula: The distribution of control parameters F and CR is the same as that of iLSHADE. Unlike iLSHADE, jSO's control parameters F and CR need to be adjusted. These adjustments are shown in Equations (23) and (24).

MjSO
In this section, a modified algorithm called MjSO is proposed, in which three modifications are made: (1) a parameter control strategy based on a symmetric search process, (2) a novel parameter adaptive mechanism based on cosine similarity, and (3) a novel oppositionbased learning restart mechanism. The MjSO pseudocode is shown in Algorithm 2.

A Parameter Control Strategy Based on a Symmetric Search Process
It is well known that the search process of an effective evolutionary algorithm can be divided into two symmetrical parts: exploration and exploitation. In the process of exploration, individuals face an unknown area to search, but also to avoid falling into the local optimal. On the other hand, in the exploitation process, individuals should search around the current optimal solution to find a better solution. Each problem has its own appropriate parameter values used to better balance exploration and exploitation [45]. Therefore, the symmetric parameter control strategy to the jSO algorithm is added, and the parameter F will be randomly generated using a uniform distribution within a specific range.
The optimization process of the algorithm into two symmetrical stages is divided empirically. When FES < MAXFES/2, the scaling factor (F) is generated using Equation (25). When the FES > MAXFES/2, the scaling factor (F) uses Equation (7) the Cauchy distribution to generate, where FES is the current number of fitness function evaluations, MAXFES is the largest number of the fitness function evaluations and rand () is a random number from 0∼1.

A Novel Parameter Adaptive Mechanism Based on Cosine Similarity
The original adaptive mechanism for the scaling factor and crossover rate values uses the weighted form of the means in Equations (15) and (16), where the weights are based on the improvement of the objective function value from Equation (17). This approach pro-motes exploitation rather than exploration; therefore, it can lead to premature convergence, which can be a problem, especially in higher dimensions.
The idea behind the proposed approach is simple. Regardless of whether one wants to improve the search ability of the algorithm or to maintain the search ability of the algorithm in a longer period of time, it is necessary to make individuals explore the search space more intensively and maintain a high population diversity. To do this through any kind of adaptation, it would be beneficial to find a parameter setting that enables an individual to achieve the desired behavior.
By replacing the fitness difference with the cosine similarity, in the original weight calculation in Equation (17), the difference between the objective function values can reach a higher value, especially in the high-dimensional search space [46,47]. However, the cosine similarity method in Equation (26) only considers the direction of the individual within the search space, which greatly reduces the complexity of the calculation.
In this modification, the individual-related scaling factor and crossover ratio values with the greatest directional differences will have the highest weights. This occurs because in n-dimensional space, any vector can be viewed as a directed line segment pointing in different directions from [0, 0, 0, . . . , 0], and there are a definitely included angle and corresponding cosine between any two directed line segments. Cosine similarity comparison is a mathematical method used to measure the difference between vectors by using the cosine of the angle between line segments. Cosine similarity measures the angle between vectors in space and is more about the difference in direction than the difference in position, especially when solving higher-dimensional problems. As shown in Figure 1, if the position of point A is kept unchanged and point B is away from the origin of the coordinate axis in the original direction, then the cosine similarity remains unchanged (because the included angle does not change) while the distance between points A and B changes. As a result, the ability to explore is rewarded by avoiding premature convergence in higher-dimensional target spaces.

A Novel Opposition-Based Learning Restart Mechanism
At the time of evolution, individuals in the population may lack diversity and therefore do not update the results of the algorithm. Therefore, if certain conditions are met, the novel opposition-based learning (OBL) restart mechanism is implemented. The pseudocode is shown in Algorithm 1.

Algorithm 1: A novel OBL restart mechanism
Generate the opposite vector OP i using Equation (27)  4: Calculate the fitness value OP i ; 5: FES + + 6: Replace P i with a fitter one between P i and OP i 7: end for 8: end if In general, the evolutionary algorithm first obtains the feasible solution and then searches for the optimal solution in the solution space according to the fitness of the feasible solution. Various evolutionary algorithms search in different ways, but they all essentially have a random factor. In recent years, opposition-based learning has been widely applied in the evolutionary algorithm [48,49]. The main principle of opposition-based learning (OBL) is to replace random search with symmetric search, which can significantly improve the searching ability of the algorithm [50][51][52][53].
The inventors of OBL argue that given a random number, its opposite is more likely to be near the solution than a random point in the search space. Therefore, by comparing a number with its opposite number, the convergence time for finding the best solution can be reduced. For example, if the current solution X is −1 and the globally optimal value is 2, the X* solution that is symmetric about the origin of the coordinate axis is 1, and X is 3 away from the globally optimal value. However, the global optimal value of X* is only 1. Thus, the solution X* is closer to the global optimal, as shown in Figure 2. Although the opposition-based learning method improves the searching capability of the algorithm to a great extent, opposition-based learning is too fixed and the tuning effect of the small space is not good. Therefore, in this paper, an innovative way is proposed to improve the original OBL which adds a random weight factor σ. For each individual p i , a different individual p i1 is randomly selected in the population, where i = i1 and i, i1 = 1, 2, ...ps. Then, P is recombined and obtain a new point. Finally, the opposite operation is performed at the merge point. In this way, the resulting position is not a fixed symmetric position, but a random position between the symmetric position and the central position. This is as shown in Equation (27).
Here, OP ij is the opposite of p ij , and p ij is the j th vector of the i th individual in the population. a j (t) and b j (t) are dynamic interval boundaries a j (t), b j (t) and are respectively the minimum and maximum values of the j th dimension in the current search space. t = 1, 2, . . . . denotes the generation. σ is a random number in the range of [0, 1].
In order to solve the problem of how to judge the search stagnation, the variable coefficient λ is introduced to determine whether the population has low diversity or whether the algorithm converges to the local optimum. The variable coefficient λ is the variable coefficient of the error of all individual members. The variable coefficient λ is described as follows: Here, f std represents the standard deviation of the error value of all individuals and f mean represents to the average value of the error values of all individuals. The restart policy is enacted if the condition in Equation (29) is met.
where ξ is the predetermined parameter used to control the restart.

The Experimental Setup
Usually, due to the lack of a theoretical proof, it is difficult to evaluate the degree of "good" of an optimized algorithm; therefore, the benchmark function plays an important role in the performance evaluation of these algorithms. Therefore, the performance of the MjSO algorithm proposed in this paper is evaluated using the CEC 2017 actual parameter single objective optimization competition as the benchmark. The benchmark test includes 30 test functions with various characteristics. D is the dimension of the problem, and the problem is tested using D = 10, D = 30, D = 50, and D = 100. Functions 1~3 are unimodal functions, functions 4~10 are multimodal functions, functions 11~20 are mixed functions, and functions 21~30 are composite functions. These unconstrained benchmark functions are shown in Table 1. The termination criteria for the iteration of the algorithm are when the maximum number of fitness function evaluations (MAXFES) and the minimum error value (when the error value is less than 10 −8 , it is considered to have found the optimal value) are D * 10, 000 and 10 −8 , respectively. The search range [x min , x max ] = [−100, 100], and 51 independent repeated experiments are conducted for each function. In order to statistically compare the quality of the solutions of different algorithms, two nonparametric statistical hypothesis tests were used to analyze the results: (1) the Friedman test was used to sort all the comparison algorithms [54]; (2) all of the comparison algorithms were evaluated using the Wilcoxon's signed rank test with a significance level α = 0.05.  Each algorithm has its own parametric optimization method to control the influence of parameters on the algorithm. The algorithm LSHADE uses ParamILS [55] which is a versatile and efficient automatic parameter tuner. The parameters in jSO are kept unchanged according to the parameters setting in the LSHADE, except the following parameters: p, NP init , H, and M F . The author of algorithm EBLSHADE thinks that it is difficult to determine the optimal values of the control parameters for a variety of problems with different characteristics at different stages of evolution. Therefore, for achieving good performance, the algorithm LSHADE parameter adaptation method was used in EBLSHADE. The algorithm SALSHADE-cnEPSin introduced the method of adaptive parameters by using Weibull distribution-based scaling factor and exponentially decreasing crossover rate. The algorithm ELSHADE-SPACMA performs semi-parameter adaptation (SPA) for F and Cr, and proposes a semi-parameter adaptation strategy to solve parameter setting problem. The parameter settings of each algorithm are consistent with the recommended values of the original papers [31,32,34,56,57], as shown in Table 2.

Experimental Environment
All these experiments were conducted on a PC with an Intel(R) Core (TM) i7-9700 CPU @ 3.0 GHz, 32 GB of RAM and the Windows 10 Professional Edition operating system; and all these algorithms were implemented using Matlab 2017b.

Clustering Analysis
The clustering algorithm selected in this paper is density-based noisy application spatial clustering (DBSCAN) [58]. It is a clustering algorithm based on the clustering density, which can find clusters with arbitrary shapes. The DBSCAN algorithm needs to set two control parameters and a distance measure. The settings are as follows: 1.
The core point distance is that Eps = 1% of the decision space. For the CEC2017 benchmark set, Eps = 2.

2.
The minimum number of clusters MinPts = 4 (minimum number of individuals with mutations).

3.
The distance measurement is equal to Chebyshev distance [59]. If the distance between any corresponding attributes of two individuals is greater than 1% of the decision space, they are not considered to be directly dense-reachable.

Population Diversity
The population diversity (PD) measure used in this paper was taken from reference [60] and calculated based on the square root of the sum of individual dimensions, as shown in Equation (31), and the deviation from the corresponding mean, as shown in Equation (30): where i is the iteration of the individual population, and j is the iteration of the individual dimension.

Experimental Results and Analysis
This section presents the experimental results of this paper. Table 3, Table 4, Table 5, Table 6, Table 7 shows the results of the comparison between MjSO and the latest proposed LSHADE variant algorithms (EBLSAHDE, ELSHADE SPACMA, and SALSHADE-cnEPSin) and their original versions (jSO and LSHADE) on D = 10, D = 30, D = 50, and D = 100. All the experimental results adopt the error value. According to the experimental results, three symbols (" > ", " < ", and " ≈ ") are set to compare the advantages and disadvantages of the algorithm. The symbols (" > ", " < ", and " ≈ ") indicate that MjSO performed significantly better (>), significantly worse (<), or not significantly different better or worse (≈) compared to other compared algorithms using the Wilcoxon rank-sum test (significantly, α = 0.05). For each benchmark function from F1 to F30, the best value among the six algorithms is shown in bold (or bold if the performance is similar).
As shown in Table 3, the six DE variants compared perform equally well on benchmarks f1, f2, f3, f4, f6, and f9 and the global optimal values for these benchmarks were always found within 51 independent runs. In addition, compared with EBLSHADE, the proposed MjSO algorithm achieved better performance for 14 and similar performance for 13 out of 30 benchmarks. Compared with SALSHADE-cnEPSin, our proposed MjSO algorithm achieved better performance 8 times and similar performance 20 times. Compared to jSO, our algorithm achieved better performance 13 times and similar performance 16 times. Compared to LSHADE, our algorithm achieved better performance 16 times and similar performance 13 times. Compared to ELSHADE-SPACMA, our algorithm achieved better performance 13 times and similar performance 17 times. In summary, the proposed MjSO algorithm achieved the best performance in D = 10 optimization.
It can be seen from Table 4 that the six DE variants compared performed equally well on the benchmarks f1, f2, f3, and f9 and that the global optimal values for these benchmarks were always found within 51 separate runs. The global optimal values of SALSHADE-cnEPSin, ELSHADE-SPACMA and MjSO can be found on f6 each time the algorithms run. In addition, compared with EBLSHADE, the proposed MjSO algorithm achieved better performance in 16 and similar performance in 14 out of 30 benchmarks. Compared with SALSHADE-cnEPSin, our algorithm achieved better performance 19 times and similar performance 10 times. Compared to jSO, our algorithm achieved better performance 20 times and similar performance 10 times. Compared to LSHADE, our algorithm achieved better performance 17 times and similar performance 13 times. Compared to ELSHADE-SPACMA, our algorithm achieved better performance 18 times and similar performance 12 times. From what has been discussed above, the MjSO algorithm achieved the best performance on D = 30 optimization.   ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 0.00E+00 0.00E+00 f2 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 0.00E+00 0.00E+00 f3 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 ≈0.00E+00 0.00E+00 0.00E+00     In Table 5, the six DE variants compared performed equally well on the benchmarks f1, f2, f3, and f9 and the global optimal values for these benchmarks were always found within 51 separate runs. In addition, compared with EBLSHADE, the proposed MjSO algorithm achieved better performance in 23 and similar performance in 7 out of 30 benchmarks. Compared with SALSHADE-cnEPSin, our algorithm achieved better performance 26 times and similar performance 4 times. Compared with jSO, our algorithm achieved better performance 20 times and similar performance 10 times. Compared with LSHADE, our algorithm achieved better performance 20 times and similar performance 10 times. Compared with ELSHADE-SPACMA, our algorithm achieved better performance 7 times and similar performance 12 times. In summary, the MjSO algorithm achieved the best performance on D = 50 optimization. Table 6 shows the performances of the EBLSHADE, jSO, LSHADE, ELSHADE SPACMA, and MjSO algorithms during each run seeking to find the global optimal value in f1. The global optimal values of SALSHADE-cnEPSin, ELSHADE-SPACMA, and MjSO can be found on f9 every time the algorithms run. In addition, compared with EBLSHADE, the proposed MjSO algorithm achieved better performance in 24 and similar performance in 2 out of 30 benchmarks. Compared with SALSHADE-cnEPSin, our algorithm achieved better performance 25 times and similar performance 1 time. Compared to jSO, our algorithm achieved better performance 24 times and similar performance 2 times. Compared to LSHADE, our algorithm achieved better performance 25 times and similar performance 2 times. Compared to ELSHADE-SPACMA, our algorithm achieved better performance 23 times and similar performance 3 times. In summary, the proposed MjSO algorithm achieved the best performance on D = 100 optimization. From this, the modified algorithm MjSO proposed by us achieved better results on high-dimensional problems compared with the other five algorithms.
In addition, the effectiveness of the proposed MjSO algorithm with respect to convergence speed was also verified. The convergence diagram is shown in Figures 3-10. Figures  3 and 4 show the convergence curves of the partial test functions on D = 10 optimization for the MjSO algorithm and the other five comparison algorithms. Figures 5 and 6 show the convergence curves of the partial test functions on D = 30 optimization for the MjSO algorithm and the other five comparison algorithms. Figures 7 and 8 show the convergence curves of the partial test functions on D = 50 optimization for the MjSO algorithm and the other five comparison algorithms. Figures 9 and 10 show the convergence curves of the partial test functions on D = 100 optimization for the MjSO algorithm and the other five comparison algorithms. In most cases, in the early stage of the optimization process, most MjSO algorithms have similar convergence to the original algorithm, but in the middle stage of the optimization process, the MjSO algorithm maintains a longer search state and achieves a better objective function value in the middle and late stages of the optimization. The convergence rate of the red curve of the proposed MjSO algorithm is usually slow, but it can achieve a better objective function value.        Tables A1-A4 show the number of independent experiments (#runs) of the proposed MjSO algorithm and its original version jSO, the mean number of iterations (mean CO) of the first clustering during the independent experiment running period, and the mean population density (mean PD) of these corresponding iterations.
It can be seen from the table that in most cases, the proposed MjSO algorithm had fewer clustering times (#runs), later clustering (mean CO), and greater population density (mean PD), i.e., better population diversity. In summary, in most cases, MjSO maintained the diversity of the population and prolonged the search stage in the optimization process. This also proves the effectiveness of the modifications we introduced.
According to the Friedman rankings in Tables A5-A8, the MjSO algorithm performed the best in all dimensions and was ranked first. Table A9 shows that in all dimensions, the null hypothesis was rejected, which verifies the correctness of the above Friedman rankings. Thus, in the D = 10, D = 30, D = 50, and D = 100 problems, the MjSO proposed by us is superior to the original jSO and LSHADE algorithms. Compared with more advanced algorithms such as EBLSHADE, SALSHADE-cnEPSin and ELSHADE-SPACMA, it has obvious advantages.

MjSO for Engineering Problems
In this section, three constrained engineering problems are employed to demonstrate the performance of MjSO, namely, the pressure vessel design problem, tension/compression spring design problem, and welding beam design problem [61,62]. These engineering problems are inspired by real world cases and there exist some real constrained conditions and one objective functions. Therefore, transforming them into constrained optimization problems is the general method to handle them.

Pressure Vessel Design Problem
The goal of the pressure vessel design problem is to minimize the total cost of the cylindrical pressure vessel [33]. It has four design variables: shell thickness (T s ), ball thickness (T h ), cylindrical shell radius (R), and shell length (L). These four optimization variables {T s , T h , R, L} constitute a four-dimensional constrained optimization problem, which is Figure 11 shows the pressure vessel and parameters involved in the design. The mathematical model of the pressure vessel design problem can be expressed as follows: Minimize where 0.0625 ≤ x i ≤ 6.1875, i = 1, 2; 10 ≤ x i ≤ 200, i = 3, 4; (34) Table 8 shows the seven test algorithms running independently for 51 times to solve the pressure vessel design problem, the optimal value of the optimization results of each algorithm, and the corresponding optimal solution (the optimal design value of the optimization variable). As can be seen from the table, compared with all other algorithms, MjSO achieved better results in the pressure vessel design problem: the MjSO of the objective function value of 5885.522643154713 obtained the best solution.

Tension/Compression Spring Design Problem
The goal of this design problem is to minimize the weight of the tension/compression spring shown in Figure 12. The design has three design variables: the wire diameter (d), mean coil diameter (D), and number of active coils (N), which are subject to one linear and three nonlinear inequality constraints on shear stress, surge frequency, and deflection. The mathematical model of tension/compression spring design problem can be expressed as follows: Figure 12. Compression/tension spring design problem. minimize As can be seen from Table 9, compared with all other algorithms, MjSO achieved better results in the design of tension/compression springs: the MjSO with the objective function value of 0.012665255009 got the best solution.

Welded Beam Design Problem
The purpose of the welded beam design problem is to minimize the cost of the welded beam shown in Figure 13. It contains four design variables: the thickness of the weld (h), length of the clamped bar (l), the height of the bar (t), and thickness of the bar (b), which are subject to two linear and five nonlinear inequality constraints on shear stress, bending stress in the beam, buckling load, and end deflection of the beam. The design is expressed as follows: Minimize Subject to Table 10 presents the best weights and the optimal values for the decision variables from MjSO and several other algorithms. As can be seen from the table, when the four parameters h, l, t, and b are set as 0.2057, 3.4704, 9.0366, and 0.2057, respectively, the minimum manufacturing cost with MjSO is 1.7248. The solution from MjSO is better than the solutions from the other algorithms. In this section, the proposed algorithm MjSO was used to solve three kinds of engineering problems and compared with the other six algorithms. There is a phenomenon worthy of analysis and explanation, as can be seen from the results: (1) in the three engineering problems, MjSO achieved the best results, which is significantly better than the DE series basic algorithms (DE, LSHADE). (2) For the latest LSHADE variant algorithm, in pressure vessel design problem, the result of MjSO was close to EBLSHADE; in the tension/compression spring design problem and welded beam design problem, the result of MjSO was not much different from the result of SALSHADE-cnEPSin and EBLSHADE.
(3) Through Tables 3 and 8-10, it can be found that the performance of MjSO, EBLSHADE, and SALSHADE-cnEPSin on engineering problems was consistent with the performance on D = 10 CEC'17 benchmark functions. This shows the effectiveness of the algorithm. (4) Due to the accuracy of the results generated by the algorithm on the model [40], it can be found that although the numerical results are relatively close, the progress made by MjSO is still significant.

Conclusions
This article proposes an improved jSO algorithm (MjSO) for engineering optimization design problems. In our proposed MjSO algorithm, first, a parameter control strategy based on a symmetric search process is applied for the scaling factor to balance exploration and exploitation. In addition, in order to improve the loss of population diversity in the evolutionary process, a parameter adaptive mechanism based on the "cosine similarity" is proposed. And a novel opposition-based learning restart mechanism to the MjSO algorithm to jump out of the local optimum. Through comparative experiments on 30 CEC 2017 benchmark functions, MjSO ranked first in the Friedman test in different dimensions, proving the effectiveness and competitiveness of the proposed algorithm. Finally, through the comparative analysis of the optimization design results of the six comparison algorithms, it is clearly shown that the improved algorithm in this paper has good solution quality and effectiveness in solving engineering optimization design problems.
In future work, we will continue to improve the optimization performance of the algorithm and improve its robustness, apply it to more engineering optimization design problems, and improve its ability to solve problems in engineering practice.