# Egret Swarm Optimization

**Script error: No such module "Draft topics".**
**Script error: No such module "AfC topic".**

The Egret Swarm Optimization Algorithm (ESOA) is a meta-heuristic optimization algorithm that combines the predatory behavior of Snowy Egrets (Sit-And-Wait Strategy) and Great Egrets (Aggressive Strategy).^{[1]}

## Inspiration[edit]

Among the egret family, the Snowy Egret and the Great Egret are two species that differ considerably in their feeding behavior. The Snowy Egret applies the least energy-intensive sit-and-wait strategy: it stands still and waits patiently, watching for prey until it appears and then darting to grab it with its beak. Snowy egrets that use the sit-and-wait strategy tend to retrieve relatively steady gains with very low energy consumption. Great egrets, on the other hand, are aggressive, and once they have spotted their prey, they will chase it until it is caught. The aggressive strategy is energy-intensive, but it also allows the Great Egret to potentially achieve higher returns. Inspired by the predatory behavior of snowy egrets and great egrets, an algorithm ESOA that combines the advantageous characteristics of both is proposed.

## Mathematical model[edit]

The ESOA consists of three main components: a sit-and-wait strategy, an aggressive strategy, and a discriminant condition. Each egret swarm can consist of n egret squads, each of which in turn contains three egrets, with Egret A implementing the sit-and-wait strategy and Egret B and Egret C using the random walking and encircling mechanisms of the aggressive strategy, respectively.

### Sit-And-Wait Strategy[edit]

The observation equation of i-th Egret A can be described as , the retrieved real fitness of each iteration is , then the pseudo gradient of the observation equation is hence the new position of Egret A is as below:

,

where is the current iteration, is the maximum iteration, is the gap between the low bound and up bound of solution space.

### Aggressive Strategy[edit]

Egret B applies random walking and the position update method is:

,

where is the stochastic values in .

Egret C uses encircling mechanisms,

where and represent the best position of Egret Squad and Egret Swarm respectively. and is the random values in .

### Discriminant Condition[edit]

After each egret in the egret squad has calculated the updated position, it will jointly decide the updated position of the egret squad in the following form:

,

,

,

The egret squad compares the updated position and fitness of the three egrets with the fitness of the previous iteration, and adopts the update if one egret's updated position is better than that of the previous iteration. If each egret's updated position is worse than the previous one, there is a 30% probability of adopting the solution with the best-updated position.

## Source Code[edit]

Python Code：https://github.com/Knightsll/Egret_Swarm_Optimization_Algorithm

MATLAB Code：https://ww2.mathworks.cn/matlabcentral/fileexchange/115595-egret-swarm-optimization-algorithm-esoa

Website: https://knightsll.github.io/about

## References[edit]

- ↑ Chen, Zuyan; Francis, Adam; Li, Shuai; Liao, Bolin; Xiao, Dunhui (2022-07-29). "Egret Swarm Optimization Algorithm: An Evolutionary Computation Approach for Model Free Optimization".
*Biomimetics (Basel, Switzerland)*.**7**(4): 144. arXiv:2207.14667. doi:10.3390/biomimetics7040144. PMC 9590057 Check`|pmc=`

value (help). PMID 36278701 Check`|pmid=`

value (help).

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