Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

It is fair to say that bacteria can be observed almost everywhere, from the most hospitable surroundings to the most hostile environment (Helden et al. 2012). Some of them are harmful but majority of them are beneficial to the nature. They comprise various attributes (e.g., shape, texture, and metabolism) and different behavioural patterns (e.g., foraging, reproduction, and movement) (Modrow et al. 2013; Giguère et al. 2013). In addition to purely scientific aspects related to the bacteria, those characteristics also initiate computer scientists to develop algorithms for the solution of optimization problems. The first attempts appeared in the late 1970s [e.g., bacterial chemotaxis algorithm that proposed by Bremermann (1974)]. Since then, similar ideas have attracted a steadily increasing amount of research. In this chapter, a set of bacteria inspired algorithms are collected and introduced as follows:

The effectiveness of these newly developed algorithms are validated through the testing on a wide range of benchmark functions and engineering design problems, and also a detailed comparison with various traditional performance leading computational intelligence (CI) algorithms, such as particle swarm optimization (PSO), genetic algorithm (GA), differential evolution (DE), evolutionary algorithm (EA), fuzzy system (FS), ant colony optimization (ACO), and simulated annealing (SA).

1.1 Bacteria

Bacteria are micro-organisms that include a large domain. For example, there are roughly 5,000 operational taxonomic unit of bacteria for every gram of soil (Maheshwari 2012). In addition, they have a wide range of shapes, such as spheres, spirals, and rods. Also, they live in everywhere, such as in plants, animals, and human’s body. Due to their diverse ecology, they exhibit multifarious functional characters beneficial in nature.

1.2 Bacterial Foraging Behaviour

The bacterial foraging behaviour (i.e., bacterial movement) has been studied by biologists for many years, but there are very few reports until 70s (Berg and Brown 1972; Adler 1975). During foraging, there are two types of bacterial motility: i.e., flagellum-dependent and flagellum-independent. In addition, biologists found that bacterial movement was not random and arbitrary. Instead, bacterial cells exhibited directed movement toward certain stimuli and away from others (Adler 1975). This behaviour is called bacterial chemotaxis in the literature. Since its discovery, chemotactic behaviour has stimulated the curiosity of numerous investigators. Nowadays, those research outcomes have been adopted by the models simulating bacterial foraging patterns (Paton et al. 2004).

2 Bacterial Foraging Algorithm

2.1 Fundamentals of Bacterial Foraging Algorithm

