# A Fusion Multi-Strategy Marine Predator Algorithm for Mobile Robot Path Planning
## 2 Marine Predator Algorithm  
The marine predator algorithm is the optimal foraging rule in the marine ecosystem followed by the simulated predators, where the initial prey position is evenly distributed in the search space. The initialization formula is as follows:  
\[X_{0}=X_{min}+rand(X_{max}-X_{min}) \tag{1}\]  
where \(X_{min}\) and \(X_{max}\) are the lower and upper bounds for variables, and \(rand\) is a uniform random vector in the range of 0 to 1. The initialization creates the initial prey matrix \(P_{0}\). \(P_{0}\) is shown as follows:  
\[P_{0}= \begin{bmatrix}X_{1,1}&X_{1,2}&\cdots&X_{1,d}\\ X_{2,1}&X_{2,2}&\cdots&X_{2,d}\\ \vdots&\vdots&\vdots&\vdots\\ X_{n,1}&X_{n,2}&\cdots&X_{n,d}\end{bmatrix} _{n\times d} \tag{2}\]  
The prey individual with the best fitness in \(P_{0}\) is selected as the top predator, and constructed as the elite matrix \(E_{0}\):  
\[E_{0}= \begin{bmatrix}X^{I}_{1,1}&X^{I}_{1,2}&\cdots&X^{I}_{1,d}\\ X^{I}_{2,1}&X^{I}_{2,2}&\cdots&X^{I}_{2,d}\\ \vdots&\vdots&\vdots&\vdots\\ X^{I}_{n,1}&X^{I}_{n,2}&\cdots&X^{I}_{n,d}\end{bmatrix} _{n\times d} \tag{3}\]  
where \(X^{I}\) represents the top predator position vector, \(n\) represents the population size, and \(d\) is the number of dimensions. While the predator is searching for prey, the prey is also looking for its own food, and both the predator and the prey are search agents. The elite matrix is updated after each iteration and replaced by the top predator with higher fitness. The MPA optimization process is divided into three main phases that consider different velocity ratios of prey and predator. It combines Levy and Brownian motions cross-seeking and simulates the entire life of the predator and prey population:  
In the high-velocity ratio stage, the prey is moving faster than the predator, and the best strategy is that the predator stays still and the prey moves through Brownian motion. This stage occurs in the initial iterations of optimization. The mathematical model is as follows:  
\[\textit{While Iter}<\frac{1}{3}\textit{Max\_Iter}\]  
\[\overset{\rightarrow}{s}_{i}=\overset{\rightarrow}{R}_{B}\otimes\left( \overset{\rightarrow}{E}_{i}-\overset{\rightarrow}{R}_{B}\otimes\overset{ \rightarrow}{P}_{i}\right),i=1,2,\ldots,n \tag{4}\]  
\[\overset{\rightarrow}{P}_{i}=\overset{\rightarrow}{P}_{i}+p\cdot\overset{ \rightarrow}{R}\otimes\overset{\rightarrow}{s}_{i} \tag{5}\]where _Iter_ is the current iteration and _Max_Iter_ is the maximum iteration. \(\overset{\rightarrow}{s}_{i}\) represents the prey search step, and \(\overset{\rightarrow}{R}_{B}\) is a vector containing random numbers based on a normal distribution representing the Brownian motion. The notation \(\otimes\) is entry-wise multiplications. \(p\) = 0.5 is a constant number, and \(R\) is the uniform random number vector in [0, 1]. In the equal-velocity ratio stage, the predator and prey move at similar or the same pace. This phase is the middle of the iteration, and since both prey and predator perform foraging behavior, the population is divided equally into two parts; half of the population is designated for exploitation to perform Levy and another half for exploration to practice Brownian motion, with the following mathematical model:  
\[\begin{split}\text{{\it While}}\frac{1}{3}\text{{\it Max\_Iter}} <\text{{\it Iter}}<\frac{2}{3}\text{{\it Max\_Iter}}\\ \overset{\rightarrow}{s}_{i}=\left\{ \begin{array}{ll}\overset{ \rightarrow}{R}_{L}\otimes\left(\overset{\rightarrow}{E}_{i}-\overset{ \rightarrow}{R}_{L}\otimes\overset{\rightarrow}{P}_{i}\right),&i=1,2,\ldots,n/2\\ \overset{\rightarrow}{R}_{B}\otimes\left(\overset{\rightarrow}{R}_{B} \otimes\overset{\rightarrow}{E}_{i}-\overset{\rightarrow}{P}_{i}\right),&i= n/2,\ldots,n\end{array} \right.\\ \overset{\rightarrow}{P}_{i}=\left\{ \begin{array}{ll}\overset{ \rightarrow}{P}_{i}+p\times\overset{\rightarrow}{R}\otimes\overset{ \rightarrow}{s}_{i},&i=1,2,\ldots,n/2\\ \overset{\rightarrow}{E}_{i}+p\times CF\otimes\overset{\rightarrow}{s}_{i},&i= n/2,\ldots,n\end{array}