Intelligent optimization algorithm: Osprey optimization algorithm - with code

Intelligent optimization algorithm: Osprey optimization algorithm


Abstract: Osprey Optimization Algorithm (OOA) is an optimization algorithm based on Osprey behavior proposed in 2023. The algorithm searches for optimization by simulating Osprey's predation behavior. It has strong optimization ability and fast convergence speed. Fast and other features

1. Osprey optimization algorithm

1.1 Initialization

Similar to other optimization algorithms, the population is randomly initialized in the optimization space:
xi , j = lbj + r ⋅ ( ubj − lbj ) (2) x_{i, j}=l b_j+r \cdot\left(u b_j- l b_j\right) \tag{2}xi,j=lbj+r(ubjlbj)( 2 )
Among them, xi , j x_{i,j}xi,jis the individual, lbj lb_jlbjTo find the lower bound, ubj ub_jubjTo find the upper bound, rrr is a random number between [0,1].

1.2 Phase 1: Positioning and Fishing (Exploration Phase)

Ospreys are powerful hunters capable of detecting the location of fish underwater due to their powerful eyesight. After locating the fish, they attack it and hunt underwater. The first phase of population renewal in OOA was modeled based on simulations of this natural behavior of ospreys. Modeling an osprey attacking fish results in a significant shift in the osprey's position in the search space, which increases the exploration power of OOA in identifying optimal regions and escaping local optima.

In the OOA design, for each osprey, the positions of other ospreys with better objective function values ​​in the search space are considered as underwater fish. The fish group for each Osprey is specified with (4).
FP i = { X k ∣ k ∈ { 1 , 2 , … , N } ∧ F k < F i } ∪ { X best } (4) F P_i=\left\{X_k \mid k \in\{1, 2, \ldots, N\} \wedge F_k<F_i\right\} \cup\left\{X_{\text {best }}\right\}\tag{4}FPi={ Xkk{ 1,2,,N}Fk<Fi}{ Xbest }( 4 )
whereFP i FP_iFPiright iiThe fish collection of i ospreys,X best X_{best}Xbestis the best Osprey location.

The Osprey randomly detects the location of one of the fish and attacks it. Based on the simulated osprey moving towards the fish, the new position of the corresponding osprey is calculated using (5). If this new position is better, the previous position of the Osprey is replaced according to (6).
xi , j P 1 = xi , j + ri , j ⋅ ( SF i , j − I i , j ⋅ xi , j ) , (5-a) x_{i, j}^{P 1}=x_{i , j}+r_{i, j} \cdot\left(S F_{i, j}-I_{i, j} \cdot x_{i, j}\right),\tag{5-a}xi,jP1 _=xi,j+ri,j(SFi,jIi,jxi,j),(5-a)

x i , j P 1 = { x i , j P 1 , l b j ≤ x i , j P 1 ≤ u b j l b j , x i , j P 1 < l b j u b j , x i , j P 1 > u b j (5-b) x_{i, j}^{P 1}=\left\{\begin{array}{l} x_{i, j}^{P_1}, l b_j \leq x_{i, j}^{P_1} \leq u b_j \\ l b_j, x_{i, j}^{P_1}<l b_j \\ u b_j, x_{i, j}^{P 1}>u b_j \end{array}\right.\tag{5-b} xi,jP1 _= xi,jP1,lbjxi,jP1ubjlbj,xi,jP1<lbjubj,xi,jP1 _>ubj(5-b)

X i = { X i P 1 , F i P 1 < F i X i ,  else  (6) X_i=\left\{\begin{array}{l} X_i^{P 1}, F_i^{P 1}<F_i \\ X_i, \text { else } \end{array}\right.\tag{6} Xi={ XiP1 _,FiP1 _<FiXi, else (6)

where SF SFSF selected fish for osprey,rrr is a random number between [0,1],IIThe value of I is one of {1,2}.

1.3 Phase Two: Bringing the Fish to the Right Place (Development Phase)

After an osprey has killed a fish, it will take it to a suitable (safe for him) location, where it will eat. The second phase of population renewal in OOA is based on modeling the simulation of this natural behavior of ospreys. Modeling to bring the fish to a suitable location results in small changes in the osprey's position in the search space, which leads to increased exploitability of OOA in local search and convergence to better solutions near found solutions.

In the design of OOA, in order to simulate this natural behavior of osprey, first, for each member in the population, use (7) to calculate a new random position as the "suitable position for eating fish". Then, if the value of the objective function improves at this new location, it replaces the previous location of the corresponding osprey according to (8).
xi , j P 2 = xi , j + lbj + r ⋅ ( ubj − lbj ) t , i = 1 , 2 , … , N , j = 1 , 2 , … , m , t = 1 , 2 , … , T , (7-a) x_{i, j}^{P 2}=x_{i, j}+\frac{l b_j+r \cdot\left(u b_j-l b_j\right)}{t}, i=1,2, \ldots, N, j=1,2, \ldots, m, t=1,2, \ldots, T, \tag{7-a}xi,jP2 _=xi,j+tlbj+r(ubjlbj),i=1,2,,N,j=1,2,,m,t=1,2,,T,(7-a)

x i , j P 2 = { x i , j P 2 , l b j ≤ x i , j P 2 ≤ u b j l b j , x i , j P 2 < l b j u b j , x i , j P 2 > u b j , (7-b) x_{i, j}^{P 2}=\left\{\begin{array}{l} x_{i, j}^{P 2}, l b_j \leq x_{i, j}^{P 2} \leq u b_j \\ l b_j, x_{i, j}^{P 2}<l b_j \\ u b_j, x_{i, j}^{P 2}>u b_j, \end{array}\right.\tag{7-b} xi,jP2 _= xi,jP2 _,lbjxi,jP2 _ubjlbj,xi,jP2 _<lbjubj,xi,jP2 _>ubj,(7-b)

X i = { X i P 2 , F i P 2 < F i X i ,  else  (8) X_i=\left\{\begin{array}{l} X_i^{P 2}, F_i^{P 2}<F_i \\ X_i, \text { else } \end{array}\right.\tag{8} Xi={ XiP2 _,FiP2 _<FiXi, else (8)

where ttt is the number of iterations,TTT is the maximum number of iterations.

The algorithm flow chart is as follows:
insert image description here

2. Experimental results

insert image description here

3. References

[1]Dehghani Mohammad,Trojovský Pavel. Osprey optimization algorithm: A new bio-inspired metaheuristic algorithm for solving engineering optimization problems[J]. Frontiers in Mechanical Engineering,2023.

4.Matlab

Guess you like

Origin blog.csdn.net/u011835903/article/details/130542706