Biogeography-based Optimization
   HOME

TheInfoList



OR:

Biogeography-based optimization (BBO) is an
evolutionary algorithm In computational intelligence (CI), an evolutionary algorithm (EA) is a subset of evolutionary computation, a generic population-based metaheuristic optimization algorithm. An EA uses mechanisms inspired by biological evolution, such as reproduc ...
(EA) that optimizes a
function Function or functionality may refer to: Computing * Function key, a type of key on computer keyboards * Function model, a structured representation of processes in a system * Function object or functor or functionoid, a concept of object-oriente ...
by
stochastic Stochastic (, ) refers to the property of being well described by a random probability distribution. Although stochasticity and randomness are distinct in that the former refers to a modeling approach and the latter refers to phenomena themselv ...
ally and iteratively improving
candidate solution In mathematical optimization, a feasible region, feasible set, search space, or solution space is the set of all possible points (sets of values of the choice variables) of an optimization problem that satisfy the problem's constraints, potent ...
s with regard to a given measure of quality, or
fitness function {{no footnotes, date=May 2015 A fitness function is a particular type of objective function that is used to summarise, as a single figure of merit, how close a given design solution is to achieving the set aims. Fitness functions are used in genetic ...
. BBO belongs to the class of
metaheuristic In computer science and mathematical optimization, a metaheuristic is a higher-level procedure or heuristic designed to find, generate, or select a heuristic (partial search algorithm) that may provide a sufficiently good solution to an optimizati ...
s since it includes many variations, and since it does not make any assumptions about the problem and can therefore be applied to a wide class of problems. BBO is typically used to optimize multidimensional real-valued functions, but it does not use the
gradient In vector calculus, the gradient of a scalar-valued differentiable function of several variables is the vector field (or vector-valued function) \nabla f whose value at a point p is the "direction and rate of fastest increase". If the gradi ...
of the function, which means that it does not require the function to be
differentiable In mathematics, a differentiable function of one real variable is a function whose derivative exists at each point in its domain. In other words, the graph of a differentiable function has a non-vertical tangent line at each interior point in its ...
as required by classic optimization methods such as
gradient descent In mathematics, gradient descent (also often called steepest descent) is a first-order iterative optimization algorithm for finding a local minimum of a differentiable function. The idea is to take repeated steps in the opposite direction of the ...
and quasi-newton methods. BBO can therefore be used on discontinuous functions. BBO optimizes a problem by maintaining a population of candidate solutions, and creating new candidate solutions by combining existing ones according to a simple formula. In this way the
objective function In mathematical optimization and decision theory, a loss function or cost function (sometimes also called an error function) is a function that maps an event or values of one or more variables onto a real number intuitively representing some "cos ...
is treated as a black box that merely provides a measure of quality given a candidate solution, and the function's gradient is not needed. Like many EAs, BBO was motivated by a natural process; in particular, BBO was motivated by
biogeography Biogeography is the study of the distribution of species and ecosystems in geographic space and through geological time. Organisms and biological communities often vary in a regular fashion along geographic gradients of latitude, elevation, ...
, which is the study of the distribution of biological species through time and space. BBO was originally introduced b
Dan Simon
in 2008.


Underlying principles

Mathematical models of
biogeography Biogeography is the study of the distribution of species and ecosystems in geographic space and through geological time. Organisms and biological communities often vary in a regular fashion along geographic gradients of latitude, elevation, ...
describe
speciation Speciation is the evolutionary process by which populations evolve to become distinct species. The biologist Orator F. Cook coined the term in 1906 for cladogenesis, the splitting of lineages, as opposed to anagenesis, phyletic evolution within ...
(the evolution of new
species In biology, a species is the basic unit of classification and a taxonomic rank of an organism, as well as a unit of biodiversity. A species is often defined as the largest group of organisms in which any two individuals of the appropriate s ...
), the
migration Migration, migratory, or migrate may refer to: Human migration * Human migration, physical movement by humans from one region to another ** International migration, when peoples cross state boundaries and stay in the host state for some minimum le ...
of species (animals, fish, birds, or insects) between islands, and the
extinction Extinction is the termination of a kind of organism or of a group of kinds (taxon), usually a species. The moment of extinction is generally considered to be the death of the last individual of the species, although the capacity to breed and ...
of species. Islands that are friendly to life are said to have a high habitat suitability index (HSI). Features that correlate with HSI include rainfall, vegetative diversity, topographic diversity, land area, temperature, and others. The features that determine are called suitability index variables (SIVs). In terms of habitability, SIVs are the independent variables and HSI is the dependent variable. Islands with a high HSI can support many species, and islands with a low HSI can support only a few species. Islands with a high HSI have many species that
emigrate Emigration is the act of leaving a resident country or place of residence with the intent to settle elsewhere (to permanently leave a country). Conversely, immigration describes the movement of people into one country from another (to permanentl ...
to nearby habitats because of the large populations and the large numbers of species that they host. Note that emigration from an island with a high HSI does not occur because species ''want'' to leave their home; after all, their home island is an attractive place to live. Emigration occurs because of the accumulation of random effects on a large number of species with large populations. Emigration occurs as animals ride
flotsam In maritime law, flotsam'','' jetsam'','' lagan'','' and derelict are specific kinds of shipwreck. The words have specific nautical meanings, with legal consequences in the law of admiralty and marine salvage. A shipwreck is defined as the rema ...
, swim, fly, or ride the wind to neighboring islands. When a species emigrates from an island, it does not mean that the species completely disappears from its original island; only a few representatives emigrate, so an emigrating species remains present on its original island while at the same time migrating to a neighboring island. However, in BBO it is assumed that emigration from an island results in extinction from that island. This assumption is necessary in BBO because species represent the independent variables of a function, and each island represents a candidate solution to a function optimization problem. Islands with a high HSI not only have a high emigration rate, but they also have a low immigration rate because they already support many species. Species that migrate to such islands will tend to die in spite of the island's high HSI, because there is too much competition for resources from other species. Islands with a low HSI have a high immigration rate because of their low populations. Again, this is not because species ''want'' to immigrate to such islands; after all, these islands are undesirable places to live. The reason that immigration occurs to these islands is because there is a lot of room for additional species. Whether or not the immigrating species can survive in its new home, and for how long, is another question. However,
species diversity Species diversity is the number of different species that are represented in a given community (a dataset). The effective number of species refers to the number of equally abundant species needed to obtain the same mean proportional species abundan ...
is correlated with HSI, so when more species arrive at a low HSI island, the island's HSI will tend to increase. The figure on the right illustrates an island migration model. The immigration rate \lambda and the emigration rate \mu are functions of the number of species on the island. The maximum possible immigration rate I occurs when there are zero species on the island. As the number of species increases, the island becomes more crowded, fewer species are able to survive immigration, and the immigration rate decreases. The largest possible number of species that the habitat can support is S_, at which point the immigration rate is zero. If there are no species on the island, then the emigration rate is zero. As the number of species on the island increases, it becomes more crowded, more species representatives are able to leave the island, and the emigration rate increases. When the island contains the largest number of possible species S_, the emigration rate reaches its maximum possible value E. In BBO, \lambda_k is the probability that a given independent variable in the k-th candidate solution will be replaced; that is, \lambda_k is the immigration probability of x_k. If an independent variable is to be replaced, then the emigrating candidate solution is chosen with a probability that is proportional to the emigration probability \mu_k. This is usually performed using
roulette wheel selection Fitness proportionate selection, also known as roulette wheel selection, is a genetic operator used in genetic algorithms for selecting potentially useful solutions for recombination. In fitness proportionate selection, as in all selection method ...
. :: \text(x_j)\text = \frac for j=1,\cdots,N, where N is the number of candidate solutions in the population.


Algorithm

Like most other EAs, BBO includes
mutation In biology, a mutation is an alteration in the nucleic acid sequence of the genome of an organism, virus, or extrachromosomal DNA. Viral genomes contain either DNA or RNA. Mutations result from errors during DNA or viral replication, mi ...
. A basic BBO algorithm with a population size of N for optimizing an n-dimensional function can be described as follows. Initialize a population of N candidate solutions \ While not(termination criterion) For each x_k, set emigration probability \mu_k \propto fitness of x_k, do with \mu_k \in ,1/math> For each x_k, set immigration probability \lambda_k = 1 - \mu_k do \ \leftarrow \ For each individual z_k (k=1,\cdots,N) do For each independent variable index s \in ,n do Use \lambda_k to probabilistically decide whether to immigrate to z_k If immigrating then Use \ to probabilistically select the emigrating individual x_j z_k(s) \leftarrow x_j(s) End if Next independent variable index: s \leftarrow s+1 Probabilistically mutate z_k Next individual: k \leftarrow k+1 \ \leftarrow \ Next generation


Discussion of the BBO algorithm

* The population size N is a tuning parameter. If N is too small or too large, then the optimization performance of BBO will suffer. Typical implementations of BBO use a value of N somewhere between 20 and 200. * The initial population of candidate solutions \_^N is usually generated randomly. However, it could be generated in a problem-dependent way based on some reasonable guesses or previously-known good solutions to the optimization problem. * The termination criterion is problem-dependent, like in any other EA. In most applications the termination criterion is a generation count limit or a function evaluation limit (that is, how often the objective function is evaluated). * \ is a temporary population so that all emigrating variables can originate from the population that is in place at the beginning of the generation, which is \ .


Algorithmic variations

Many variations have been proposed to the basic BBO algorithm, among which are the following. * Elitism is implemented in most EAs to make sure that the best candidate solution is not lost from one generation to the next. This can be implemented in a variety of ways, but one common way is to save the best candidate solutions at the beginning of each generation in a set \mathbb E; then replace the worst candidate solutions with \mathbb E at the end of the generation, after migration and mutation have completed. The size of \mathbb E is a tuning parameter, but \mathbb E typically includes the best two individuals. Elitism was originally proposed for
genetic algorithm In computer science and operations research, a genetic algorithm (GA) is a metaheuristic inspired by the process of natural selection that belongs to the larger class of evolutionary algorithms (EA). Genetic algorithms are commonly used to gene ...
s by DeJong. Elitism can make a significant difference in the performance of BBO, and is highly recommended. * Duplicate replacement is often implemented in BBO. This is a procedure at the end of each generation that replaces duplicate individuals in the population. Scanning for duplicates can be computationally intensive because it is an O(N^2) operation, so it is often performed only every few generations, rather than every generation. * Blending can be implemented in BBO. With blending, instead of replacing z_k(s) in an immigrating candidate solution with x_j(s) from the emigrating candidate solution, z_k(s) is set equal to a linear combination of its original value and x_j(s): :: z_k(s) \leftarrow \alpha z_k(s) + (1 - \alpha) x_j(s) : where \alpha \in
, 1 The comma is a punctuation mark that appears in several variants in different languages. It has the same shape as an apostrophe or single closing quotation mark () in many typefaces, but it differs from them in being placed on the baseline (t ...
, and \alpha = 0 corresponds to standard migration as shown in the algorithm above. Blended BBO is based on blended crossover in genetic algorithms, and has been shown to outperform standard BBO. * The BBO algorithm presented above is called partial immigration-based BBO because the immigrating candidate solution is selected before the emigrating candidate solution is selected, and migration for each independent variable in the immigrating candidate solution is performed independently of all other independent variables. Other approaches for selecting the immigrating and emigrating candidate solutions have also been proposed. * The migration curves in the above figure are linear, but nonlinear migration curves often give better performance.


Hybridization

* BBO has been hybridized with several other EAs, including particle swarm optimization,
differential evolution In evolutionary computation, differential evolution (DE) is a method that optimizes a problem by iteratively trying to improve a candidate solution with regard to a given measure of quality. Such methods are commonly known as metaheuristics as ...
,
evolution strategy In computer science, an evolution strategy (ES) is an optimization technique based on ideas of evolution. It belongs to the general class of evolutionary computation or artificial evolution methodologies. History The 'evolution strategy' optimizat ...
,opposition-based computing
case-based reasoning In artificial intelligence and philosophy, case-based reasoning (CBR), broadly construed, is the process of solving new problems based on the solutions of similar past problems. In everyday life, an auto mechanic who fixes an engine by recalli ...
,
artificial bee colony algorithm In computer science and operations research, the artificial bee colony algorithm (ABC) is an optimization algorithm based on the intelligent foraging behaviour of honey bee swarm, proposed by Derviş Karaboğa (Erciyes University) in 2005. Alg ...
, bacterial foraging optimization,
harmony search This is a chronologically ordered list of metaphor-based metaheuristics and swarm intelligence algorithms, sorted by decade of proposal. Algorithms 1980s-1990s Simulated annealing (Kirkpatrick et al., 1983) Simulated annealing is a pr ...
, and the
simplex algorithm In mathematical optimization, Dantzig's simplex algorithm (or simplex method) is a popular algorithm for linear programming. The name of the algorithm is derived from the concept of a simplex and was suggested by T. S. Motzkin. Simplices are n ...
. * BBO can be combined with local search to create a
memetic algorithm A memetic algorithm (MA) in computer science and operations research, is an extension of the traditional genetic algorithm. It may provide a sufficiently good solution to an optimization problem. It uses a local search technique to reduce the like ...
that performs much better than BBO alone.


Software


MATLAB

* The following MATLAB code gives a BBO implementation for minimizing the 20-dimensional
Rosenbrock function In mathematical optimization, the Rosenbrock function is a non- convex function, introduced by Howard H. Rosenbrock in 1960, which is used as a performance test problem for optimization algorithms. It is also known as Rosenbrock's valley or Ros ...
. Note that the following code is very basic, although it does include elitism. A serious BBO implementation should include some of the variations discussed above, such as duplicate replacement, blending, nonlinear migration, and local optimization. function BBO % Biogeography-based optimization (BBO) to minimize a continuous function % This program was tested with MATLAB R2012b GenerationLimit = 50; % generation count limit PopulationSize = 50; % population size ProblemDimension = 20; % number of variables in each solution (i.e., problem dimension) MutationProbability = 0.04; % mutation probability per solution per independent variable NumberOfElites = 2; % how many of the best solutions to keep from one generation to the next MinDomain = -2.048; % lower bound of each element of the function domain MaxDomain = +2.048; % upper bound of each element of the function domain % Initialize the population rng(round(sum(100*clock))); % initialize the random number generator x = zeros(PopulationSize, ProblemDimension); % allocate memory for the population for index = 1 : PopulationSize % randomly initialize the population x(index, :) = MinDomain + (MaxDomain - MinDomain) * rand(1, ProblemDimension); end Cost = RosenbrockCost(x); % compute the cost of each individual , Cost= PopulationSort(x, Cost); % sort the population from best to worst MinimumCost = zeros(GenerationLimit, 1); % allocate memory MinimumCost(1) = Cost(1); % save the best cost at each generation in the MinimumCost array disp( Generation 0 min cost = ', num2str(MinimumCost(1)); z = zeros(PopulationSize, ProblemDimension); % allocate memory for the temporary population % Compute migration rates, assuming the population is sorted from most fit to least fit mu = (PopulationSize + 1 - (1:PopulationSize)) / (PopulationSize + 1); % emigration rate lambda = 1 - mu; % immigration rate for Generation = 1 : GenerationLimit % Save the best solutions and costs in the elite arrays EliteSolutions = x(1 : NumberOfElites, :); EliteCosts = Cost(1 : NumberOfElites); % Use migration rates to decide how much information to share between solutions for k = 1 : PopulationSize % Probabilistic migration to the k-th solution for j = 1 : ProblemDimension if rand < lambda(k) % Should we immigrate? % Yes - Pick a solution from which to emigrate (roulette wheel selection) RandomNum = rand * sum(mu); Select = mu(1); SelectIndex = 1; while (RandomNum > Select) && (SelectIndex < PopulationSize) SelectIndex = SelectIndex + 1; Select = Select + mu(SelectIndex); end z(k, j) = x(SelectIndex, j); % this is the migration step else z(k, j) = x(k, j); % no migration for this independent variable end end end % Mutation for k = 1 : PopulationSize for ParameterIndex = 1 : ProblemDimension if rand < MutationProbability z(k, ParameterIndex) = MinDomain + (MaxDomain - MinDomain) * rand; end end end x = z; % replace the solutions with their new migrated and mutated versions Cost = RosenbrockCost(x); % calculate cost , Cost= PopulationSort(x, Cost); % sort the population and costs from best to worst for k = 1 : NumberOfElites % replace the worst individuals with the previous generation's elites x(PopulationSize-k+1, :) = EliteSolutions(k, :); Cost(PopulationSize-k+1) = EliteCosts(k); end , Cost= PopulationSort(x, Cost); % sort the population and costs from best to worst MinimumCost(Generation+1) = Cost(1); disp( Generation ', num2str(Generation), ' min cost = ', num2str(MinimumCost(Generation+1)) end % Wrap it up by displaying the best solution and by plotting the results disp( Best solution found = ', num2str(x(1, :)) close all plot(0:GenerationLimit, MinimumCost); xlabel('Generation') ylabel('Minimum Cost') return %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function , Cost= PopulationSort(x, Cost) % Sort the population and costs from best to worst ost, indices= sort(Cost, 'ascend'); x = x(indices, :); return %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function ost= RosenbrockCost(x) % Compute the Rosenbrock function value of each element in x NumberOfDimensions = size(x, 2); Cost = zeros(size(x, 1), 1); % allocate memory for the Cost array for PopulationIndex = 1 : length(x) Cost(PopulationIndex) = 0; for i = 1 : NumberOfDimensions-1 Temp1 = x(PopulationIndex, i); Temp2 = x(PopulationIndex, i+1); Cost(PopulationIndex) = Cost(PopulationIndex) + 100 * (Temp2 - Temp1^2)^2 + (Temp1 - 1)^2; end end return


R

* "bbo: Biogeography-Based Optimization" is an R package for continuous BBO.


Extensions

BBO has been extended to noisy functions (that is, functions whose fitness evaluation is corrupted by noise); constrained functions; combinatorial functions; and multi-objective functions. Moreover, a micro biogeography-inspired multi-objective optimization algorithm (μBiMO) was implemented: it is suitable for solving multi-objective optimisations in the field of industrial design because it is based on a small number of islands (hence the name μBiMO), i.e. few objective function calls are required.


Mathematical analyses

BBO has been mathematically analyzed using Markov models and dynamic system models.


Applications

Scholars have applied BBO into various academic and industrial applications. They found BBO performed better than state-of-the-art global optimization methods. For example, Wang et al. proved BBO performed equal performance with FSCABC but with simpler codes. Yang et al. showed BBO was superior to GA, PSO, and ABC.


References


External links


BBO Home Page
{{DEFAULTSORT:biogeography-based optimization Nature-inspired metaheuristics