Bacterial foraging algorithm (BFA) was originally proposed by Passino (2002) in which the foraging strategy of E. Coli bacteria has been simulated. Typically, the BFA consists of four main mechanisms: chemotaxis, swarming, reproduction, and elimination-dispersal event. The main steps of BFA are outlined below (Passino 2002):

  • Chemotaxis: The movement of E. Coli bacteria can be performed through two different ways: swimming which means the movement in the same direction, and tumbling refers the movement in a random direction. The movement of the \( i{\text{th}} \) bacterium after one step is given by Eqs. 2.1 and 2.2, respectively (Passino 2002):

    $$ \theta^{i} \left( {j + 1,\,k,l} \right) = \theta^{i} \left( {j,k,l} \right) + C\left( i \right)\phi \left( j \right) ,$$
    (2.1)
    $$ \left\{{\begin{array}{*{20}c} \begin{gathered} \theta^{i} \left( {j + 1,k,l} \right) > \theta^{i} \left( {j,k,l} \right), \hfill \\ \hfill \\ \end{gathered} \hfill & \begin{gathered} {\text{swimming in which }}\phi \left( j \right) = \phi \left( {j - 1} \right) \hfill \\ \hfill \\ \end{gathered} \hfill \\ {\theta^{i} \left( {j + 1,k,l} \right) < \theta^{i} \left( {j,k,l} \right),} \hfill &\! {{\text{tumbling in which }}\phi \left( j \right) \in \left[ { 0 , 2\pi } \right].} \hfill \\ \end{array} } \right. $$
    (2.2)

    Where \( \theta^{i} \left( {j,k,l} \right) \) denotes the location of \( i{\text{th}} \) bacterium at \( j{\text{th}} \) chemotactic, \( k{\text{th}} \) reproductive and \( l{\text{th}} \) elimination and dispersal step, \( C\left( i \right) \) is the length of unit walk, and \( \phi \left( j \right) \) is the direction angle of the \( j{\text{th}} \) step.

  • Swarming: Under the stresses circumstances, the bacteria release attractants to signal bacteria to swarm together, while they also release a repellant to signal others to be at a minimum distance from it. The cell to cell signalling can be represented by Eq. 2.3 (Passino 2002):

    $$ \begin{aligned} J_{cc} \left( {\theta ,P\left( {j,k,l} \right)} \right) & = \sum\limits_{i = 1}^{S} {J_{cc}^{i} } \left( {\theta ,\theta^{i} \left( {j,k,l} \right)} \right) \\ & = \sum\limits_{i = 1}^{S} {\left[ { - d_{attract} \exp \left( { - \omega_{attract} \sum\limits_{m = 1}^{P} {\left( {\theta_{m} - \theta_{m}^{i} } \right)^{2} } } \right)} \right]} \\ & \quad+ \sum\limits_{i = 1}^{S} {\left[ {h_{repellant} \exp \left( { - \omega_{repellant} \sum\limits_{m = 1}^{P} {\left( {\theta_{m} - \theta_{m}^{i} } \right)^{2} } } \right)} \right]} \\ \end{aligned}. $$
    (2.3)

    Where \( J_{cc} \left( {\theta ,P\left( {j,k,l} \right)} \right) \) is the objective function value to be added to the actual objective function, \( S \) is the total number of bacteria, \( P \) is the number of variables to be optimized which are present in each bacterium, \( \theta = \left[ {\theta_{1} ,\theta_{2} ,\ldots ,\theta_{P} } \right]^{T} \) denotes a point in the P-dimensional search domain, \( d_{attract} \) is the depth of the attractant released by the cell, \( \omega_{attract} \) is a measure of the width of the attractant signal, \( h_{repellant} \) is the height of the repellant effect (i.e., \( h_{repellant} = d_{attract} \)), and \( \omega_{repellant} \) is the measure of the width of the repellant.

  • Reproduction: After \( N_{c} \) chemotaxis steps, the reproduction step should be performed. The fitness value of the bacteria is stored in an ascending order. The working principle is the least health bacteria eventually die and the remaining bacteria (i.e., healthiest bacteria) will be divided into two identical ones and placed at the same location.

  • Dispersion and elimination: For the purpose to avoid local optima, dispersion and elimination process is performed after a certain number of reproduction steps. According to a present probability (\( p_{ed} \)), a bacterium is chosen to be dispersed and moved to another position within the environment.

Taking into account the key phases described above, the steps of implementing BFA can be summarized as follows (Passino 2002; Boussaïd et al. 2013; El-Abd 2012; Tang and Wu 2009):

  • Step 1: Defining the optimization problem, and initializing the optimization parameters.

  • Step 2: Iterative algorithm for optimization. In this step the bacterial population, chemotaxis loop (\( j = j + 1 \)), reproduction loop (\( k = k + 1 \)), and elimination and dispersal operations loop (\( l = l + 1 \)) are performed.

  • Step 3: If \( j < N_{c} \), go to the chemotaxis process.

  • Step 4: Reproduction.

  • Step 5: If \( k < N_{re} \), go to reproduction process.

  • Step 6: Elimination-dispersal.

  • Step 7: If \( l < N_{ed} \), then go to elimination-dispersal process; otherwise end.

2.2 Performance of BFA

In order to show how the BFA performs, a set of experimental studies were adopted in the literature (Passino 2002). Computational results showed that BFA gives some promising results.

3 Emerging Bacterial Inspired Algorithms

In addition to the aforementioned BFA, the characteristics of this interesting biological organisms also motivate researchers to develop other bacterial inspired innovative CI algorithms.

3.1 Bacterial Colony Chemotaxis Algorithm

3.1.1 Fundamentals of Bacterial Colony Chemotaxis Algorithm

Bacterial colony chemotaxis (BCC) algorithm was originally proposed by Li et al. (2005) that is based on bacterial chemotaxis algorithm (Bremermann and Anderson 1991) and incorporated the communication mechanisms between the colony members. There are several variants and applications relative to BCC can be found in the literature (Li et al. 2009; Li and Li 2012; Sun et al. 2012; Lu et al. 2013; Irizarry 2011). The basic steps of BCC are as follows (Lu et al. 2013; Müller et al. 2002; Sun et al. 2012):

  • Step 1: Initial Bacterial Positions.Generate \( N \) bacteria randomly in the search space, the velocity is assumed constant by Eq. 2.4 (Lu et al. 2013; Müller et al. 2002):

    $$ v = const. $$
    (2.4)
  • Step 2: Optimize by a single bacterium.

Compute the duration of the trajectory \( \tau \) from the distribution of a random variable with an exponential probability density function via Eq. 2.5 (Lu et al. 2013; Müller et al. 2002):

$$ P\left( {X = \tau } \right) = \frac{1}{T}e^{{{{ - \tau } \mathord{\left/ {\vphantom {{ - \tau } T}} \right. \kern-0pt} T}}} ,$$
(2.5)

where the expectation value \( \mu = E\left( X \right) = T \), and the variance \( \sigma^{2} = Var\left( X \right) = T^{2} \). The time \( T \) is given by Eq. 2.6 (Müller et al. 2002):

$$ T = \left\{ {\begin{array}{*{20}l} {T_{0} } \hfill &\, {{\text{for }}\frac{{f_{pr} }}{{l_{pr} }} \ge 0,} \hfill \\ {T_{0} \left( {1 + b \cdot \left\{ {\frac{{f_{pr} }}{{l_{pr} }}} \right\}} \right)} \hfill &\, {{\text{for}}\;\frac{{f_{pr} }}{{l_{pr} }} < 0,} \hfill \\ \end{array} } \right.$$
(2.6)

where \( T_{0} \) is minimal mean time, \( f_{pr} \) is the difference between the actual and the previous function value, \( l_{pr} \) is the length of the previous step and \( l_{pr} = \left| {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{pr} } \right|, \, \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{pr} \) denotes vector connecting the previous and the actual position in the parameter space, and \( b \) is dimensionless parameter.

The position of a bacterium is defined by \( x \) with a radius and angles via Eq. 2.7 (Lu et al. 2013):

$$ \begin{aligned} x_{1} & = \gamma \prod\limits_{s - 1}^{n - 1} {\cos \left( {\phi_{s} } \right)}, \\ x_{i} & = \gamma \;\sin \left( {\phi_{i - 1} } \right)\gamma \prod\limits_{s - i}^{n - 1} {\cos \left( {\phi_{s} } \right)} ,{\text{ for }}i = 2,3, \ldots ,n, \\ x_{n} & = \gamma \;\sin \left( {\cos \left( {\phi_{n - 1} } \right)} \right), \\ \end{aligned} $$
(2.7)

where \( \gamma \) is the radius, and \( \Upphi = \left\{ {\phi_{1} ,\phi_{2} , \ldots ,\phi_{n - 1} } \right\} \) denote angles. According to the Gaussian distribution, the angel (\( \phi_{i} \)) between the previous and the new direction for turning left or right are defined by Eqs. 2.8 and 2.9, respectively (Lu et al. 2013):

$$ P\left( {X_{i} = \phi_{i} ,v_{i} = \mu_{i} } \right) = \frac{1}{{\sigma_{i} \sqrt {2\pi } }}\exp \left[ { - \frac{{\left( {\phi_{i} - v_{i} } \right)^{2} }}{{2\sigma_{i}^{2} }}} \right] ,$$
(2.8)
$$ P\left( {X_{i} = \phi_{i} ,v_{i} = - \mu_{i} } \right) = \frac{1}{{\sigma_{i} \sqrt {2\pi } }}\exp \left[ { - \frac{{\left( {\phi_{i} - v_{i} } \right)^{2} }}{{2\sigma_{i}^{2} }}} \right] ,$$
(2.9)

where \( \phi_{i} \in \left[ {0^{ \circ } ,\,180^{ \circ } } \right] \). The expectation value and the standard deviation are defined by Eqs. 2.10 and 2.11, respectively (Lu et al. 2013):

$$\begin{aligned} \mu & = E\left( {X_{i} } \right) = 62^{ \circ } \left( {1 - \cos \left( \theta \right)} \right), \\ \sigma_{i} & = \sqrt {Var\left( {X_{i} } \right)} = 26^{ \circ } \left( {1 - \cos \left( \theta \right)} \right), \\ \end{aligned}$$
(2.10)
$$ \cos \left( \theta \right) = \left\{ {\begin{array}{*{20}l} 0 \hfill & {{\text{for }}\frac{{f_{pr} }}{{l_{pr} }} \ge 0}, \hfill \\ {\exp \left( { - {{\tau_{c} } \mathord{\left/ {\vphantom {{\tau_{c} } {\tau_{pr} }}} \right. \kern-0pt} {\tau_{pr} }}} \right)} \hfill & {{\text{for}}\,\,\frac{{f_{pr} }}{{l_{pr} }} < 0}, \hfill \\ \end{array} } \right.$$
(2.11)

where \( \tau_{pr} \) is the duration of the previous step, and \( \tau_{c} \) is the correlation time.

Compute the new position (\( \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{new} \)) via Eqs. 2.12 and 2.13, respectively (Lu et al. 2013):

$$ \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{new} = \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{old} + \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {n}_{u} \cdot l ,$$
(2.12)
$$ l = v \cdot t ,$$
(2.13)

where \( l \) is the length of the path, and \( \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {n}_{u} \) is the normalized new direction vector.

  • Step 3: Optimize by the bacterial colony.

Initialize the number of bacteria colony and the parameters, such as the initial starting precision (\( \varepsilon_{begin} \)), the constant of updating precision (\( \varepsilon_{cons} \)), and the target precision (\( \varepsilon_{end} \)).

The best neighbour centre position of the \( i{\text{th}} \) bacterium is given via Eq. 2.14 (Sun et al. 2012):

$$ center\_position\left( i \right) = rand\left( {} \right) \cdot dis\left( {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{i,t} ,Center\left( {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{i,t} } \right)} \right) ,$$
(2.14)

where \( dis\left( {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{i,t} ,Center\left( {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {x}_{i,t} } \right)} \right) .\) is the distance between the bacterium \( i \) and the centre position, and \( rand\left( {} \right) \) is a random number meeting the uniform distribution in the interval of \( \left( {0,1} \right) \).

Based on the single bacterium movement process, the next position of \( i{\text{th}} \) bacterium can be defined by Eqs. 2.15 and 2.16, respectively (Sun et al. 2012):

$$ individual\_position\left( i \right) = current\_position\left( i \right) + next\left( i \right) ,$$
(2.15)
$$ next\left( i \right) = v \cdot d \cdot \left| {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {n}_{u} } \right| ,$$
(2.16)

where \( v \) denotes the velocity, \( d \) is the duration, and \( \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\rightharpoonup}$}} {n}_{u} \) is the normalized new direction vector.

  • Step 4: Bacterial colony move to the new location. Compare the objective function fitness value between \( center\_position\left( i \right) \) and \( individual\_position\left( i \right) \), then \( i{\text{th}} \) bacterium chooses the better value position to move.

  • Step 5: If the target precision (\( \varepsilon_{end} \)) is gained end, otherwise turn to Step 2.

