Genetic Algorithms and multi-objectives optimization on PYTHON : libraries/tools to use?

Question:

I am scanning the internet for libraries available to use GA with potential development for multi-objective algorithms like NSGAII for Python. Do you have any suggestion?

Here is what I have so far:

  1. Pyevolve : Well documented but doesn’t include multi objective
  2. Pygene : Doesn’t seem to include multi objective
  3. deap : Seems well documented, includes multi objective
  4. inspyred: seems ok-documented, includes multi objective

The question is not necessarily about which one is better but more about the features of these libraries and the possibility to switch easily from single to multi-objective optimization.

Thank you

Asked By: Serge

||

Answers:

Pybrain seems to have GA and multiobjective GA:

http://pybrain.org/docs/api/optimization/optimization.html?highlight=genetic#population-based

Still seems to be a bit basic. I didn’t try it so I can’t tell you how good it is.

Answered By: Imanol Luengo

Disclosure: I am of one of the developers of DEAP.

DEAP is the most actively developed project amongst the ones mentioned. It has an active mailing-list, which is an interesting feature if you need help at some point. The class creation which is unique to DEAP makes switching from single to multiple objectives really easy. It comes with multiple examples, including examples of multiobjective genetic algorithms.

It is also compatible with both Python 2 and 3, while some other frameworks only support Python 2. Finally, while it is written in pure Python, we will always have performances in mind, so it is quite fast. Timing of the different examples are available at http://deap.gel.ulaval.ca/speed/.

Answered By: CmdNtrf