Here is the list of changes made to DEAP for the current release.
- 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 ofisDominated
. - 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 byPrimitiveTree.__str__
. Usestr
orprint
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
asdeap.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 tutoriallogging 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.
- 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>
- 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 includenumpy.copy()
operation in their operators. A tutorial on inheriting from numpy is on its way.