3.1.2 Performance of BCC

To illustrate the performance of BCC, a set of experimental studies were adopted in (Li and Li 2012; Sun et al. 2012). Computational results showed that the proposed algorithm performs well.

3.2 Superbug Algorithm

3.2.1 Fundamentals of Superbug Algorithm

Superbug algorithm (SuA) was originally proposed in (Anandaraman et al. 2012) that is based on the findings of epidemic and antiviral research (Lindsay and Holden 2006; Low et al. 1999; Bisen and Raghuvanshi 2013; Gong 2013; Desai and Meanwell 2013; Cook 2013; Morrow et al. 2012; Lahtinen et al. 2012; Helden et al. 2012). To implement SuA, the following steps need to be performed (Anandaraman et al. 2012):

  • Step 1: Generating initial population.

  • Step 2: Mutating the bacteria (two mechanisms are introduced in SuA, namely, inverse and pairwise interchange mutation).

  • Step 3: Transferring gene between bacteria for the purpose of enhancing the fitness level.

  • Step 4: Performing single point mutation on the modified bacteria.

3.2.2 Performance of SuA

The core concept underlying the SuA is the antibiotic resistance that a bacterium has developed during the procedure of mutation. To illustrate the performance of SuA, Anandaraman et al. (2012) applied it to the flexible manufacturing system scheduling problem. In comparison with other CI techniques (e.g., GA), the SuA showed a better performance in majority of the cases. At the end of their study, Anandaraman et al. (2012) suggested that it is possible to apply SuA to other multi-machine and dynamic job shop scheduling problems.

