Revision as of 22:13, 28 May 2009
Evolutionary algorithms are an optimization method based on biological evolution. This included genetic algorithms, differential evolution, particle swarm optimization, and more.
Here is a table of some of the free libraries I found in my search. There is currently a Java bias in the list.
|EvA2||Comprehensive heuristic optimization framework with emphasis on Evolutionary Algorithms, including simulated annealing, genetic algorithms, particle swarm optimization, cluster-based niching, and supports multi-objective optimization and finding multiple solutions||Java||Includes GUI and API, recommended|
|JGAP||Genetic Algorithms and Genetic Programming framework||Java||Lots of documentation, but I had trouble getting good results with it, also has clunky API|
|JCell||Framework for working mainly with cellular genetic algorithms (cGAs), but also it has implemented steady-state GAs, generational GAs, and distributed GAs||Java|
|jMetal||Metaheuristic Algorithms in Java: aimed at the development, experimentation, and study of metaheuristics for solving multi-objective optimization problems, includes many algorithms||Java|
|Opt4J||Framework currently includes a multi-objective Evolutionary Algorithm, a multi-objective Differential Evolution, a multi-objective Particle Swarm Optimizer, and a single-objective Simulated Annealing||Java|
There are many commercial packages, but here is a free option:
- lp_solve: Mixed Integer Linear Programming (MILP) solver
- Probably more?