You can edit almost every page by Creating an account and confirming your email.

Salp Swarm Algorithm

From EverybodyWiki Bios & Wiki




Salp Swarm Algorithm(SSA), also known as Salp Swarm Optimization(SSO), is a novel metaheuristic algorithm proposed by Mirjalili et al. in 2017.[1]

File:23 salpchain frierson odfw (8253212250).jpg
salp chain off Oregon

This algorithm is inspired by the predation behavior of salp swarms.

On condition of limited particles, this algorithm is more effective than other metaheuristic algorithms.

Algorithm Principle

The salp swarm is divided into a leader and followers, with the leader moving towards food (in most cases, this "food" refers to the current optimal solution), while followers move in a chain-like motion to follow the leader. Thus, the leader is responsible for exploitation while the followers are responsible for exploration.

Algorithm Implementation

Parameter settings:

- N is the number of salp swarm population.

- j is the dimension of the problem being solved.

- ubj(upper bound) is the upper boundary of the problem being solved.

- lbj(lower bound) is the lower boundary of the problem being solved.

- T is the maximum number of iterations.

- t is the current iteration number.

Initialize the population. Note that because the salp swarm moves in a chain-like motion, uniform distribution initialization on both upper and lower bounds is most suitable for this algorithm. Some papers[2] have proposed using chaotic sequences for initialization. In any case, random initialization is likely to lead to suboptimal results, so if conditions permit, try to avoid using random initialization.

In computer languages, populations are usually represented by arrays. Here, xji represents the position of the particle, where i represents the index of the particle and j represents the dimension in which the particle is located.

Leader salp update formula: xj1={Fj+c1((ubjlbj)c2+lbj) c30.5Fjc1((ubjlbj)c2+lbj) c3<0.5

Here, xj1 represents the leader's position, Fj represents the current best solution position (food position), c1 is a coefficient that balances development and exploration, and its formula is: c1=2e(4tT)2, where e is the natural constant, 𝑡 is the current iteration number, and T is the maximum number of iterations. c2 and c3 are random numbers between 0 and 1.

Follower position update formula: xji=xji+xji1

Here, xji on the left side of the equation represents the updated position of the ith salp, while xji on the right side of the equation represents the current position of the ith salp, and xji1 represents the position of the (i-1)th salp, the previous salp of the chain.

Here is a pseudocode of salp swarm:

Initialize salp swarm
while t<T
    FoodPosition = the current best solution position; %you might write a loop to get FoodPosition
    for each salp i = 1, ..., N
        if i==1 %Update the leader salp
            c1 = 2*e^(-(4t/T)^2);
            c2 = random(0~1);
            c3 = random(0~1);
            if c3>0.5 x[1] = FoodPosition+c1((ub-lb)*c2+lb); 
            else  x[1] = FoodPosition-c1((ub-lb)*c2+lb); 
        }else{
            x[i] = x[i]+x[i-1]; %chain-like move
        }
    end for
    for each salp i = 1, ..., N
        x[i] = constrans(ub,lb); %bound check. if salp is beyond the bound, assign the bound value 
    end for

Improved Salp Swarm Algorithm

Like any other metaheuristic algorithms, the Salp Swarm Algorithm may also encounter slow convergence and being trapped in local optima. Here are some optimization methods:

  • While ensuring that it is not trapped in local optima, the number of leaders can be dynamically increased to solve the problem of slow convergence. At the beginning of the iteration, one leader is set, allowing for sufficient exploration. At the end of the iteration, N2 leaders are set, allowing for rapid convergence. The number of leaders can be calculated using a common function n=ef(t,T), where n is the calculated number of leaders and f(t,T) is a function derived based on specific situations.
  • To increase the algorithm's exploration ability when being trapped in local optima, crazy particles (or a crazy operator) can be added. This concept is similar to adding a "crazy operator" in Particle Swarm Optimization.
  • A paper[3] proposed introducing Lévy flight[4] into the SSA algorithm.
  • Algorithm Hybridization

Applications of the Salp Swarm Algorithm

In photovoltaic power generation, the Maximum Power Point Tracking (MPPT) algorithm.[5]

References

  1. Mirjalili, Seyedali; Gandomi, Amir H.; Mirjalili, Seyedeh Zahra; Saremi, Shahrzad; Faris, Hossam; Mirjalili, Seyed Mohammad (2017-12-01). "Salp Swarm Algorithm: A bio-inspired optimizer for engineering design problems". Advances in Engineering Software. 114: 163–191. doi:10.1016/j.advengsoft.2017.07.002. ISSN 0965-9978.
  2. Zhang, Jiawei; Zhang, Qizhi; Li, Lin (July 2022). "An Improved Slap Swarm Algorithm Incorporating Tent Chaotic Mapping and Decay Factor". 2022 4th International Conference on Intelligent Control, Measurement and Signal Processing (ICMSP): 1010–1014. doi:10.1109/ICMSP55950.2022.9859159.
  3. Balakrishnan, K.; Dhanalakshmi, R.; Khaire, Utkarsh Mahadeo (2021-11-01). "Improved salp swarm algorithm based on the levy flight for feature selection". The Journal of Supercomputing. 77 (11): 12399–12419. doi:10.1007/s11227-021-03773-w. ISSN 1573-0484.
  4. "Lévy flight", Wikipedia, 2023-04-12, retrieved 2023-04-19
  5. Mirza, Adeel Feroz; Mansoor, Majad; Ling, Qiang; Yin, Baoqun; Javed, M. Yaqoob (2020-04-01). "A Salp-Swarm Optimization based MPPT technique for harvesting maximum energy from PV systems under partial shading conditions". Energy Conversion and Management. 209: 112625. doi:10.1016/j.enconman.2020.112625. ISSN 0196-8904.


This article "Salp Swarm Algorithm" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Salp Swarm Algorithm. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.