Changelog

1.6 (Unreleased)

1.5 (6/7/2020)

New

  • A new UDA is introduced to solve symbolic regression problems. Its called moes (Multi-Objective Evolutionary Startegy) and completes the evolutionary approaches in dcgp which can now be selected to be memetic or not and single objective or multi-objective.

Changes

  • BREAKING: the API has been made uniform for the four UDAs: dcgpy.es4cgp, dcgpy.mes4cgp, dcgpy.moes4cgp, dcgpy.momes4cgp as well as the mutation mechanism. Named parameters have thus changed and default values too. Note that, for example, what was n_mut in some algos, is now max_mut.

  • The underlying computations of the symbolic regression optimization problem (UDP) is now performed by obake using a vectorized type. Speed improvements are observed of magnitudes between x4 and x100.

  • The problem on nans appearing and exceptions being thrown has been solved for dcgpy.symbolic_regression by guarding against symengine exceptions and by discarding zero columns and rows when inverting hessians for the Newton step of memetic algorithms.

  • The UDA dcgpy.es4cgp is no longer using a thread bfe to compute the loss. This avoids crashes when pythonic, non thread-safe kernels are used. A bfe can still be set by the user (deprecated in python) after the UDA has been instantiated.

  • Documentation has been improved and all tutorials and examples updated to the new API.