## 2 Basic Concepts
### Standard Bacterial Foraging Algorithm (BFO)  
[PERSON] proposed an algorithm BFO [13] to solve corresponding problems in 2001.Compared with the well-known EAs DE, genetic algorithm, and PSO, BFO shows excellent performance. The bacterial foraging optimization algorithm is inspired by the foraging strategies of the E. Coli bacterium cells. The basic principle of the bacterial foraging algorithm is to regard each Escherichia coli as a solution. BFO complete the search process of the optimal solution by the bacterial foraging behavior: chemotaxis, swarming, reproduction and elimination. The four parts are as follows:  
Chemotaxis is achieved by the following two operations: swimming and tumbling. When a bacterium meets a favorable environment, it will continue swimming in the same direction. When it meets an unfavorable environment, it will tumble. The process of movement can be defined as follow:  
\[x^{i}(j+1,k,l)=x^{i}(j,k,l)+C(i)\frac{\Delta(i)}{\sqrt{\Delta^{\mathrm{T}}(i) \bullet\Delta(i)}} \tag{7}\]  
where \(x^{i}(j,k,l)\) represents the position of bacteria \(i\) when it approaches the \(j\)th reproduction and \(l\)th elimination and dispersal; \(C(i)\) is the step of chemotaxis; \(\frac{\Delta(i)}{\sqrt{\Delta^{\mathrm{T}}(i)\bullet\Delta(i)}}\) is a random forward direction of movement. Assuming that the objective function value of bacteria \(i\) at \(x^{i}(j+1,k,l)\) is \(f(x^{i}(j+1,k,l))\), bacteria \(i\) will continue to move in the same direction until the value of the objective function no longer decreases or the maximum number of steps is reached when \(f(x^{i}(j+1,k,l))<f(x^{i}(j,k,l))\). In a sense, chemotaxis operation is a complex movement process interwoven with the operation of tumble and swimming, in which tumble represents the direction of optimization and swimming represents the degree of searching feasible solutions in a certain direction. In the BFO algorithm, each of individual does not independently. They release two signals in the process of foraging, one called the attractor signal, the other called the rejection signal. The attractive signal is mainly used to attract other bacteria to get close to itself, while the repulsive signal is used to limit the distance between other bacteria individuals and themselves. So, the swarming can be expressed by (8), (9):  
\[ \begin{array}{ll}f_{cc}(x^{i},P(j,k,l))&=\sum\limits_{r=1}^{S}f_{cc}(x^{i},x ^{r}(j,k,l))\\ &=\sum\limits_{r=1}^{S}\left[-d_{attractant}\exp\left(-w_{attractant}\sum \limits_{p=1}^{n}\left(x_{p}^{j}-x_{p}^{r}\right)^{2}\right)\right]\\ &+\sum\limits_{r=1}^{S}\left[h_{repellent}\exp\left(-w_{repellent}\sum \limits_{p=1}^{n}\left(x_{p}^{j}-x_{p}^{r}\right)^{2}\right)\right]\\ \\ &J(i,j+1,k,l)=J(i,j,k,l)+f_{cc}\end{array}  \tag{8}\]  
where \(f_{cc}(x^{i},P(j,k,l))\) represent a objective function that varies with the population distribution. \(d_{attractant}\) and \(w_{attractant}\) represent the release quantity and diffusion rate of inducement signal, respectively, and \(h_{repellent}\) and \(w_{repellent}\) represent the release quantity and diffusion rate of rejection signal, respectively. With the continuous absorption of nutrients, _E. coli_ will gradually grow as nutrients continue to be absorbed. Under appropriate conditions, each _E. coli_ will asexually split into two bacteria. However, the bacteria will be eliminated for those bacteria with poor nutrition. In the reproduction, \(J_{health}^{i}\) is used to represent the energy value of the \(i\)th bacteria, which determines the foraging ability of bacteria. And then the bacteria are sorted according to their health values. The bacteria with healthy values ranked in the first half are used for reproduction and the other half of bacteria are eliminated. The new reproduction has exactly the same foraging ability as the original bacteria.