Metadata-Version: 2.1
Name: hal-cgp
Version: 0.2.0
Summary: Cartesian genetic programming (CGP) in pure Python.
Home-page: https://happy-algorithms-league.github.io/hal-cgp/
Author: Happy Algorithms League
Maintainer: Jakob Jordan, Maximilian Schmidt
License: GPLv3
Description: ========
         HAL-CGP
        ========
        
        
        .. image:: https://badge.fury.io/py/hal-cgp.svg
            :target: https://badge.fury.io/py/hal-cgp
        .. image:: https://img.shields.io/badge/python-3.6-red.svg
        	   :target: https://www.python.org/downloads/release/python-369/
        .. image:: https://img.shields.io/badge/python-3.7-red.svg
        	   :target: https://www.python.org/
        .. image:: https://img.shields.io/badge/python-3.8-red.svg
        	   :target: https://www.python.org/
        .. image:: https://img.shields.io/badge/License-GPLv3-blue.svg
        	   :target: https://www.gnu.org/licenses/old-licenses/gpl-3.0.html
        .. image:: https://travis-ci.org/Happy-Algorithms-League/hal-cgp.svg?branch=master
        	   :target: https://travis-ci.org/Happy-Algorithms-League/hal-cgp
        .. image:: http://www.mypy-lang.org/static/mypy_badge.svg
        	   :target: http://mypy-lang.org/
        .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
        	   :target: https://github.com/psf/black
        .. image:: https://coveralls.io/repos/github/Happy-Algorithms-League/python-gp/badge.svg?branch=master
        	   :target: https://coveralls.io/github/Happy-Algorithms-League/python-gp?branch=master
        .. image:: https://readthedocs.org/projects/ansicolortags/badge/?version=latest
        	   :target: https://happy-algorithms-league.github.io/hal-cgp/
        
        Cartesian genetic programming (CGP) in pure Python.
        
        hal-cgp is an extensible pure Python library implementing Cartesian genetic programming to represent, mutate and evaluate populations of individuals encoding symbolic expressions targeting applications with computationally expensive fitness evaluations. It supports the translation from a CGP genotype, a two-dimensional Cartesian graph, into the corresponding phenotype, a computational graph implementing a particular mathematical expression. These computational graphs can be
        exported as pure Python functions, NumPy-compatible functions (Walt et al., 2011), SymPy expressions (Meurer et al., 2017) or PyTorch modules (Paszke et al., 2019).
        
        The library implements a mu + lambda evolution strategy (Beyer and Schwefel, 2002) to evolve a population of individuals to optimize an objective function.
        
        .. image-start
           
        .. image:: ./cgp-sketch.png
           :width: 600
           :alt: CGP Sketch
        	 
        Figure from Jordan, Schmidt, Senn & Petrovici, "Evolving to learn: discovering interpretable plasticity rules for spiking networks", arxiv:2005.14149_.
        
        .. _arxiv:2005.14149: https://arxiv.org/abs/2005.14149
        
        .. image-end
        
        
Keywords: cartesian genetic programming,evolutionary algorithm,symbolic regression
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Scientific/Engineering
Classifier: Typing :: Typed
Requires-Python: >=3.6, <4
Description-Content-Type: text/x-rst
Provides-Extra: matplotlib
Provides-Extra: extra
Provides-Extra: scipy
Provides-Extra: sympy
Provides-Extra: torch
Provides-Extra: dev
Provides-Extra: doc
Provides-Extra: all
