Biogeography-Based Optimization Software

The MATLAB® files in this zip archive are m-files that can be used to experiment with BBO. The software is freely available for any purpose (it is on the Internet, after all) although I would of course appreciate an acknowledgment if you use it as part of a paper or presentation. The BBO home page is at http://embeddedlab.csuohio.edu/BBO. The original BBO paper is available at http://academic.csuohio.edu/simond/BBO.

The software can be run by typing the following MATLAB command:

>> BBO(@"function name");

where "function name" is the name of the m-file containing the specific function to minimize. Available functions include continuous and discrete versions of Ackley, Fletcher, Griewank, Penalty 1, Penalty 2, Quartic, Rastrigin, Rosenbrock, Schwefel 1.2, Schwefel 2.21, Schwefel 2.22, Schwefel 2.26, Sphere, and Step. For example, to use BBO to minimize the discrete version of the Quartic function, you would type:

>> BBO(@QuarticDisc);

To use BBO to minimize the continuous version of the Quartic function, you would type:

>> BBO(@QuarticCont);

If you want to write your own function to minimize, just use the function m-files as a template. You can change parameters like the generation limit, population size, problem dimension, modification probability, mutation rate, and elitism parameter by editing BBO.m after extraction from the zip archive. For the discrete benchmarks, the granularity, which determines how many bits are used for each domain dimension, can be set in the Init function in each function's m-file (e.g., QuarticDisc.m). I welcome additional benchmarks that can be added to the zip archive. My email address is listed on the BBO home page.


Last updated: April 29, 2009