3.3 Bacterial Colony Optimization Algorithm

3.3.1 Fundamentals of Bacterial Colony Optimization Algorithm

Bacterial colony optimization (BCO) algorithm was originally proposed by Niu and Wang (2012) which is inspired by five basic behaviours of E. Coli bacteria in their whole lifecycle, i.e., chemotaxis, communication, elimination, reproduction, and migration. The main steps of BCO are outlined as follows (Niu and Wang 2012):

  • Chemotaxis and communication model: In BCO, the movements of bacteria (i.e., runs and tumbles) are accompanied with communication mechanism in which three types of information (i.e., group information, personal previous information, and a random direction) are exchanged to guide them in direction and ways of movement. The bacterium runs or tumbles with communication process can be formulated via Eqs. 2.17 and 2.18, respectively (Niu and Wang 2012):

$$ Position_{i} \left( T \right) = Position_{i} \left( {T - 1} \right) + R_{i} \cdot \left( {Run_{Info} } \right) + R\Updelta \left( i \right). $$
(2.17)
$$ Position_{i} \left( T \right) = Position_{i} \left( {T - 1} \right) + R_{i} \cdot \left( {Tumb_{Info} } \right) + R\Updelta \left( i \right). $$
(2.18)
  • Elimination and reproduction model: Based to the bacteria searching ability, each bacterium is marked with an energy degree. According to this level, the decisions of elimination and reproduction are defined via Eq. 2.19 (Niu and Wang 2012):

    $$ \left\{ {\begin{array}{*{20}l} {{\text{if }}L_{i} > L_{{given}} ,\,{\text{and }}i \in {\text{healthy}},} \hfill & {{\text{then }}i \in Candidate_{{repr}} }, \hfill \\ {{\text{if }}L_{i} < L_{{given}} ,\,{\text{and }}i \in {\text{healthy}},} \hfill & {{\text{then }}i \in Candidate_{{eli}} }, \hfill \\ {{\text{if }}i \in {\text{unhealthy}},} \hfill & {{\text{then }}i \in Candidate_{{eli}} }, \hfill \\ \end{array} } \right.$$
    (2.19)

    where \( \, L_{i} \) denotes the \( i{\text{th}} \) bacterium’s level of energy.

  • Migration model: To avoid local optimum, the BCO’s migration model is defined via Eq. 2.20 (Niu and Wang 2012):

    $$ Position_{i} \left( T \right) = rand \cdot \left( {ub - lb} \right) + lb ,$$
    (2.20)

    where \( ub \) and \( lb \) are the upper and lower boundary, respectively, and \( rand \in \left( {0,1} \right) \).

In addition, in the process of tumbling, a stochastic direction are incorporated into actually running process. Therefore, the position of each bacterium is updated via Eqs. 2.212.23, respectively (Niu and Wang 2012):

$$\begin{aligned} Position_{i} \left( T \right) & = \,\,Position_{i} \left( {T - 1} \right) + C\left( i \right) \\ & \quad* \,\,\left[ {f_{i} \cdot \left( {G_{best} - Position_{i} \left( {T - 1} \right)} \right) + \left( {1 - f_{i} } \right)} \right. \\ & \quad* \,\,\left. {\left( {P_{{best_{i} }} - Position_{i} \left( {T - 1} \right)} \right) + turbulent_{i} } \right], \\ \end{aligned} $$
(2.21)
$$ \begin{aligned} Position_{i} \left( T \right) = & \,\,Position_{i} \left( {T - 1} \right) + C\left( i \right) \\ &\quad* \,\,\left[ {f_{i} * \left( {G_{best} - Position_{i} \left( {T - 1} \right)} \right) + \left( {1 - f_{i} } \right)} \right. \\ &\quad * \left. {\,\,\left( {P_{{best_{i} }} - Position_{i} \left( {T - 1} \right)} \right)} \right], \\ \end{aligned} $$
(2.22)
$$ C\left( i \right) = C_{\hbox{min} } + \left( {\frac{{iter_{\hbox{max} } - iter_{j} }}{{iter_{\hbox{max} } }}} \right)^{n} \cdot \left( {C_{\hbox{max} } - C_{\hbox{min} } } \right), $$
(2.23)

where \( turbulent_{i} \) is the turbulent direction variance of the \( i{\text{th}} \) bacterium, \( f_{i} \in \left( {0,1} \right) \), \( G_{best} \) and \( P_{{best_{i} }} \) are the globe best and personal best position of the \( i{\text{th}} \) bacterium, respectively, \( C\left( i \right) \) is the chemotaxis step size of the \( i{\text{th}} \) bacterium, \( iter_{\hbox{max} } \) is the maximal number of iterations, and \( iter_{j} \) is the current number of iterations.

3.3.2 Performance of BCO

To test the effectiveness of BCO, a set of well-known test functions were adopted in (Niu and Wang 2012). Compared with five other algorithms [i.e., PSO, GA, BFA, bacterial foraging optimization with linear decreasing chemotaxis step (BFO-LDC), and bacterial foraging optimization with nonlinear decreasing chemotaxis step (BFO-NDC)], computational results showed that BCO performs significantly better than four other algorithms (i.e., GA, BFA, BFO-LDC, and BFO-NDC) in all test functions, and BCO obtains better results than PSO in most of functions.

3.4 Viral System Algorithm

3.4.1 Fundamentals of Viral System Algorithm

Viral system (VS) algorithm was originally proposed by Cortés et al. (2008) which is based on viral infection processes. Two mechanisms called replication and infection are employed to the VS algorithm. The main steps of VS are as follows (Cortés et al. 2008, 2012; Ituarte-Villarreal and Espiritu 2011):

  • Step 1: Initialisation the VS components. Each VS is defined by three components, i.e., a set of viruses, an organism, and an interaction between them. In addition, each virus includes four components, i.e., state, input, output, and process, and each organism includes two components, i.e., state and process. Overall, the VS can be described via Eqs. 2.242.27, respectively (Cortés et al. 2008):

$$ VS = \left\langle {Virus,Organism,Interaction} \right\rangle, $$
(2.24)
$$ Virus = \left\{ {Virus_{1} ,Virus_{2} , \ldots ,Virus_{n} } \right\} ,$$
(2.25)
$$ Virus_{i} = \left\langle {State_{i} ,Input_{i} ,Output_{i} ,\Pr ocess_{i} } \right\rangle, $$
(2.26)
$$ Organism = \left\langle {State_{0} ,\Pr ocess_{0} } \right\rangle ,$$
(2.27)

where \( State_{i} \) denotes the characterises of the virus, \( Input_{i} \) identifies the information that the virus can collect form the organism, \( Output_{i} \)denotes the actions that the virus can take, \( Process_{i} \) represents autonomous behaviour of the virus that changing the \( State_{i} \), \( State_{0} \) characterises the organism state in each instant, consisting of clinical picture and the lowest healthy cell, and \( Process_{0} \) represents the autonomous behaviour of the organism that tries to protect itself from the infection threat, consisting of antigen liberation.

  • Step 2: Population construction. The set of feasible solutions in a specific space is given by Eq. 2.28 (Cortés et al. 2008):

$$ K = \left\{ {x:g_{i} \left( x \right) \le 0,\forall i = 1,2, \ldots \;n} \right\} ,$$
(2.28)

where \( x \in K \) denotes the feasible solutions and has been called a cell.

  • Step 3: Define type of virus infection: selective or massive infection.

In case of massive infection: \( Y - A \) cells of the neighbourhood are infected, and must be incorporated into the clinical picture. If there is not enough free space in the population, it will randomly erase the necessary cells from the \( Y - A \) selected cells.

In case of selective infection: One only cell from the neighbourhood is selected according to the selective selection. The antigenic response of such cell is evaluated as a Bernoulli process (\( A \)). In case of antigenic response a lysogenic replication is initiated.

  • Step 4: Define type of evolution of the virus: i.e., the lytic replication and the lysogenic replication.

In case of the lytic replication: This process starts only after a specific number of nucleus-capsids haven been replicated.

Calculate the limit number of nucleus-capsids replication (LNR) in a cell \( x \) by Eq. 2.29 (Cortés et al. 2008):

$$ LNR_{cell - x} = LNR^{0} \cdot \left( {\frac{{f\left( x \right) - f\left( {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{x} } \right)}}{{f\left( {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{x} } \right)}}} \right) ,$$
(2.29)

where \( \overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{x} \) is the cell that produces the best known result of the problem (in terms of \( f\left( x \right) \)), \( x \) is the infected cell being analysed, and \( LNR^{0} \) is the initial value for LNR.

In each iteration, a number of virus replications (NR) takes place. The number of replications per iteration is calculated as function of a binomial variable (\( Z \)), adding its value to the total NR. The probability of replicating exactly \( z \) nucleus-capsids (\( P\left( {Z = z} \right) \)), as well as the average (\( E\left( Z \right) \)), and variance (\( Var\left( Z \right) \)) are given by Eqs. 2.302.32, respectively (Cortés et al. 2008):

$$ P\left( {Z = z} \right) = \left( {\begin{array}{*{20}c} {LNR} \\ z \\ \end{array} } \right)p_{r}^{z} \left( {1 - p_{r} } \right)^{LNR - z} ,$$
(2.30)
$$ E\left( Z \right) = p_{r} LNR, $$
(2.31)
$$ Var\left( Z \right) = p_{r} \left( {1 - p_{r} } \right)LNR, $$
(2.32)

where \( p_{r} \) is the single probability of one replication, and \( Z \) is a binomial random variable, i.e., \( Z = Bin\left( {LNR,p_{r} } \right) \).

Once the bacterium border is broken liberating the viruses, each one of the viruses has a probability (\( p_{i} \)) of infecting other new cells of the neighbourhood. The probability of infecting exactly \( y \) nucleus-capsids (\( P\left( {Y = y} \right) \)), as well as the average (\( E\left( Y \right) \)), and variance (\( Var\left( Y \right) \)) are given via Eqs. 2.332.35, respectively (Cortés et al. 2008):

$$ P\left( {Y = y} \right) = \left( {\begin{array}{*{20}c} {\left| {V\left( x \right)} \right|} \\ y \\ \end{array} } \right)p_{i}^{y} \left( {1 - p_{i} } \right)^{{\left| {V\left( x \right)} \right| - y}} ,$$
(2.33)
$$ E\left( Y \right) = p_{i} \left| {V\left( x \right)} \right|,$$
(2.34)
$$ Var\left( Y \right) = p_{i} \left( {1 - p_{i} } \right)\left| {V\left( x \right)} \right| ,$$
(2.35)

where \( \left| {V\left( x \right)} \right| \) is the feasible solution of the neighbourhood, \( Y \) is a binomial random variable representing the cells infected by the virus in the neighbourhood, i.e., \( Y = Bin\left( {\left| {V\left( x \right)} \right|,p_{i} } \right) \).

Each one of the infected cells in the clinical picture has a probability of developing antibodies against the infection based on a Bernoulli probability distribution (\( p_{an} :A\left( x \right) = Ber\left( {p_{an} } \right) \)). So, the total population of infected cells generating antibodies is characterised by a binomial distribution (\( p_{an} :A\left( {population} \right) = Bin\left( {n,p_{an} } \right) \)). The probability of finding exactly \( a \) immune cells (\( P\left( {A = a} \right) \)), as well as the average (\( E\left( A \right) \)), and variance (\( Var\left( A \right) \)) are given by Eqs. 2.362.38, respectively (Cortés et al. 2008):

$$ P\left( {A = a} \right) = \left( {\begin{array}{*{20}c} {\left| {V\left( x \right)} \right|} \\ a \\ \end{array} } \right)p_{an}^{a} \left( {1 - p_{an} } \right)^{{\left| {V\left( x \right)} \right| - a}} ,$$
(2.36)
$$ E\left( A \right) = p_{an} \left| {V\left( x \right)} \right| ,$$
(2.37)
$$ Var\left( A \right) = p_{an} \left( {1 - p_{an} } \right)\left| {V\left( x \right)} \right| ,$$
(2.38)

where \( a \) denotes the immune cell, and \( x \) is an infected cell.

In the case of the lysogenic replication, calculate the limit number of interaction (LIT) in a cell \( x \) via Eq. 2.39 (Cortés et al. 2008):

$$ LIT_{cell - x} = LIT^{0} \cdot \left( {\frac{{f\left( x \right) - f\left( {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{x} } \right)}}{{f\left( {\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{x} } \right)}}} \right) ,$$
(2.39)

where \( LIT^{0} \) is the initial value for LIT.

  • Step 5: Ending. The VS algorithm ended according to two criteria, i.e., the collapse and death of the organism, or the isolation of the virus.

3.4.2 Performance of VS

To test the proposed algorithm, a well-known NP-Compete problem, i.e., the Steiner problem, is adopted in (Cortés et al. 2008). Compared with TS and GA, VS clearly improves the results from GA and for several cases VS obtains better results than TS.

4 Conclusions

In this chapter, we introduced five bacteria inspired CI algorithms. They stem from two background: BFA, BCC algorithm an BCO algorithm are currently bred by the further understanding of bacterial foraging patterns, while SuA and VS algorithm are mainly motivated by the viral research. Although they are newly introduced CI method, we have witnessed the following rapid spreading of at least one of them, i.e., BFA:

First, several enhanced versions of BFA can be found in the literature as outlined below:

  • Adaptive BFA (Majhi et al. 2009; Sanyal et al. 2011; Sathya and Kayalvizhi 2011d; Panigrahi and Pandi 2009).

  • Amended BFA (Sathya and Kayalvizhi 2011a).

  • BFA with varying population (Li et al. 2010).

  • Fuzzy adaptive BFA (Venkaiah and Kumar 2011).

  • Fuzzy dominance based BFA (Panigrahi et al. 2010).

  • Hybrid BFA and differential evolution (Pandi et al. 2010).

  • Hybrid BFA and genetic algorithm (Nayak et al. 2012; Kim et al. 2007).

  • Hybrid BFA and particle swarm optimization (Hooshmand and Mohkami 2011; Saber 2012).

  • Hybrid BFA, differential evolution, and particle swarm optimization (Vaisakh et al. 2012).

  • Modified BFA (Verma et al. 2011; Sathya and Kayalvizhi 2011b; Hota et al. 2010; Deshpande et al. 2011; Biswas et al. 2010a, b).

  • Multi-colony BFA (Chen et al. 2010).

  • Multiobjective BFA (Panigrahi et al. 2011).

  • Oppositional based BFA (Mai and Ling 2011).

  • Other hybrid BFA (Lee and Lee 2012; Panda et al. 2011; Hooshmand et al. 2012; Rajni and Chana 2013).

  • Quantum inspired bacterial swarming optimization (Cao and Gao 2012).

  • Rule based BFA (Mishra et al. 2007).

  • Self-adaptation BFA (Su et al. 2010).

  • Simplified BFA (Muñoz et al. 2010).

  • Synergetic bacterial swarming optimization (Chatzis and Koukas 2011).

  • Velocity modulated BFA (Gollapudi et al. 2011).

Second, the BFA has also been successfully applied to a variety of optimization problems as listed below:

  • Circuit design optimization (Chatterjee et al. 2010).

  • Communication optimization (Su et al. 2010; Chen et al. 2010).

  • Data mining (Lee and Lee 2012).

  • Fuzzy system design optimization (Kamyab and Bahrololoum 2012).

  • Image processing (Verma et al. 2011, 2013; Maitra and Chatterjee 2008; Sanyal et al. 2011; Panda et al. 2011; Sathya and Kayalvizhi 2011a, b, c, d).

  • Inventory management (Deshpande et al. 2011).

  • Manufacturing cell formation (Nouri et al. 2010; Nouri and Hong 2012).

  • Motor control optimization (Bhushan and Singh 2011; Sakthivel and Subramanian 2012; Sakthivel et al. 2011).

  • Nonlinear system identification (Majhi and Panda 2010).

  • Power system optimization (Tang et al. 2006; Ulagammai et al. 2007; Mishra et al. 2007; Panigrahi and Pandi 2009; Pandi et al. 2010; Hota et al. 2010; Panigrahi et al. 2010; Ali and Abd-Elazim 2011; Tabatabaei and Vahidi 2011; Venkaiah and Kumar 2011; Panigrahi et al. 2011; Hooshmand and Mohkami 2011; Abd-Elazim and Ali 2012; Saber 2012; Hooshmand et al. 2012; Kumar and Jayabarathi 2012; Vaisakh et al. 2012).

  • Robot control optimization (Turduev et al. 2010; Supriyono and Tokhi 2012).

  • Scheduling optimization (Nayak et al. 2012; Vivekanandan and Ramyachitra 2012; Rajni and Chana 2013).

  • Stock market prediction (Majhi et al. 2009).

Interested readers are referred to them, together with several excellent reviews (e.g., Tang and Wu 2009; Boussaïd et al. 2013; Agrawal et al. 2011; Niu et al. 2010a, b), as a starting point for a further exploration and exploitation of these bacteria inspired algorithms.