<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JCC</journal-id><journal-title-group><journal-title>Journal of Computer and Communications</journal-title></journal-title-group><issn pub-type="epub">2327-5219</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jcc.2023.117007</article-id><article-id pub-id-type="publisher-id">JCC-126659</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Multi-Strategy-Driven Salp Swarm Algorithm for Global Optimization
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Zhiwei</surname><given-names>Gao</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Bo</surname><given-names>Wang</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>College of Science, Shenyang University of Technology, Shenyang, China</addr-line></aff><pub-date pub-type="epub"><day>05</day><month>07</month><year>2023</year></pub-date><volume>11</volume><issue>07</issue><fpage>88</fpage><lpage>117</lpage><history><date date-type="received"><day>2,</day>	<month>June</month>	<year>2023</year></date><date date-type="rev-recd"><day>25,</day>	<month>July</month>	<year>2023</year>	</date><date date-type="accepted"><day>28,</day>	<month>July</month>	<year>2023</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  In response to the shortcomings of the Salp Swarm Algorithm (SSA) such as low convergence accuracy and slow convergence speed, a Multi-Strategy-Driven Salp Swarm Algorithm (MSD-SSA) was proposed. First, food sources or random leaders were associated with the current bottle sea squirt at the beginning of the iteration, to which Levy flight random walk and crossover operators with small probability were added to improve the global search and ability to jump out of local optimum. Secondly, the position mean of the leader was used to establish a link with the followers, which effectively avoided the blind following of the followers and greatly improved the convergence speed of the algorithm. Finally, Brownian motion stochastic steps were introduced to improve the convergence accuracy of populations near food sources. The improved method switched under changes in the adaptive parameters, balancing the exploration and development of SSA. In the simulation experiments, the performance of the algorithm was examined using SSA and MSD-SSA on the commonly used CEC benchmark test functions and CEC2017-constrained optimization problems, and the effectiveness of MSD-SSA was verified by solving three real engineering problems. The results showed that MSD-SSA improved the convergence speed and convergence accuracy of the algorithm, and achieved good results in practical engineering problems.
 
