Skip to content

Latest commit

 

History

History
73 lines (66 loc) · 4.21 KB

releases.rst

File metadata and controls

73 lines (66 loc) · 4.21 KB

Release Highlights

Here is the list of changes made to DEAP for the current release.

API enhancements

  • algorithms: Every algorithm now return the final population and a logbook containing the evolution statistical data.
  • base: Fitness objects are now hashable.
  • base: Added a dominates function to the Fitness, which can be replaced. This function is now used in most multi-objective specific selection methods instead of isDominated.
  • base: Fitness - implementation of a __repr__ method. (issue 20)
  • examples: Removed prefix (ga, gp, pso, etc.) from examples filename.
  • gp: Added pset to mutation operators that require it.
  • gp: Replaced the ~deap.gp.stringify function by PrimitiveTree.__str__. Use str or print on trees to read their code.
  • gp: Added an explicit description of the error when there are no available primitive/terminal of a certain type.
  • gp: Added symbolic regression benchmarks in benchmarks.gp.
  • gp: Removed the ephemeral generator.
  • gp: Added a ~deap.gp.PrimitiveTree.from_string function to ~deap.gp.PrimitiveTree.
  • gp: Added the possibility to name primitives added to a PrimitiveSet in ~deap.gp.PrimitiveSet.addPrimitive.
  • gp: Added object oriented inheritance to strongly typed genetic programming.
  • gp: Replaced ~deap.gp.evaluate and ~deap.gp.lambdify by a single function ~deap.gp.compile.
  • gp: Replaced ~deap.gp.lambdifyADF by ~deap.gp.compileADF.
  • gp: New ~deap.gp.graph function that returns a list of nodes, edges and a labels dictionnary that can then be feeded directly to networkx to draw the tree.
  • gp: Renamed deap.gp.genRamped as deap.gp.genHalfAndHalf.
  • gp: Merged ~deap.gp.staticDepthLimit and ~deap.gp.staticSizeLimit in a single function ~deap.gp.staticLimit which takes a key function in argument than can be return the height, the size or whatever attribute the tree should be limited on.
  • tools: Revised the ~deap.tools.HallOfFame to include only unique individuals.
  • tools: Changed the way statistics are computed. See the ~deap.tools.Statistics and ~deap.tools.MultiStatistics documentation for more details and the tutorial logging statistics <tutorials/basic/part3> (issue 19).
  • tools: Replaced the EvolutionLogger by ~deap.tools.Logbook.
  • tools: Removed ~deap.tools.Checkpoint class since it was more trivial to do simple checkpointing than using the class. The documentation now includes an example on how to do checkpointing without Checkpoint.
  • tools: Reorganize the operators in submodule, tools now being a package.
  • tools: Implementation of the logarithmic non-dominated sort by Fortin et al. (2013), available under the name ~deap.tools.sortLogNondominated.
  • tools: Mutation operators can now take either a value or a sequence of values as long as the individual as parameters (low, up, sigma, etc.).
  • tools: Removed DTM from the sources.
  • tools: Removed the cTools module. It was not properly maintained and rarely used.
  • tools: Renamed ~deap.tools.cxTwoPoints as ~deap.tools.cxTwoPoint
  • tools: Renamed ~deap.tools.cxESTwoPoints as ~deap.tools.cxESTwoPoint
  • tools: Bounds as well as some other attribute related parameters now accept iterables or values as argument in crossovers and mutations.

Documentation enhancements

  • Major overhaul of the documentation structure.
  • Tutorial are now decomposed in two categories: basic and advanced.
  • New tutorial on logging statistics <tutorials/basic/part3>
  • New tutorial on checkpointing <tutorials/advanced/checkpoint>
  • New tutorial on inheriting from Numpy <tutorials/advanced/numpy>

Bug fixes

  • creator: Issue 23: error in creator when using unicode source.
  • creator: create does not handle proper slicing of created classes inheriting from numpy.ndarray anymore. This was bug prone and extremely hard to maintain. Users are now requested to include numpy.copy() operation in their operators. A tutorial on inheriting from numpy is on its way.