Bacterial feeding optimization algorithm

Bacterial feeding optimization algorithm

The bacterial feeding optimization algorithm is inspired by the group foraging behavior of bacteria such as E. coli and M. xanthus. Specifically, the bacterial feeding optimization algorithm is inspired by the chemotactic behavior of bacteria that will sense chemical gradients in the environment (such as nutrients) and move toward or away from specific cues.

Bacteria perceive the direction of food based on the gradients of chemicals in their environment. Bacteria secrete attractant and repellent chemicals into the environment and can perceive the same. Using mechanisms of locomotion (such as flagella), bacteria can move through their environment, sometimes moving in a chaotic (tumbling and spinning) fashion, and other times moving in a directed fashion, which may be called swimming. 

Bacterial cells are treated as agents in an environment, using their perception of food and other cells as motivation to move, and stochastic tumbling and swimming as movement to relocate. Depending on cell-cell interactions, cells may invade a food source and/or may aggressively repel or ignore each other.

The information processing strategy of the bacterial feeding optimization algorithm is to allow cells to pullulate stochastically and collectively towards optima. This is achieved through a series of three processes on a simulated cell population: 1) Chemotaxis: cell cost is reduced by proximity to other cells and cells move one by one along the cost surface, 2) Reproduction: only cells that have performed well during their lifetime can contribute to the next generation, and 3) Elimination-dispersal: cells are discarded and new random samples are inserted with low probability.

the pseudocode following describes the algorithm for minimizing a cost function.

The next algorithm provides the pseudocode for bacterial chemotaxis and behavior for the bacterial feeding optimization algorithm.

The cost of a bacterium is reduced by its interaction with other cells. This interaction function (g()) is calculated as follows:

where cell_k is a given cell, d_attr and w_attr are attraction coefficients, h_repel and w_repel are repulsion coefficients, S is the number of cells in the population, P is the number of dimensions on a given cell position vector .

The remaining parameters of the algorithm are as follows Cell_s_num is the number of cells maintained in the population, N_ed is the number of elimination-dispersion steps, N_re is the number of reproduction steps, N_c is the number of chemotaxis steps, N_s is the number of swimming steps for a given cell, Stepsize is a random direction vector with the same number of dimensions as the problem space with each value in [-1; 1], and P_ed is the probability that a cell is subject to elimination and dispersal.

Given the algorithm's loops, it can be configured in many ways to achieve different search behaviors. It is common to have a large number of chemotaxis iterations and a small number of the other iterations. The default coefficients for swarming behavior (cell-cell interactions) are d_attract = 0.1, w_attract = 0.2, h_repellant = d_attract and w_repellant = 10. The step size is usually a small fraction of l search space, such as 0.1.

During reproduction, the half of the population with a low health metric is usually eliminated and two copies of each member of the first half (high health) of the population are retained. The probability of elimination and dispersion (p_ed) is generally defined as being quite high, such as 0.25.

EN
FR
FR
EN
ES
Exit mobile version