Salp Swarm Algorithm (SSA) (with MATLAB code)

Let me make a statement first: the article is directly copied and pasted from the push in my personal official account, so friends who are interested in intelligent optimization algorithms can follow my personal official account: heuristic algorithm discussion . From time to time, I will share different intelligent optimization algorithms in the official account, classic ones, or new intelligent optimization algorithms proposed in recent years, with MATLAB code attached.

"At the request of fans, let me talk about the salp algorithm~

I did some research yesterday and found that there are quite a few people working on this algorithm, and it is also a highly cited document on WOS. Interested students can find out, this algorithm itself is very simple, so it is relatively easy to use~”

Salp Swarm Algorithm (SSA) is a new swarm intelligence optimization algorithm proposed by Mirjalili et al. in 2017. The main idea of ​​the algorithm comes from the group chain biological characteristics of salps. The entire optimization process of the salp algorithm originates from the group foraging behavior of the salp chain, and the search process of the salp group for the best food source is compared to the optimization of the function. The original reference for SSA is as follows:

Mirjalili S, Gandomi A H, Mirjalili S Z, et al. Salp Swarm Algorithm: A bio-inspired optimizer for engineering design problems[J]. Advances in engineering software, 2017, 114: 163-191.


 

01
Source of inspiration

A salp is a barrel-shaped sea creature with an almost completely transparent body. This transparent feature can well protect salps from predators in the ocean. They mainly feed on phytoplankton and rely on inhalation and ejection of seawater to move forward. They can transport tons of carbon from the surface of the ocean to the deep sea every day, preventing these carbons from re-entering the atmosphere, effectively reducing the possibility of carbon entering the atmosphere and becoming greenhouse gases, and having a good carbon removal effect on nature . The special function of salp makes it play an irreplaceable role in the ocean. Most creatures in nature move and forage in groups, but salps are connected end to end and form chains to forage. Salps float in the ocean in groups forming a chain structure, and the salp chain is divided into two parts: the leader and the follower. The individual at the front end of the salp chain is considered the leader, and the other individuals are considered followers. The leader leads the followers to move according to the location of the food source, as shown in Figure 1.

Figure 1 The foraging principle of salps

In SSA, the first salp in the chain of salps is the leader and the rest are followers. Different from other swarm intelligence optimization algorithms, the leader will not affect the movement of the whole group, and the followers will update their position according to the position of the previous individual. And so on to form a chain of salps. The leadership of the leader to the followers behind will become weaker and weaker, and the followers behind will not blindly move towards the leader, maintaining the diversity of the population. The salp swarm algorithm saves the currently obtained optimal solution and assigns it to the food source variable, so it will not be lost even if the entire population deteriorates. SSA only updates the position of the leader relative to the food source, which is the best solution so far, so the leader has been exploring and developing the space around it; the following movement of the follower improves the performance of the local search, to a certain extent Avoid getting stuck in a local optimum.

02
Algorithm design

As in previous posts, I will not edit mathematical formulas in the official account yet. Therefore, this part of the content is first written in the Word document, then made into a picture, and finally imported.

03
Calculation process

The pseudocode of the calculation process of SSA is shown in Figure 2:

Figure 2 SSA calculation process

04
Experimental simulation

Likewise, a simple test of the performance of the SSA. Using SSA for function optimization, its MATLAB program is written strictly according to the original reference. In addition, the population size N is 50, the maximum number of iterations T is 2000, and the Benchmark function uses the CEC2005 test set.

Here, the unimodal function Sphere (f1) and the multimodal function Ackley (f10) in the CEC2005 test set are taken as examples to show the convergence effect of SSA in a 30-dimensional environment. As shown in Figure 3, no further analysis will be made here.

(a) f1

(b) f10

Fig.3 Convergence curve of SSA

Secondly, it is advisable to test SSA's ability to balance global exploration and local development. As shown in Figure 4, it is the exploration and development ratio curve of SSA on the CEC2005 test function f3.

Figure 4 The percentage change curve of SSA's exploration and development percentages on CEC2005 f3

Finally, apply SSA to complex engineering constrained optimization problems, such as the application content of the two algorithms previously pushed:

Algorithm Application: Engineering Optimization Design Based on DBO Algorithm (Phase 1) (including MATLAB code)

Algorithm Application: Engineering Optimal Design (Phase 2) (including MATLAB code)

Here we take the welded beam design problem as an example to show the SSA solution effect. The convergence curve is shown in Figure 5.

Fig.5 Convergence curve of objective function of SSA on welded beam design problem

05
MATLAB code

The MATLAB code of SSA can be obtained by copying the link below. The code is written in strict accordance with the original references, with detailed comments.

(There are in the official account, pay attention to the official account: heuristic algorithm discussion)

SSA's exploration (Exploration) and development (Exploitation) proportion analysis:

(There are in the official account, pay attention to the official account: heuristic algorithm discussion)

Engineering application of SSA (No. 1): pressure vessel design, rolling bearing design, tension/compression spring design, cantilever beam design, wheel train design, three-bar truss design.

(There are in the official account, pay attention to the official account: heuristic algorithm discussion)

Engineering application of SSA (No. 2): welded beam design, multi-disc clutch brake design problem, stepping conical pulley problem, reducer design problem, planetary gear train design optimization problem, robot gripper problem.

(There are in the official account, pay attention to the official account: heuristic algorithm discussion)

Guess you like

Origin blog.csdn.net/jieyanping/article/details/131502417