</p></abstract><kwd-group><kwd>Salp Swarm Algorithm (SSA)</kwd><kwd> Levy Flight</kwd><kwd> Brownian Motion</kwd><kwd> Location Update</kwd><kwd> Simulation Experiment</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>With the continuous development of human cognition and society, the complexity of various application problems and scientific computations has increased, and the own drawbacks of traditional optimization computation methods have revealed themselves to be unable to meet people’s needs in a reasonable time. In recent years, meta-heuristic algorithms have received much attention and have been applied to many fields because of their operational flexibility, ease of implementation and gradient-free mechanism. Among them, the evolutionary algorithm includes Genetic Algorithm (GA) [<xref ref-type="bibr" rid="scirp.126659-ref1">1</xref>] , Differential Evolution (DE) [<xref ref-type="bibr" rid="scirp.126659-ref2">2</xref>] , etc. The swarm intelligence techniques mainly include Particle Swarm Optimization (PSO) [<xref ref-type="bibr" rid="scirp.126659-ref3">3</xref>] , Ant Colony Optimization (ACO) [<xref ref-type="bibr" rid="scirp.126659-ref4">4</xref>] , Artificial Bee Colony Algorithm (ABC) [<xref ref-type="bibr" rid="scirp.126659-ref5">5</xref>] , Cuckoo Search (CS) [<xref ref-type="bibr" rid="scirp.126659-ref6">6</xref>] , etc. The recently proposed swarm intelligence algorithm includes Polar Bear Optimization (PBO) [<xref ref-type="bibr" rid="scirp.126659-ref7">7</xref>] , Grey Wolf Algorithm (GWO) [<xref ref-type="bibr" rid="scirp.126659-ref8">8</xref>] , Whale Optimization Algorithm (WOA) [<xref ref-type="bibr" rid="scirp.126659-ref9">9</xref>] , Salp Swarm Algorithm (SSA) [<xref ref-type="bibr" rid="scirp.126659-ref10">10</xref>] , etc. The Salp Swarm Algorithm was proposed by Mirjalili et al. The algorithm has adaptive parameters that facilitate both global searches in the early stages of the algorithm and local development in the later stages of the algorithm. Similar to other swarm intelligence algorithms, it suffers from the disadvantages of being prone to local optimality and low convergence accuracy in late iterations.</p><p>Since the Salp Swarm Algorithm was proposed in 2017, many scholars at home and abroad have improved the performance of the Salp Swarm Algorithm by addressing its shortcomings. Thawkar [<xref ref-type="bibr" rid="scirp.126659-ref11">11</xref>] proposed a hybrid model using Teaching-Learning-Based Optimization and Salp Swarm Algorithm (TLBO-SSA), and applied it to the diagnosis of breast cancer, and achieved good results. Neggz et al. [<xref ref-type="bibr" rid="scirp.126659-ref12">12</xref>] introduced the sine cosine algorithm into the Salp Swarm Algorithm to obtain an enhanced algorithm (ISSAFD), which improved the exploration effect in the global search stage, enhanced the diversity of the population, avoided falling into local optimization, and balanced the exploration and development of the algorithm. Zhang et al. [<xref ref-type="bibr" rid="scirp.126659-ref13">13</xref>] proposed a multi-strategy Enhanced Salp Swarm Algorithm (ESSA), which uses orthogonal learning to generate opposite solutions, expands the diversity of the population, uses quadratic interpolation to improve the local search ability of the algorithm, and uses test functions to test the accuracy of the improved algorithm. Heidari et al. [<xref ref-type="bibr" rid="scirp.126659-ref14">14</xref>] proposed the Chaotic Salp Swarm Algorithm (CDESSA), chaotic initialization was introduced in the initial stage of the algorithm to expand the diversity of the population, and differential evolution was used to prevent premature convergence. Chen et al. [<xref ref-type="bibr" rid="scirp.126659-ref15">15</xref>] used a weighted center of gravity for the leader and adaptive weight for followers, balancing the development and exploration of the algorithm. Yang et al. [<xref ref-type="bibr" rid="scirp.126659-ref16">16</xref>] proposed a multi-strategy fusion Salp Swarm Algorithm (ISSA), which uses the mid-vertical theorem to change the position update mode of the follower and introduces the perturbation mechanism of the mid-vertical convergence strategy to improve the ability of the algorithm to jump out of the local optimum. Liu et al. [<xref ref-type="bibr" rid="scirp.126659-ref17">17</xref>] proposed a Differential Evolution Parasitic Salp Swarm Algorithm (PDESSA), which introduced the position information of the previous generation of leaders, strengthened the global search, introduced adaptive inertia weight, balanced the exploration and exploitation of the algorithm, and finally introduced a dual-population mechanism with evolution and parasitism strategies, which increased the diversity of the population and improved the ability of the algorithm to jump out of local extremum. Zhang et al. [<xref ref-type="bibr" rid="scirp.126659-ref18">18</xref>] introduced the Levy flight strategy into the algorithm, and updated the follower by comparing the fitness value of the follower, which enhanced the global search ability and convergence speed of the algorithm. Xie et al. [<xref ref-type="bibr" rid="scirp.126659-ref19">19</xref>] proposed a New Salp Swarm Algorithm (NSSA), introduced the idea of following the head wolf in the gray wolf optimization algorithm to the update method of leader, and carried out experiments in 23 benchmark test functions to apply it to image matching.</p><p>All of the above-improved versions improve the performance of the original algorithm in finding the optimum to a certain extent. In order to make the algorithm capable of solving more complex optimization problems, it still needs to be improved. In this paper, we propose a Multi-Strategy-Driven Salp Swarm Algorithm (MSD-SSA). Firstly, in the first half of the algorithm, the leader’s position is updated using Levy flight with small probability, Levy flight is a random wandering with larger probability of large span steps, which can expand the global search range and jump out of local extremes more effectively. Secondly, a crossover operation is performed on the leader and the better leader is retained based on a greedy strategy to improve the convergence speed of the algorithm. Again, in the second half of the algorithm, we introduce Brownian motion random step is introduced in the second half of the algorithm, and Brownian motion is used to search deeply in the latest iteration to improve the convergence accuracy of the algorithm. Finally, the follower update method is different from the original algorithm, and the average position of the leader is used to update the followers, which strengthens the connection between the followers and the leader and makes the convergence speed faster. The performance of MSD-SSA is verified by experimenting with the commonly used benchmark test functions and CEC2017 [<xref ref-type="bibr" rid="scirp.126659-ref20">20</xref>] test set to solve the optimal values and three engineering problems, and comparing with the traditional Salp Swarm Algorithm.</p></sec><sec id="s2"><title>2. Salp Swarm Algorithm (SSA)</title><p>The inspiration for the Salp Swarm Algorithm [<xref ref-type="bibr" rid="scirp.126659-ref10">10</xref>] comes from the group movement and predatory behavior of the marine organism salp. The salp is a marine creature with a translucent barrel-shaped body that resembles a jellyfish. Based on the behavior of this creature, the algorithm for SSA was simulated. In SSA, the problem to be solved is to find the largest food source. The fitness function of the algorithm depends on the quality of the food source.</p><p>Depending on the position of the individuals in the chain structure, all individuals can be divided into two categories: leaders and followers. The leader guides all individuals to form a herd chain and move towards the food source to find a better food source for the population, and the followers follow the previous individual and are indirectly guided by the leader. The mathematical model of these two stages is as follows:</p><p>In the D-dimensional search space, N individuals of salp are randomly generated. The population of salp is shown in the N &#215; D matrix in Equation (1)</p><p>X = [ X 1 X 2 ⋮ X N ] = [ x 1 1 x 2 1 ⋯ x D 1 x 1 2 x 2 2 ⋯ x D 2 ⋮ ⋮ ⋮ x 1 N x 2 N ⋯ x D N ] . (1)</p><p>Among them, X shows the population of salp, X i shows the i-th individual in the population, and x j i shows the j-th attribute of the i-th individual in the population.</p><p>The position update of leader is related to the current global optimal food source location, so after generating the population, find the current global optimal food source location F. In the population, leader has leadership functions, and their positions are updated according to Equation (2)</p><p>x j i = { F j + c 1 ( r 1 ( u b j − l b j ) + l b j ) , r 2 ≥ 1 2 F j − c 1 ( r 1 ( u b j − l b j ) + l b j ) , r 2 &lt; 1 2 (2)</p><p>where, x j i shows the new position of the i-th leader in the j-th dimension, F j is the j-th dimension of the best food source, u b j and l b j show the upper and lower bounds of the individual in the j-dimensional space, respectively, r 1 and r 2 are random numbers subject to uniform distribution on [ 0 , 1 ] . The coefficient c<sub>1</sub> is an important convergence factor of SSA.</p><p>c<sub>1</sub> is mainly responsible for the exploration and development of the algorithm, which is calculated by Equation (3)</p><p>c 1 = 2 exp ( − ( 4 t T max ) 2 ) , (3)</p><p>where, t is the current number of iterations, and T max is the maximum number of iterations. The value of c<sub>1</sub> gradually decreases from 2, and its variation curve is shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>. In the early stage of algorithm iteration, c<sub>1</sub> changes quickly and has a large step size, which is conducive to global search. At the later stage of the iteration, c<sub>1</sub> tends to be stable and the step size is small, which is conducive to fine search and converges to the global best food source.</p><p>Followers use Newton’s law of motion to update the position, give the initial velocity, acceleration and initial position to the follower, and obtain the position update formula as shown in Equation (4)</p><p>x j i = v 0 t + 1 2 a t 2 , (4)</p><p>Assuming its initial velocity v 0 = 0 , a = ( v final − v 0 ) / t , Equation (5) is the position update of followers.</p><p>x j i ( t ) = 1 2 ( x j i − 1 ( t − 1 ) + x j i ( t − 1 ) ) , (5)</p><p>where, i ≥ 2 . x j i shows the new position updated by the i-th follower on the j-th dimension. According to Equation (5), the position update of the follower is related to the position of the previous individual.</p><p>The process of SSA is as follows:</p><p>Step 1. Set parameters such as population size, maximum number of iterations, upper and lower boundaries.</p><p>Step 2. Find individual fitness value and get food source, leader and followers.</p><p>Step 3. Judge whether the maximum iteration is reached. If so, output the optimal value position and optimal value, otherwise proceed to the next step.</p><p>Step 4. Equation (2) updates leader position and amend boundary, Equation (5) updates follower position and amend boundary.</p><p>Step 5. Calculate the fitness value of the individual after the location update.</p><p>Step 6. Increase the number of iterations by 1, return to Step 3.</p></sec><sec id="s3"><title>3. Multi-Strategy-Driven Salp Swarm Algorithm (MSD-SSA)</title><sec id="s3_1"><title>3.1. Random Step of Levy Flight and Brownian Motion</title><p>In the standard SSA, the leader only searches according to the location of the food source, and the update mode of the follower is only related to its adjacent Levy flight [<xref ref-type="bibr" rid="scirp.126659-ref21">21</xref>] , proposed by French Mathematician Paul Pierre L&#233;vy [<xref ref-type="bibr" rid="scirp.126659-ref21">21</xref>] , is a heavy-tailed distribution with a high probability of producing a large stride. Most animals follow this rule in their foraging behavior. The accidental long-distance step of Levy flight helps to expand the search range and jump out of the limit of local optimization, more short distance steps can carefully search the surrounding area and improve the local exploitation ability. The trajectory of Levy’s flight is shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>.</p><p>The probability density function of Levy flight obeys the Levy distribution, which can be expressed by Equation (6)</p><p>Levy ( s ) = 1 π ∫ 0 ∞ exp ( − β | k | λ ) cos ( k s ) d k . (6)</p><p>According to Mantegna method [<xref ref-type="bibr" rid="scirp.126659-ref22">22</xref>] , the random step of Levy flight can be expressed as follows</p><p>l = u | v | 1 / β . (7)</p><p>where, u and v are Gaussian distributions that satisfy the following conditions</p><p>u ~ N ( 0 , δ u 2 ) , v ~ N ( 0 , δ v 2 ) , (8)</p><p>δ u = ( Γ ( 1 + β ) ⋅ sin ( β 2 π ) Γ ( 1 + β 2 ) ⋅ β ⋅ 2 β − 1 2 ) 1 / β , (9)</p><p>δ v = 1 , (10)</p><p>the value of β is generally 1.5, and Γ is a Gamma function.</p><p>Brownian motion is the irregular motion made by a suspended particle, a random wandering process without rules. Because the standard Brownian motion step change image is similar to a Gaussian distribution with mean 0 and variance 1, the Brownian motion random number is generated from Equation (11)</p><p>Brown ~ N ( 0, δ 2 ) . (11)</p></sec><sec id="s3_2"><title>3.2. Crossover Operator</title><p>The crossover operator helped to increase the diversity of the population, thereby increasing the chance for the population to break out of local optimum food sources.</p><p>Different random integers were generated, each corresponding to the respective dimension of an individual, sorted based on their fitness values, and the positions of the corresponding dimensions were exchanged in sequence. The adjacent individuals underwent the crossover operator to generate the crossover individuals, and a greedy strategy was used to retain individuals with better fitness values for the next iteration. c random numbers satisfy</p><p>c = k D , 0 &lt; s i ≤ D , s = { s 1 , s 2 , ⋯ , s c } , (12)</p><p>where, the random integers in s are different, and k is the proportion coefficient of the crossover operator.</p></sec><sec id="s3_3"><title>3.3. Mean Position of the Leader</title><p>In standard SSA, the position update of a follower is only related to the previous individual, which is blind and slows down the convergence of the overall algorithm. If the previous individual falls into a local optimum, then all the followers are unable to jump out of the local optimum.</p><p>Consider the position relationship between the follower and the average leader, and let the follower follow the average leader closely, with the following update method</p><p>x &#175; j = ∑ i = 0 N l x j i N l , (13)</p><p>where, x &#175; j is the average position of all leaders in the j-th dimension, and N l is the number of leaders.</p></sec><sec id="s3_4"><title>3.4. Improving Salp Swarm Algorithm (ISSA)</title><p>In the standard SSA, the leader only searches according to the location of the food source, and the update mode of the follower is only related to its adjacent individual location. The global search or local search is determined according to c<sub>1</sub> value. If the food source is the local optimum, the leader will fall into it, and the follower will not jump out of the local optimum, so that the SSA cannot jump out of the local optimum. Therefore, in the early stage of the iteration, consider the location of random leader or food source to establish contact with the current individual to update the leader, and a small probability of Levy flight [<xref ref-type="bibr" rid="scirp.126659-ref21">21</xref>] random step size should be added to help jump out of the local optimal during the iteration process.</p><p>A random leader or food source establishes relationship with the current individual location to obtain the location update formula of leader</p><p>x j i ( t ) = { x j i ( t − 1 ) + c 1 ( F j − x j i ( t − 1 ) ) , r 2 ≥ 1 2 x j i ( t − 1 ) + c 1 ( x j i ( t − 1 ) − x j r a n d ) , r 2 &lt; 1 2 (14)</p><p>among them, x j r a n d is the position of the randomly selected leader in the j-th dimension. In this way, the influence of the food source on the current individual and the influence of other individuals in the population are considered, the exploration and exploitation process of the algorithm is also considered.</p><p>Adding Levy flight random number with small probability is beneficial to better jump out of local optimum. When P &lt; P 0 , calculate the Levy flight [<xref ref-type="bibr" rid="scirp.126659-ref21">21</xref>] random number through Equation (7) to Equation (10), and obtain the leader position update formula to add Levy flight random number</p><p>x j i ( t ) = { ( x j i ( t − 1 ) + c 1 ( F j − x j i ( t − 1 ) ) ) ⋅ l , r 2 ≥ 1 2 ( x j i ( t − 1 ) + c 1 ( x j i ( t − 1 ) − x j r a n d ) ) ⋅ l , r 2 &lt; 1 2 (15)</p><p>where, P 0 is the probability of occurrence, l is the Levy flight [<xref ref-type="bibr" rid="scirp.126659-ref21">21</xref>] random number.</p><p>Later, in the iteration, as the value of c<sub>1</sub> continues to decrease, SSA tends to fine tune the search, and to improve the search accuracy, a random step of Brownian motion is used. Equation (11) is the position update method of leader adopting Brownian motion</p><p>x j i = { ( F j + c 1 ( r 1 ( u b j − l b j ) + l b j ) ) ⋅ Brown , r 2 ≥ 1 2 ( F j − c 1 ( r 1 ( u b j − l b j ) + l b j ) ) ⋅ Brown , r 2 &lt; 1 2 (16)</p><p>where, Brown is the random step of Brownian motion.</p><p>The crossover operator can generate new individuals, expand the diversity of the population, improve the search efficiency of the population, and better jump out of the local optimum. Generate random dimensions according to Equation (12), and apply the crossover operator to the leader.</p><p>According to Equation (13), the position updating method for the follower is derived.</p><p>x j i ( t ) = 1 2 ( x &#175; j + x j i ( t − 1 ) ) , (17)</p><p>where, x &#175; j is the mean position of the leaders calculated by Equation (13).</p><p>Followers are led purposefully, and the population is able to move faster towards the optimal food source, allowing the algorithm to converge more quickly.</p><p>Each iteration of the algorithm uses a greedy strategy to select the optimal fitness-valued individuals.</p><p>The flowchart of MSD-SSA is shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p><p>The pseudo code of the MSD-SSA is described as follows:</p></sec><sec id="s3_5"><title>3.5. Time Complexity Analysis</title><p>Time complexity is an important indicator of the amount of work required to run the algorithm and to evaluate the time consumption of the algorithm. The time complexity is usually denoted by O. The MSD-SSA algorithm consists of three parts: population initialization, updating the leader position and updating the follower position. Assume that the iteration number of the algorithm is T, the population size is N, and the dimension is D.</p><p>1) Initialize the population, which needs to be run ND time.</p><p>2) To calculate the individual fitness value and select the best individual as food, it needs to run N ( N − 1 ) 2 times.</p><p>3) The algorithm parameters are updated and need to be run 4 times.</p><p>4) Leaders need to run D times to update in space.</p><p>5) Followers update ( N − 1 ) D times in space.</p><p>6) Levy flight update needs to run 1 2 N D times.</p><p>7) Brownian motion update needs to run 1 2 N D times.</p><p>8) It takes ND time to find out the food source from the population and export it.</p><p>Each of the above operation units goes through T iteration, so the total time complexity of MSD-SSA is Equation (18)</p><p>O ( MSD-SSA ) = T [ N D + N ( N − 1 ) 2 + 4 + D + ( N − 1 ) D ] . (18)</p></sec></sec><sec id="s4"><title>4. Simulation Experiments and Result Discussion</title><p>To verify the performance of MSD-SSA, 10 commonly used benchmark test functions [<xref ref-type="bibr" rid="scirp.126659-ref23">23</xref>] and some CEC2017 constraint planning problems [<xref ref-type="bibr" rid="scirp.126659-ref20">20</xref>] , as well as three real engineering problems, were selected for experiments, mainly to verify the merit-seeking capability and the convergence speed of MSD-SSA.</p><p>The operating device is the Windows 10 operating system, the CPU is Intel Core i5-1135G7@2.4 GHz and 16 G running memory. The editing language is python, and the experimental platform is PyCharm 2022.3.2.</p><sec id="s4_1"><title>4.1. Benchmarking Functions</title><p>The 10 benchmarks test functions [<xref ref-type="bibr" rid="scirp.126659-ref23">23</xref>] are shown in <xref ref-type="table" rid="table1">Table 1</xref>. The benchmark test functions used are all 30-dimensional, the population of the algorithm has 30 individuals and the algorithm is iterated 500 times. Comparison is made using (Wolf Pack Algorithm) WPA, SSA and MSD-SSA. The parameter settings for WPA are α = 4 , β = 6 , ω = 30 . The number of leaders and followers is half of the population respectively, the parameter value in MSD-SSA is P 0 = 0.2 , k = 0.2 . The test functions in <xref ref-type="table" rid="table1">Table 1</xref> were solved using WPA, SSA and MSD-SSA respectively, and the python was used to make 30 independent experiments and compare the mean, standard deviation and convergence speed (time) of the three algorithms to avoid the bias caused by the randomness of the algorithms and to ensure the reasonableness of the algorithms. The experimental results are shown in <xref ref-type="table" rid="table2">Table 2</xref> and the resulting convergence curves are plotted in <xref ref-type="fig" rid="fig4">Figure 4</xref>.</p></sec><sec id="s4_2"><title>4.2. CEC2017 Constrained Optimization Problems</title><p>The CEC2017 test functions [<xref ref-type="bibr" rid="scirp.126659-ref20">20</xref>] are shown in <xref ref-type="table" rid="table3">Table 3</xref>. The test functions are in 10 and 30 dimensions, respectively. The population of the algorithm has 100 individuals, the number of leaders and followers is half of the population respectively, and the algorithm is iterated 1000 times independently. The parameter value in MSD-SSA is P 0 = 0.2 , k = 0.2 . The test functions in <xref ref-type="table" rid="table3">Table 3</xref> were solved using MSD-SSA and SSA respectively, and the python was used to make 30</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Description of benchmark function</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Function</th><th align="center" valign="middle" >Range</th><th align="center" valign="middle" >f min <sub> </sub></th></tr></thead><tr><td align="center" valign="middle" >f 1 ( x ) = ∑ i = 1 n x i 2</td><td align="center" valign="middle" >[ − 100 , 100 ]</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >f 2 ( x ) = ∑ i = 1 n | x i | + ∏ i = 1 n | x i |</td><td align="center" valign="middle" >[ − 10 , 10 ]</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >f 3 ( x ) = ∑ i = 1 n ( ∑ j = 1 i x j ) 2</td><td align="center" valign="middle" >[ − 100 , 100 ]</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >f 4 ( x ) = max i { | x i | , 1 ≤ i ≤ n }</td><td align="center" valign="middle" >[ − 100 , 100 ]</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >f 5 ( x ) = ∑ i = 1 n − 1 [ 100 ( x i + 1 − x i 2 ) 2 + ( x i − 1 ) 2 ]</td><td align="center" valign="middle" >[ − 30 , 30 ]</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >f 6 ( x ) = ∑ i = 1 n i x i 4 + r a n d o m [ 0 , 1 )</td><td align="center" valign="middle" >[ − 1.28 , 1.28 ]</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >f 7 ( x ) = ∑ i = 1 n [ x i 2 − 10 cos ( 2 π x i ) + 10 ]</td><td align="center" valign="middle" >[ − 5.12 , 5.12 ]</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >f 8 ( x ) = − 20 exp ( − 0.2 1 n ∑ i = 1 n x i 2 ) − exp ( 1 n cos ( 2 π x i ) ) + 20 + e</td><td align="center" valign="middle" >[ − 32 , 32 ]</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >f 9 ( x ) = 1 4000 ∑ i = 1 n x i 2 − ∏ i = 1 n cos ( x i i ) + 1</td><td align="center" valign="middle" >[ − 600 , 600 ]</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >f 10 ( x ) = π n { 10 sin 2 ( π y i ) + ∑ i = 1 n − 1 ( y i − 1 ) 2 [ 1 + sin 2 ( π y i + 1 ) ] + ( y n − 1 ) 2 }                           + ∑ i = 1 n u ( x i , 10 , 100 , 4 ) , y i = 1 + 1 4 ( x i + 1 ) u ( x i , a , k , m ) = { k ( x i − a ) m , x i &gt; a 0 , − a ≤ x i ≤ a k ( − x i − a ) m , x i &lt; − a</td><td align="center" valign="middle" >[ − 50 , 50 ]</td><td align="center" valign="middle" >0</td></tr></tbody></table></table-wrap><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Performance comparison of WPA, SSA and MSD-SSA on test functions</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Function</th><th align="center" valign="middle" >Stats</th><th align="center" valign="middle" >MSD-SSA</th><th align="center" valign="middle" >SSA</th><th align="center" valign="middle" >WPA</th></tr></thead><tr><td align="center" valign="middle"  rowspan="3"  >f 1</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >8.98E−11</td><td align="center" valign="middle" >9.42E−09</td><td align="center" valign="middle" >4.28E+00</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >6.65E−12</td><td align="center" valign="middle" >2.38E−08</td><td align="center" valign="middle" >7.27E−12</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >5.704768753</td><td align="center" valign="middle" >6.055757221</td><td align="center" valign="middle" >4.325863247</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >f 2</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >4.19E−06</td><td align="center" valign="middle" >0.35004655</td><td align="center" valign="middle" >1.2226230412</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >3.30E−07</td><td align="center" valign="middle" >0.00191453</td><td align="center" valign="middle" >1.52E−05</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >5.858462628</td><td align="center" valign="middle" >6.122387815</td><td align="center" valign="middle" >5.813986003</td></tr><tr><td align="center" valign="middle"  rowspan="2"  >f 3</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >2.94E−10</td><td align="center" valign="middle" >53.75321536</td><td align="center" valign="middle" >68.26151173</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >2.30E−10</td><td align="center" valign="middle" >200.9015373</td><td align="center" valign="middle" >0.0</td></tr><tr><td align="center" valign="middle" ></td><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >7.408410994</td><td align="center" valign="middle" >7.686855181</td><td align="center" valign="middle" >5.0839362025</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >f 4</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >3.47E−06</td><td align="center" valign="middle" >11.45540334</td><td align="center" valign="middle" >8.71E+10</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >3.09E−07</td><td align="center" valign="middle" >0.147363826</td><td align="center" valign="middle" >2.84E−14</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >5.779169146</td><td align="center" valign="middle" >6.071856912</td><td align="center" valign="middle" >3.682288539</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >f 5</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >28.12139887</td><td align="center" valign="middle" >390.9104529</td><td align="center" valign="middle" >486.1950995</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >0.165077021</td><td align="center" valign="middle" >19.94642673</td><td align="center" valign="middle" >0.0</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >6.140934952</td><td align="center" valign="middle" >6.516275398</td><td align="center" valign="middle" >6.908285319</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >f 6</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >4.45E−05</td><td align="center" valign="middle" >0.033427049</td><td align="center" valign="middle" >0.001022907</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >0.000118094</td><td align="center" valign="middle" >0.049622245</td><td align="center" valign="middle" >1.42E−14</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >5.421882804</td><td align="center" valign="middle" >5.717415269</td><td align="center" valign="middle" >4.837871611</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >f 7</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >3.46E−11</td><td align="center" valign="middle" >41.78822494</td><td align="center" valign="middle" >26.68294181</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >5.57E−12</td><td align="center" valign="middle" >6.15E−09</td><td align="center" valign="middle" >5.68E−14</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >6.163218141</td><td align="center" valign="middle" >6.453282237</td><td align="center" valign="middle" >2.911670494</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >f 8</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >2.07E−06</td><td align="center" valign="middle" >2.495401167</td><td align="center" valign="middle" >20.79011457</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >2.84E−07</td><td align="center" valign="middle" >9.90E−10</td><td align="center" valign="middle" >3.55E−15</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >7.183958522</td><td align="center" valign="middle" >7.221007339</td><td align="center" valign="middle" >7.085961198</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >f 9</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >1.18E−10</td><td align="center" valign="middle" >0.010155491</td><td align="center" valign="middle" >686.3675368</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >1.52E−11</td><td align="center" valign="middle" >0.001599289</td><td align="center" valign="middle" >0.0</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >7.029453381</td><td align="center" valign="middle" >7.650319187</td><td align="center" valign="middle" >6.498791745</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >f 10</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >0.379057981</td><td align="center" valign="middle" >4.053250733</td><td align="center" valign="middle" >3.487683579</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >0.097481408</td><td align="center" valign="middle" >0.421909641</td><td align="center" valign="middle" >1.19E−07</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >7.203487563</td><td align="center" valign="middle" >7.375670958</td><td align="center" valign="middle" >17.2234921</td></tr></tbody></table></table-wrap><p>independent experiments and compare the mean, standard deviation and convergence speed (time) of the two algorithms to avoid the bias caused by the randomness of the algorithms and to ensure the reasonableness of the algorithms. <xref ref-type="table" rid="table4">Table 4</xref> and <xref ref-type="table" rid="table5">Table 5</xref> show the experimental results in 10 and 30 dimensions, respectively, and the obtained convergence curves are shown in <xref ref-type="fig" rid="fig5">Figure 5</xref> and <xref ref-type="fig" rid="fig6">Figure 6</xref>, respectively.</p></sec><sec id="s4_3"><title>4.3. Result Discussion</title><p>For benchmarks test functions, the experimental results in <xref ref-type="table" rid="table2">Table 2</xref> show that MSD-SSA has significant advantages over SSA in optimizing most functions. In terms of convergence precision, the convergence accuracy of MSD-SSA for f 1 , f 2 , f 3 , f 4 , f 6 , f 7 , f 8 , f 9 is significantly better than that of SSA. For f 5 and f 10 , the final convergence is not optimal, but the convergence results are greatly improved compared with SSA. In terms of algorithm robustness, except f 8 , the stability is better than SSA. Although the stability of f 8 is slightly weaker than</p><table-wrap-group id="3"><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> CEC2017 description of benchmark function</title></caption><table-wrap id="3_1"><caption><title> (b)</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Problem</th><th align="center" valign="middle" >Function</th></tr></thead><tr><td align="center" valign="middle" >CEC01</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D ( ∑ j = 1 i x j ) 2 s .t . g ( x ) = ∑ i = 1 D [ x i 2 − 5000 cos ( 0.1 π x i ) − 4000 ] ≤ 0</td></tr><tr><td align="center" valign="middle" >CEC02</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D ( ∑ j = 1 i M x j ) 2 s .t . g ( x ) = ∑ i = 1 D [ ( M x i ) 2 − 5000 cos ( 0.1 π M x i ) − 4000 ] ≤ 0</td></tr><tr><td align="center" valign="middle" >CEC03</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D [ x i 2 − 10 cos ( 2 π x i ) + 10 ] s .t . g 1 ( x ) = − ∑ i = 1 D x i sin ( 2 x i ) ≤ 0 , g 2 ( x ) = ∑ i = 1 D x i sin ( 2 x i ) ≤ 0</td></tr><tr><td align="center" valign="middle" >CEC04</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D − 1 [ 100 ( x i 2 − x i + 1 ) 2 + ( x i 2 − 1 ) 2 ] s .t . g 1 ( x ) = ∑ i = 1 D [ ( M 1 x i ) 2 − 50 cos ( 2 π M 1 x i ) − 40 ] ≤ 0 g 2 ( x ) = ∑ i = 1 D [ ( M 2 x i ) 2 − 50 cos ( 2 π M 2 x i ) − 40 ] ≤ 0</td></tr><tr><td align="center" valign="middle" >CEC05</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D [ x i 2 − 10 cos ( 2 π x i ) + 10 ] s .t . h 1 ( x ) = − ∑ i = 1 D x i sin ( x i ) = 0 h 2 ( x ) = ∑ i = 1 D x i sin ( π x i ) = 0 h 3 ( x ) = − ∑ i = 1 D x i cos ( x i ) = 0 h 4 ( x ) = ∑ i = 1 D x i cos ( π x i ) = 0 h 5 ( x ) = ∑ i = 1 D ( x i sin ( 2 | x i | ) ) = 0 h 6 ( x ) = − ∑ i = 1 D ( x i sin ( 2 | x i | ) ) = 0</td></tr><tr><td align="center" valign="middle" >CEC06</td><td align="center" valign="middle" >min f ( x ) = max ( x i ) y l = x 2 l − 1 , w l = x 2 l   where   l = 1 , ⋯ , D / 2 s .t . h 1 ( x ) = ∑ i = 1 D / 2 ( ∑ j = 1 i y j ) 2 = 0 h 2 ( x ) = ∑ i = 1 D / 2 ( ∑ j = 1 i w j ) 2 = 0</td></tr><tr><td align="center" valign="middle" >CEC07</td><td align="center" valign="middle" >min f ( x ) = max ( x i ) y l = x 2 l − 1 , w l = x 2 l   where   l = 1 , ⋯ , D / 2 s .t . g ( x ) = ∏ i = 1 D / 2 w i ≤ 0 h ( x ) = ∑ i = 1 D / 2 ( y i 2 − y i + 1 ) 2 = 0</td></tr><tr><td align="center" valign="middle" >CEC08</td><td align="center" valign="middle" >min f ( x ) = max ( x i ) s .t . h 1 ( x ) = ∑ i = 1 D ( ∑ j = 1 i x j ) 2 = 0 h 2 ( x ) = ∑ i = 1 D − 1 ( x i − x i + 1 ) 2 = 0</td></tr><tr><td align="center" valign="middle" >CEC09</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D x i s .t . g ( x ) = ∏ i = 1 D x i ≤ 0 h ( x ) = ∑ i = 1 D − 1 ( x i 2 − x i + 1 ) 2 = 0</td></tr><tr><td align="center" valign="middle" >CEC10</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D − 1 ( 100 ( x i 2 − x i + 1 ) 2 + ( x i − 1 ) 2 ) s .t . g 1 ( x ) = ∑ i = 1 D ( x i 2 − 10 cos ( 2 π x i ) + 10 ) − 100 ≤ 0 g 2 ( x ) = ∑ i = 1 D x i − 2 D ≤ 0 g 3 ( x ) = 5 − ∑ i = 1 D x i ≤ 0</td></tr><tr><td align="center" valign="middle" >CEC11</td><td align="center" valign="middle" >min f ( x ) = max { | x i | , 1 ≤ i ≤ D } s .t . g ( x ) = ∑ i = 1 D x i 2 − 100 D ≤ 0 h ( x ) = cos f ( x ) + sin f ( x ) = 0</td></tr><tr><td align="center" valign="middle" >CEC12</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D | x i | s .t . g ( x ) = ∑ i = 1 D x i 2 − 100 D ≤ 0 h ( x ) = ( cos f ( x ) + sin f ( x ) ) 2 − exp ( cos f ( x ) + sin f ( x ) ) − 1 + exp ( 1 ) = 0</td></tr><tr><td align="center" valign="middle" >CEC13</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D ( z i 2 − 10 cos ( 2 π z i ) + 10 )     , z i 2 = { x i 2 ,   if   | x i 2 | &lt; 0.5 0.5 r o u n d ( 2 x i ) ,   otherwise s .t . g 1 ( x ) = 1 − ∑ i = 1 D | x i | ≤ 0 g 2 ( x ) = ∑ i = 1 D x i 2 − 100 D ≤ 0 h ( x ) = ∑ i = 1 D 100 ( x i 2 − x i + 1 ) 2 + ∏ i = 1 D sin 2 ( x i − 1 ) π = 0</td></tr><tr><td align="center" valign="middle" >CEC14</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D − 1 g ( x i , x i + 1 ) + g ( x D , x 1 ) , g ( x i , x i + 1 ) = 0.5 + sin 2 ( x i 2 + x i + 1 2 ) − 0.5 ( 1 + 0.001 x i 2 + x i + 1 2 ) 2 s .t . g 1 ( x ) = cos 2 ( ∑ i = 1 D x i ) − 0.25 cos ( ∑ i = 1 D x i ) − 0.125 ≤ 0 g 2 ( x ) = exp ( cos ( ∑ i = 1 D x i ) ) − exp ( 0.25 ) ≤ 0</td></tr><tr><td align="center" valign="middle" >CEC15</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D [ y i 2 − 10 cos ( 2 π y i ) + 10 ]   , y = M x s .t . g 1 ( x ) = 4 − ∑ i = 1 D | y i | ≤ 0 g 2 ( x ) = ∑ i = 1 D y − 4 ≤ 0</td></tr><tr><td align="center" valign="middle" >CEC16</td><td align="center" valign="middle" >min f ( x ) = ∑ i = 1 D [ 100 ( y i 2 − x i + 1 ) 2 + ( y i − 1 ) 2 ]   , y = M x s .t . g 1 ( x ) = ∑ i = 1 D ( y i 2 − 10 cos ( 2 π y i ) + 10 ) ≤ 0 g 2 ( x ) = ∑ i = 1 D y i − 2 D ≤ 0 g 2 ( x ) = 5 − ∑ i = 1 D y i ≤ 0</td></tr></tbody></table></table-wrap><table-wrap id="3_2"><caption><title></title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Problem</th><th align="center" valign="middle"  rowspan="2"  >Range</th><th align="center" valign="middle"  colspan="2"  >Number of Bindings</th></tr></thead><tr><td align="center" valign="middle" >E</td><td align="center" valign="middle" >I</td></tr><tr><td align="center" valign="middle" >CEC01</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >CEC02</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >CEC03</td><td align="center" valign="middle" >[−10, 10]</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >CEC04</td><td align="center" valign="middle" >[−10, 10]</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >CEC05</td><td align="center" valign="middle" >[−20, 20]</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >CEC06</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >CEC07</td><td align="center" valign="middle" >[−10, 10]</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >CEC08</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >CEC09</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >CEC10</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >CEC11</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >CEC12</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >CEC13</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >CEC14</td><td align="center" valign="middle" >[−100, 100]</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >CEC15</td><td align="center" valign="middle" >[−100,100]</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >CEC16</td><td align="center" valign="middle" >[−100,100]</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >3</td></tr></tbody></table></table-wrap></table-wrap-group><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Performance comparison of MSD-SSA and SSA on test functions (10D)</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Function</th><th align="center" valign="middle" >Stats</th><th align="center" valign="middle" >MSD-SSA</th><th align="center" valign="middle" >SSA</th></tr></thead><tr><td align="center" valign="middle"  rowspan="3"  >CEC01</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >4.95E−12</td><td align="center" valign="middle" >1.40E−10</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >9.24E−13</td><td align="center" valign="middle" >1.21E−10</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >17.15478114</td><td align="center" valign="middle" >17.28749408</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC02</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >5.76E−12</td><td align="center" valign="middle" >3.09E−10</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >4.13E−12</td><td align="center" valign="middle" >2.58E−10</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >18.4906462</td><td align="center" valign="middle" >20.90592599</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC03</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >1.36E+01</td><td align="center" valign="middle" >52.73252666</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >2.14E−02</td><td align="center" valign="middle" >8.29E−11</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >16.40691744</td><td align="center" valign="middle" >15.34842814</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC04</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >8.998415914</td><td align="center" valign="middle" >8.998926142</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >1.96E−05</td><td align="center" valign="middle" >6.60E−05</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >16.44151483</td><td align="center" valign="middle" >17.00241801</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC05</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >4.65E−08</td><td align="center" valign="middle" >2.85E+02</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >2.16E−08</td><td align="center" valign="middle" >2.22E−04</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >16.64680717</td><td align="center" valign="middle" >15.42366769</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC06</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >1.82E−06</td><td align="center" valign="middle" >43.35792483</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >5.63E−07</td><td align="center" valign="middle" >3.18E−06</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >15.58736248</td><td align="center" valign="middle" >15.84327443</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC07</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >9.47E−08</td><td align="center" valign="middle" >1.433217519</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >7.41E−08</td><td align="center" valign="middle" >6.15E−09</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >11.6278939</td><td align="center" valign="middle" >11.85922258</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC08</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >9.86E−07</td><td align="center" valign="middle" >1.25E−05</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >4.70E−07</td><td align="center" valign="middle" >8.69E−06</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >16.0366317</td><td align="center" valign="middle" >16.74224679</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC09</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >−1.33E−06</td><td align="center" valign="middle" >−4.401215885</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >1.61E−06</td><td align="center" valign="middle" >3.409789061</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >12.24845986</td><td align="center" valign="middle" >12.47100568</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC10</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >66.18822172</td><td align="center" valign="middle" >77.81946403</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >112.4076859</td><td align="center" valign="middle" >2.520774604</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >14.35157094</td><td align="center" valign="middle" >14.49965868</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC11</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >14.92256511</td><td align="center" valign="middle" >18.06415685</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >4.54E−10</td><td align="center" valign="middle" >2.24E−06</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >12.37109933</td><td align="center" valign="middle" >12.83158839</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC12</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >33.92920169</td><td align="center" valign="middle" >76.96902002</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >7.539802782</td><td align="center" valign="middle" >1.83E−09</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >12.85865462</td><td align="center" valign="middle" >12.98471289</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC13</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >0.001098596</td><td align="center" valign="middle" >258.125</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >3.29E−03</td><td align="center" valign="middle" >2.125</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >20.21733594</td><td align="center" valign="middle" >20.87134676</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC14</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >0.244309396</td><td align="center" valign="middle" >0.96925917</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >0.316349688</td><td align="center" valign="middle" >2.71E−02</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >16.51488175</td><td align="center" valign="middle" >18.18085654</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC15</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >11.74930116</td><td align="center" valign="middle" >19.49499386</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >3.007734851</td><td align="center" valign="middle" >5.007423369</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >14.43568053</td><td align="center" valign="middle" >14.38639846</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC16</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >7.705309519</td><td align="center" valign="middle" >264727.795</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >0.165002392</td><td align="center" valign="middle" >6.04E+05</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >14.64010904</td><td align="center" valign="middle" >14.70395908</td></tr></tbody></table></table-wrap><table-wrap id="table5" ><label><xref ref-type="table" rid="table5">Table 5</xref></label><caption><title> Performance comparison of MSD-SSA and SSA on test functions (30D)</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Function</th><th align="center" valign="middle" >Stats</th><th align="center" valign="middle" >MSD-SSA</th><th align="center" valign="middle" >SSA</th></tr></thead><tr><td align="center" valign="middle"  rowspan="3"  >CEC01</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >4.07E−11</td><td align="center" valign="middle" >8.49E−02</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >4.14E−11</td><td align="center" valign="middle" >2.53E−01</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >51.15962758</td><td align="center" valign="middle" >52.07183607</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC02</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >8.43E−11</td><td align="center" valign="middle" >4.20E−05</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >3.43E−11</td><td align="center" valign="middle" >1.23E−04</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >56.50194526</td><td align="center" valign="middle" >63.13624792</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC03</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >13.58830671</td><td align="center" valign="middle" >216.8995591</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >4.74E−03</td><td align="center" valign="middle" >3.99E−09</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >49.91018164</td><td align="center" valign="middle" >46.72936332</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC04</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >28.99603765</td><td align="center" valign="middle" >28.99797197</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >1.02E−04</td><td align="center" valign="middle" >1.28E−04</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >53.07714818</td><td align="center" valign="middle" >52.0836818</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC05</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >1.33E−07</td><td align="center" valign="middle" >7.50E+02</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >2.69E−07</td><td align="center" valign="middle" >1.54E−04</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >37.88733799</td><td align="center" valign="middle" >39.50639632</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC06</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >2.03E−06</td><td align="center" valign="middle" >0.17485355</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >1.49E−07</td><td align="center" valign="middle" >4.80E−01</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >60.88767364</td><td align="center" valign="middle" >52.5819994</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC07</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >1.69E−07</td><td align="center" valign="middle" >4.251761281</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >7.76E−08</td><td align="center" valign="middle" >9.14E−07</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >33.93889532</td><td align="center" valign="middle" >35.76503084</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC08</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >1.96E−06</td><td align="center" valign="middle" >1.00E−01</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >4.65E−07</td><td align="center" valign="middle" >2.32E−01</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >47.31576941</td><td align="center" valign="middle" >16.74224679</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC09</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >−1.22E−06</td><td align="center" valign="middle" >140.9718139</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >7.82E−06</td><td align="center" valign="middle" >14.72215499</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >34.64287498</td><td align="center" valign="middle" >35.75151873</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC10</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >412.7758021</td><td align="center" valign="middle" >3.40E+24</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >192.0322279</td><td align="center" valign="middle" >2.06E+16</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >50.08848522</td><td align="center" valign="middle" >50.88623056</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC11</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >15.86505171</td><td align="center" valign="middle" >18.06415776</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >7.441012651</td><td align="center" valign="middle" >2.00E−09</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >46.07220759</td><td align="center" valign="middle" >47.57178798</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC12</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >18.84955905</td><td align="center" valign="middle" >246.6150233</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >13.15724649</td><td align="center" valign="middle" >1.83E−09</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >46.61474404</td><td align="center" valign="middle" >47.4385241</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC13</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >0.001098596</td><td align="center" valign="middle" >258.125</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >3.29E−03</td><td align="center" valign="middle" >2.125</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >20.21733594</td><td align="center" valign="middle" >20.87134676</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC14</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >2.774791549</td><td align="center" valign="middle" >3.080194387</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >0.158284286</td><td align="center" valign="middle" >1.94E−03</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >53.51142323</td><td align="center" valign="middle" >54.34439452</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC15</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >55.81424714</td><td align="center" valign="middle" >80.32612567</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >2.267501187</td><td align="center" valign="middle" >17.39791280</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >46.47466836</td><td align="center" valign="middle" >48.06013227</td></tr><tr><td align="center" valign="middle"  rowspan="3"  >CEC16</td><td align="center" valign="middle" >Mean</td><td align="center" valign="middle" >1265.662073</td><td align="center" valign="middle" >1.24365E+11</td></tr><tr><td align="center" valign="middle" >Std</td><td align="center" valign="middle" >737.6460717</td><td align="center" valign="middle" >1.12E+07</td></tr><tr><td align="center" valign="middle" >Time(s)</td><td align="center" valign="middle" >52.5728548</td><td align="center" valign="middle" >51.41614304</td></tr></tbody></table></table-wrap><p>SSA, its standard deviation also has reaches 10<sup>−7</sup>. In terms of convergence speed, MSD-SSA converges to the optimal point faster than SSA.</p><p>For CEC2017 test functions, the CEC2017 test functions [<xref ref-type="bibr" rid="scirp.126659-ref20">20</xref>] include single and multi-modal problems, which can effectively evaluate the performance of algorithms. <xref ref-type="table" rid="table4">Table 4</xref> tests 16 CEC2017 test functions [<xref ref-type="bibr" rid="scirp.126659-ref20">20</xref>] with 10-dimensions. The experimental results show that under the same environment, MSD-SSA has</p><p>a better convergence effect and faster convergence speed than SSA. For most CEC2017 test functions, MSD-SSA is more stable. However, <xref ref-type="table" rid="table4">Table 4</xref> shows that the standard deviation of CEC10 and CEC12 is too large, indicating that the robustness of the improved algorithm is poor for CEC10 and CEC12.</p><p><xref ref-type="table" rid="table5">Table 5</xref> tests 16 CEC2017 test functions [<xref ref-type="bibr" rid="scirp.126659-ref20">20</xref>] with 10 dimensions. Compared with the CEC2017 10-dimensionals test function, the 30-dimensionals test function is more complex. According to <xref ref-type="table" rid="table5">Table 5</xref>, MSD-SSA is superior to SSA in terms of convergence accuracy, manipulation speed and robustness. However, the standard deviations of CEC10, CEC11, CEC12, CEC15 and CEC16 are too large, indicating that the robustness of MSD-SSA is poor and needs to be improved.</p><p>In summary, the improved algorithm has a stronger search capability and faster convergence to the target value for most functions.</p></sec></sec><sec id="s5"><title>5. Engineering Problems and Result Discussion</title><sec id="s5_1"><title>5.1. Cantilever Beam Design Problem</title><p>In the era of big data, solving the constrained optimization problem is crucial to engineering. Although benchmark functional testing was addressed in the previous section, the issues in actual projects are within specific limitations. Optimize practical engineering problems using SSA and MSD-SSA, and verify the feasibility of MSD-SSA for practical engineering problems.</p><p>The goal of CBD [<xref ref-type="bibr" rid="scirp.126659-ref24">24</xref>] is to minimize the weight of cantilever beam and square section, see <xref ref-type="fig" rid="fig7">Figure 7</xref>. The variables of this problem are composed of five hollow square members. The CBD problem [<xref ref-type="bibr" rid="scirp.126659-ref24">24</xref>] is expressed as follows:</p><p>min f ( x ) = 0.0624 ( x 1 + x 2 + x 3 + x 4 + x 5 ) s .t . g ( x ) = 61 x 1 3 + 27 x 2 3 + 19 x 3 3 + 7 x 4 3 + 1 x 5 3 − 1 ≤ 0 0.01 ≤ x 1 , x 2 , x 3 , x 4 , x 5 ≤ 100 (19)</p><p>Do 30 independent experiments to verify the effectiveness of the algorithm. See <xref ref-type="table" rid="table6">Table 6</xref> for the experimental results.</p><table-wrap id="table6" ><label><xref ref-type="table" rid="table6">Table 6</xref></label><caption><title> Comparison results of MSD-SSA with SSA for CBD problem [<xref ref-type="bibr" rid="scirp.126659-ref24">24</xref>] </title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Algorithm</th><th align="center" valign="middle"  colspan="5"  >Optimize the Solution</th><th align="center" valign="middle"  rowspan="2"  >Optimal Cost</th></tr></thead><tr><td align="center" valign="middle" >x<sub>1</sub></td><td align="center" valign="middle" >x<sub>2</sub></td><td align="center" valign="middle" >x<sub>3</sub></td><td align="center" valign="middle" >x<sub>4</sub></td><td align="center" valign="middle" >x<sub>5</sub></td></tr><tr><td align="center" valign="middle" >MSD-SSA</td><td align="center" valign="middle" >6.221899</td><td align="center" valign="middle" >4.667276</td><td align="center" valign="middle" >4.307131</td><td align="center" valign="middle" >3.680037</td><td align="center" valign="middle" >2.177050</td><td align="center" valign="middle" >1.313731</td></tr><tr><td align="center" valign="middle" >SSA</td><td align="center" valign="middle" >6.010624</td><td align="center" valign="middle" >5.320413</td><td align="center" valign="middle" >4.493760</td><td align="center" valign="middle" >3.498178</td><td align="center" valign="middle" >2.151536</td><td align="center" valign="middle" >1.339961</td></tr></tbody></table></table-wrap></sec><sec id="s5_2"><title>5.2. Tension/Compression Spring Design Problem</title><p>The purpose of TCSD [<xref ref-type="bibr" rid="scirp.126659-ref26">26</xref>] is to minimize the weight of the spring. This problem has three variables, namely wire diameter, mean coil diameter, and the number of dynamic coils. Equation (20) describes the TCSD [<xref ref-type="bibr" rid="scirp.126659-ref26">26</xref>] problem.</p><p>Do 30 independent experiments to verify the effectiveness of the algorithm. See <xref ref-type="table" rid="table7">Table 7</xref> for the experimental results.</p><p>min f ( x ) = ( x 3 + 2 ) x 2 x 1 2 s .t . g 1 ( x ) = 1 − x 2 3 x 3 71785 x 1 4 ≤ 0 g 2 ( x ) = 4 x 2 2 − x 1 x 2 12566 ( x 2 x 1 3 − x 1 4 ) + 1 5180 x 1 2 ≤ 0 g 3 ( x ) = 1 − 140.45 x 1 x 2 3 x 3 ≤ 0 g 4 ( x ) = x 1 + x 2 1.5 − 1 ≤ 0 0.05 ≤ x 1 ≤ 2 , 0.25 ≤ x 2 ≤ 1.3 , 2 ≤ x 3 ≤ 15 (20)</p></sec><sec id="s5_3"><title>5.3. Schematic Views of Speed Reducer Design</title><p>The goal is to minimize the weight of a speed reducer so that the engine and propeller can rotate efficiently. This problem involves constraints on stresses in the shafts, transverse deflection of the shafts, surface stress and bending stress of the gear teeth (see <xref ref-type="fig" rid="fig8">Figure 8</xref>). Equation (21) describes the SRD problem [<xref ref-type="bibr" rid="scirp.126659-ref27">27</xref>] .</p><p>Do 30 independent experiments to verify the effectiveness of the algorithm. See <xref ref-type="table" rid="table8">Table 8</xref> for the experimental results.</p><table-wrap id="table7" ><label><xref ref-type="table" rid="table7">Table 7</xref></label><caption><title> Comparison results of MSD-SSA with SSA for TCSD problem [<xref ref-type="bibr" rid="scirp.126659-ref26">26</xref>] </title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Algorithm</th><th align="center" valign="middle"  colspan="3"  >Optimize the Solution</th><th align="center" valign="middle"  rowspan="2"  >Optimal Cost</th></tr></thead><tr><td align="center" valign="middle" >x<sub>1</sub></td><td align="center" valign="middle" >x<sub>2</sub></td><td align="center" valign="middle" >x<sub>3</sub></td></tr><tr><td align="center" valign="middle" >MSD-SSA</td><td align="center" valign="middle" >0.050000</td><td align="center" valign="middle" >0.317851</td><td align="center" valign="middle" >13.97190</td><td align="center" valign="middle" >0.0126917</td></tr><tr><td align="center" valign="middle" >SSA</td><td align="center" valign="middle" >0.054734</td><td align="center" valign="middle" >0.434490</td><td align="center" valign="middle" >7.854553</td><td align="center" valign="middle" >0.0128271</td></tr></tbody></table></table-wrap><p>min f ( x ) = 0.7854 x 1 x 2 2 ( 3.3333 x 3 2 + 14.9334 x 3 − 43.0934 ) − 1.508 x 1 ( x 6 2 + x 7 2 ) + 7.4777 ( x 6 3 + x 7 3 ) + 0.7854 ( x 4 x 6 2 + x 5 x 7 3 ) s .t . g 1 ( x ) = 27 x 1 x 2 2 x 3 − 1 ≤ 0 , g 2 ( x ) = 397.5 x 1 x 2 2 x 3 2 − 1 ≤ 0 , g 3 ( x ) = 1.93 x 4 3 x 2 x 6 4 x 3 − 1 ≤ 0 , g 4 ( x ) = 1.93 x 5 3 x 2 x 7 4 x 3 − 1 ≤ 0 , g 5 ( x ) = [ ( 745 x 4 / x 2 x 3 ) 2 + 16.9 &#215; 10 6 ] 1 / 2 110 x 6 3 − 1 ≤ 0 ,</p><p>g 6 ( x ) = [ ( 745 x 5 / x 2 x 3 ) 2 + 157.5 &#215; 10 6 ] 1 / 2 85 x 7 3 − 1 ≤ 0 , g 7 ( x ) = x 2 x 3 40 − 1 ≤ 0 , g 8 ( x ) = 5 x 2 x 1 − 1 ≤ 0 , g 9 ( x ) = x 1 12 x 2 − 1 ≤ 0 , g 10 ( x ) = 1.5 x 6 + 1.9 x 4 − 1 ≤ 0 , g 11 ( x ) = 1.1 x 7 + 1.9 x 5 − 1 ≤ 0 2.6 ≤ x 1 ≤ 3.6 , 0.7 ≤ x 2 ≤ 0.8 , 17 ≤ x 3 ≤ 28 , 7.3 ≤ x 4 ≤ 8.3 , 7.3 ≤ x 5 ≤ 8.3 , 2.9 ≤ x 6 ≤ 3.9 , 5.0 ≤ x 7 ≤ 5.5 (21)</p></sec><sec id="s5_4"><title>5.4. Result Discussion</title><p>For the CBD problem [<xref ref-type="bibr" rid="scirp.126659-ref24">24</xref>] , the optimization results of MSD-SSA and SSA are 1.313731 and 1.339961, the optimal solution is shown in <xref ref-type="table" rid="table6">Table 6</xref>.</p><p>For the TCSD problem [<xref ref-type="bibr" rid="scirp.126659-ref26">26</xref>] , the optimization results of MSD-SSA and SSA are 0.0126917 and 0.0128271, the optimal solution is shown in <xref ref-type="table" rid="table7">Table 7</xref>.</p><p>For the SRD problem [<xref ref-type="bibr" rid="scirp.126659-ref27">27</xref>] , the optimization results of MSD-SSA and SSA are 2997.0889 and 3041.6166, the optimal solution is shown in <xref ref-type="table" rid="table8">Table 8</xref>.</p><p>The average operation time(s) obtained from the above practical engineering problems are as follows:</p><p>It can be seen from <xref ref-type="table" rid="table9">Table 9</xref> that MSD-SSA takes less time to solve the same</p><table-wrap id="table8" ><label><xref ref-type="table" rid="table8">Table 8</xref></label><caption><title> Comparison results of MSD-SSA with SSA for SRD problem</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Algorithm</th><th align="center" valign="middle"  colspan="7"  >Optimize the Solution</th><th align="center" valign="middle"  rowspan="2"  >Optimal Cost</th></tr></thead><tr><td align="center" valign="middle" >x<sub>1</sub></td><td align="center" valign="middle" >x<sub>2</sub></td><td align="center" valign="middle" >x<sub>3</sub></td><td align="center" valign="middle" >x<sub>4</sub></td><td align="center" valign="middle" >x<sub>5</sub></td><td align="center" valign="middle" >x<sub>6</sub></td><td align="center" valign="middle" >x<sub>7</sub></td></tr><tr><td align="center" valign="middle" >MSD-SSA</td><td align="center" valign="middle" >3.5018</td><td align="center" valign="middle" >0.7</td><td align="center" valign="middle" >17</td><td align="center" valign="middle" >7.3000</td><td align="center" valign="middle" >7.7348</td><td align="center" valign="middle" >3.3526</td><td align="center" valign="middle" >5.2880</td><td align="center" valign="middle" >2997.0889</td></tr><tr><td align="center" valign="middle" >SSA</td><td align="center" valign="middle" >3.5000</td><td align="center" valign="middle" >0.7</td><td align="center" valign="middle" >17</td><td align="center" valign="middle" >7.3188</td><td align="center" valign="middle" >8.0557</td><td align="center" valign="middle" >3.4982</td><td align="center" valign="middle" >5.2868</td><td align="center" valign="middle" >3041.6166</td></tr></tbody></table></table-wrap><table-wrap id="table9" ><label><xref ref-type="table" rid="table9">Table 9</xref></label><caption><title> Time spent by MSD-SSA and SSA to solve practical problems</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Algorithm</th><th align="center" valign="middle"  colspan="3"  >Time(s)</th></tr></thead><tr><td align="center" valign="middle" >CBD</td><td align="center" valign="middle" >TCSD</td><td align="center" valign="middle" >SRD</td></tr><tr><td align="center" valign="middle" >MSD-SSA</td><td align="center" valign="middle" >1.083599512</td><td align="center" valign="middle" >0.768733430</td><td align="center" valign="middle" >1.719269466</td></tr><tr><td align="center" valign="middle" >SSA</td><td align="center" valign="middle" >1.306071830</td><td align="center" valign="middle" >0.799066846</td><td align="center" valign="middle" >1.804705365</td></tr></tbody></table></table-wrap><p>practical engineering problems than SSA, which shows that the improved algorithm is superior to the original algorithm in terms of convergence speed.</p></sec></sec><sec id="s6"><title>6. Conclusions and Implications</title><p>Based on the drawbacks of low convergence accuracy, slow convergence speed and easy to fall into a local optimum of the Salp Swarm Algorithm, this paper proposes a Multi-Strategy-Driven Salp Swarm Algorithm. Firstly, the Levy flight strategy with small probability is introduced to the leaders and the crossover operator operation is adopted to improve the global exploration ability in the early stage of the algorithm, so that the leaders can effectively jump out of the trap of local optimum. Secondly, Brownian motion is adopted in the latest iteration to improve the exploitation ability of the algorithm near the global optimum and improve the convergence accuracy of the algorithm. Finally, the positional relationship between the leaders is used to update the followers, so that the leaders have the purpose. The final update of the followers with the positional relationship between leaders, so that the leaders purposefully follow the better individual, improves the convergence speed of the algorithm. The above improvements optimize the global and local search of the algorithm, balancing the exploration and exploitation functions of the algorithm. In the simulation experiments, benchmark test functions and three real engineering problems were used for comparison tests to examine the performance of the algorithm. The experimental results show that the improved algorithm has higher global convergence and faster convergence than the original algorithm, and also outperforms the original algorithm in terms of algorithm robustness. The next steps will continue to improve the optimal performance of the tunicate algorithm, and increase its optimization accuracy, convergence speed and convergence stability. Based on this, it will be applied to solve more practical problems.</p><p>SSA can be applied in many different fields, such as optimization design, machine learning, and so on. Specifically, MSD-SSA can be applied to problems that require finding the optimal solution, such as optimizing design variables to achieve the best performance in engineering, or adjusting model parameters to obtain the best prediction results in machine learning. The optimization capability of this algorithm can improve the convergence speed and accuracy of the algorithm, and it has certain advantages for solving complex and high-dimensional problems. In general, the application scenarios of MSD-SSA are relatively broad, and they can provide assistance in solving problems in multiple fields.</p></sec><sec id="s7"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s8"><title>Cite this paper</title><p>Gao, Z.W. and Wang, B. (2023) Multi-Strategy-Driven Salp Swarm Algorithm for Global Optimization. Journal of Computer and Communications, 11, 88-117. https://doi.org/10.4236/jcc.2023.117007</p></sec></body><back><ref-list><title>References</title><ref id="scirp.126659-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Holland, J.H. (1992) Genetic Algorithms. Scientific American, 267, 66-73. https://doi.org/10.1038/scientificamerican0792-66</mixed-citation></ref><ref id="scirp.126659-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Das, S. and Suganthan, P.N. (2010) Differential Evolution: A Survey of the State-of-the-Art. IEEE Transactions on Evolutionary Computation, 15, 4-31. https://doi.org/10.1109/TEVC.2010.2059031</mixed-citation></ref><ref id="scirp.126659-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Kennedy, J. and Eberhart, R. (1995) Particle Swarm Optimization. Proceedings of ICNN’95—International Conference on Neural Networks, Perth, 27 November-December 1995, 1942-1948. https://doi.org/10.1109/ICNN.1995.488968</mixed-citation></ref><ref id="scirp.126659-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Dorigo, M., Birattari, M. and Stutzle, T. (2006) Ant Colony Optimization. IEEE Computational Intelligence Magazine, 1, 28-39. https://doi.org/10.1109/MCI.2006.329691</mixed-citation></ref><ref id="scirp.126659-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Karaboga, D. (2010) Artificial Bee Colony Algorithm. Scholarpedia, 5, Article No. 6915. https://doi.org/10.4249/scholarpedia.6915</mixed-citation></ref><ref id="scirp.126659-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Mareli, M. and Twala, B. (2018) An Adaptive Cuckoo Search Algorithm for Optimization. Applied Computing and Informatics, 14, 107-115. https://doi.org/10.1016/j.aci.2017.09.001</mixed-citation></ref><ref id="scirp.126659-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Po&amp;lstrok;ap, D. and Wo&amp;zacute;niak, M. (2017) Polar Bear Optimization Algorithm: Meta-Heuristic with Fast Population Movement and dynamic Birth and Death Mechanism. Symmetry, 9, Article 203. https://doi.org/10.3390/sym9100203</mixed-citation></ref><ref id="scirp.126659-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Mirjalili, S., Mirjalili, S.M. and Lewis, A. (2014) Grey Wolf Optimizer. Advances in Engineering Software, 69, 46-61. https://doi.org/10.1016/j.advengsoft.2013.12.007</mixed-citation></ref><ref id="scirp.126659-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Mirjalili, S. and Lewis, A. (2016) The Whale Optimization Algorithm. Advances in Engineering Software, 95, 51-67. https://doi.org/10.1016/j.advengsoft.2016.01.008</mixed-citation></ref><ref id="scirp.126659-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Mirjalili, S., et al. (2017) Salp Swarm Algorithm: A Bio-Inspired Optimizer for Engineering Design Problems. Advances in Engineering Software, 114, 163-191.https://doi.org/10.1016/j.advengsoft.2017.07.002</mixed-citation></ref><ref id="scirp.126659-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Thawkar, S. (2021) A Hybrid Model Using Teaching-Learning-Based Optimization and Salp Swarm Algorithm for Feature Selection and Classification in Digital Mammography. Journal of Ambient Intelligence and Humanized Computing, 12, 8793-8808. https://doi.org/10.1007/s12652-020-02662-z</mixed-citation></ref><ref id="scirp.126659-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Neggaz, N., Ewees, A.A., Abd Elaziz, M. and Mafarja, M. (2020) Boosting Salp Swarm Algorithm by Sine Cosine Algorithm and Disrupt Operator for Feature Selection. Expert Systems with Applications, 145, Article ID: 113103. https://doi.org/10.1016/j.eswa.2019.113103</mixed-citation></ref><ref id="scirp.126659-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Zhang, H., et al. (2022) A Multi-Strategy Enhanced Salp Swarm Algorithm for Global Optimization. Engineering with Computers, 38, 1177-1203.https://doi.org/10.1007/s00366-020-01099-4</mixed-citation></ref><ref id="scirp.126659-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Zhang, H., et al. (2023) Differential Evolution-Assisted Salp Swarm Algorithm with Chaotic Structure for Real-World Problems. Engineering with Computers, 39, 1735-1769. https://doi.org/10.1007/s00366-021-01545-x</mixed-citation></ref><ref id="scirp.126659-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Chen, L.X. and Mu, Y.M. (2021) Improved Salp Swarm Algorithm. Application Research of Computers, 38, 1648-1652. (In Chinese)</mixed-citation></ref><ref id="scirp.126659-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Yang, G.Y., Wu, D.F., Liu, F.K. and Xu, T.Q. (2023) Improved Salp Swarm Algorithm with Multi-Strategy. Application Research of Computers, 40, 704-709. (In Chinese)</mixed-citation></ref><ref id="scirp.126659-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Liu, J.S., Yuan, M.M. and Li, Y. (2022) Robot Path Planning Based on Improved Salp Swarm Algorithm. Journal of Computer Research and Development, 59, 1297-1314. (In Chinese)</mixed-citation></ref><ref id="scirp.126659-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Zhang, Y. and Qin, L.X. (2020) Improved Salp Swarm Algorithm Based on Levy Flight Strategy. Computer Science, 47, 154-160. (In Chinese)</mixed-citation></ref><ref id="scirp.126659-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Xie, C. and Zheng, H.Q. (2022) A Novel Salpa Warm Algorithm and Application. Computer Engineering &amp; Science, 44, 84-190. https://doi.org/10.54097/hset.v24i.3896</mixed-citation></ref><ref id="scirp.126659-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Wu, G.H., Mallipeddi, R. and Suganthan, P.N. (2017) Problem Definitions and Evaluation Criteria for the CEC 2017 Competition on Constrained Real-Parameter Optimization. Technical Report. https://www.researchgate.net/publication/317228117</mixed-citation></ref><ref id="scirp.126659-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">Zhang, J. and Wang, J.-S. (2020) Improved Salp Swarm Algorithm Based on Levy Flight and Sine Cosine Operator. IEEE Access, 8, 99740-99771.https://doi.org/10.1109/ACCESS.2020.2997783</mixed-citation></ref><ref id="scirp.126659-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Mantegna, R.N. (1994) Fast, Accurate Algorithm for Numerical Simulation of Levy Stable Stochastic Processes. Physical Review E, 49, 4677-4683.https://doi.org/10.1103/PhysRevE.49.4677</mixed-citation></ref><ref id="scirp.126659-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Yao, X., Liu, Y. and Lin, G. (1999) Evolutionary Programming Made Faster. IEEE Transactions on Evolutionary Computation, 3, 82-102. https://doi.org/10.1109/4235.771163</mixed-citation></ref><ref id="scirp.126659-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Yildiz, A.R. (2019) A Novel Hybrid Whale-Nelder-Mead Algorithm for Optimization of Design and Manufacturing Problems. The International Journal of Advanced Manufacturing Technology, 105, 5091-5104. https://doi.org/10.1007/s00170-019-04532-1</mixed-citation></ref><ref id="scirp.126659-ref25"><label>25</label><mixed-citation publication-type="other" xlink:type="simple">Saremi, S., Mirjalili, S. and Lewis, A. (2017) Grasshopper Optimization Algorithm: Theory and Application. Advances in Engineering Software, 105, 30-47.https://doi.org/10.1016/j.advengsoft.2017.01.004</mixed-citation></ref><ref id="scirp.126659-ref26"><label>26</label><mixed-citation publication-type="other" xlink:type="simple">Zhao, S., et al. (2022) Elite Dominance Scheme Ingrained adaptive Salp Swarm Algorithm: A Comprehensive Study. Engineering with Computers, 38, 4501-4528.https://doi.org/10.1007/s00366-021-01464-x</mixed-citation></ref><ref id="scirp.126659-ref27"><label>27</label><mixed-citation publication-type="other" xlink:type="simple">Askari, Q., Saeed, M. and Younas, I. (2020) Heap-Based Optimizer Inspired by Corporate Rank Hierarchy for Global Optimization. Expert Systems with Applications, 161, Article ID: 113702. https://doi.org/10.1016/j.eswa.2020.113702</mixed-citation></ref></ref-list></back></article>