Optimization
From QERM Wiki
(Difference between revisions)
Revision as of 22:13, 28 May 2009
Evolutionary Algorithms
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.
Library | Description | Language | Notes |
---|---|---|---|
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 |
Linear Programming
There are many commercial packages, but here is a free option:
- lp_solve: Mixed Integer Linear Programming (MILP) solver
- Probably more?