Skip to content

Releases: darioizzo/dcgp

v1.6

07 Oct 13:14
40d8bad
Compare
Choose a tag to compare

Phenotype correction

New features

  • Phenotype correction implemented and exposed. Allows for the symbolic expression to represent only part of an otherwise fixed mathematical formula
  • Minor improvements over performances.

Code ameliorations

  • Small refactoring
  • Update to new obake
  • Small bug fixes

dcgp: Differentiable Cartesian Genetic Programming made easy.

06 May 16:23
d4fac62
Compare
Choose a tag to compare

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

  • The underlying computations of the symbolic regression optimizationlroblem (UDP)
    is now performed by obake using a vectorized type. Speed improvements are observed
    of orders between x4 and x100 depending on cases.

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

  • BREAKING: the API has been made uniform for the four UDAs: es4cgp, moes4cgp, mes4cgp, momes4cgp
    as well as the mutation mechanism. Named parameters have thus changed and default values too.

  • The UDA 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.

Pybind11

07 Apr 16:21
6acf3c3
Compare
Choose a tag to compare

In this release we did introduce a few bug fixes #59 #57 thanks to @hejung, but mostly we reworked the CI and python bindings as to make use of pybind11 and the new updated versions of the dependencies audi and pagmo.

The next release v1.5 will contain major changes to API and features released.

DCGP 1.4.2

17 Nov 21:36
Compare
Choose a tag to compare

In this point release we have been enabling serialization for the pagmo related objects that are now compatible with the parallelization schemes of the island model. Tutorials have been added to the docs as well as tests as usual.

DCGP 1.4.1

15 Nov 12:13
Compare
Choose a tag to compare

A small point release to fix the build of the pip packages due to the version number not being updated.

DCGP 1.4

15 Nov 10:17
2ea1296
Compare
Choose a tag to compare

This release come with various important new features on the Python side. Most importantly, kernels, kernel sets and expressions are now picklable, and thus they can now be used in conjunction with pagmo/pygmo's parallel constructs.

As a consequence of various internal changes that we had to implement, there is currently a performance regression with scalar kernels. We will be addressing the performance issues in future DCGP releases.

dcgp v1.3

08 Nov 08:53
fc8b69e
Compare
Choose a tag to compare

This is the largest dcgp release so far, coming after several months of hard work by the development team.

To start off, several changes have been done on dcgp dependencies. In particular:

  • audi v1.7 is now used and that brings in a more efficient generalized dual numbers algebra
  • symengine v0.5.0 is used and interfaced to dcgp to manipulate in c++ directly symbolic expressions represented by CGPs.
  • pagmo v2.11 is now a dependency and used to represents symbolic regression as an optimization problem.

Then, we have the first version of a new feature that allows symbolic regression tasks to be solved with a much improved API and algorithms. In particular this involves

  • a new pagmo UPDs (optimization problem) to represents symbolic regression tasks
  • 4 new pagmo UDAs (solution strategies) able to solve the UDP

To end, major changes in packaging and distribution are made

  • We dropped support for pip in WIndows, and only kept linux (for the time being)
  • We started and will mainly support conda as a package manager.
  • We started abandoning py27 support (still included in this release, but deprecated)

This first release of v1.3 will be followed shortly by one or more point releases aimed at fixing issues we already know of, but that are best tackled once an official release is available of the major version.

Update third party dependencies

08 May 19:20
Compare
Choose a tag to compare
  • This is a minor release including updates to soem of the third party dependencies we typically build our binaries with. In particular, linux binaries distributed via pip will now use boost 1.70 and Cmake 3.13.4

  • Also the python test suite has been improved

dCGPANN and general performance improvements

02 May 13:58
Compare
Choose a tag to compare

New Features

  • dCGP-ANNs are added to the available expressions
  • New kernels are available for CGP
  • CGP expressions can be evaluated in parallel
  • backpropagation is implemented in dCGPANNs

Bug Fixes

  • Protected division had several issues and is now working as expected
  • The dCGP headers have an improved usability in third party projects

Update of DCGP dependencies and PY36-37 packages

08 Jul 15:46
Compare
Choose a tag to compare

This release does not contain any new features, just a major update of the build system, and a refresh of a code that was two years old.

  • Now compatible with piranha 0.11
  • Now compatible with audi 1.5