DEAP / deap

Distributed Evolutionary Algorithms in Python
http://deap.readthedocs.org/
GNU Lesser General Public License v3.0
5.66k stars 1.11k forks source link

Feature Request: Graph Encoding #326

Open bionicles opened 5 years ago

bionicles commented 5 years ago

Hi,

Are you interested in AI? Many are!

One thing indicated by the Genetic Programming research is, Graphs are more efficient than Trees because they can reuse nodes. In a tree you might have the same exact input on many many leaves, each with 1 edge and one node. In a graph you could reduce that redundancy by almost half because many nodes could all just point 1 edge each to that particular input.

In addition to memory savings, it would be super cool to add graph evolution to DEAP because it could help us evolve computation graphs for Pytorch, Theano, Keras, Tensorflow, MxNet etc directly. Or we could evolve a developmental graph which builds neural graphs recursively!

Just imagine DEAP became state of the art in AI...

Would it be possible to add graph encoding / evaluation to DEAP?

nbro commented 3 years ago

@bionicles There are graph-based genetic programming approaches (such as Cartesian GP and even NEAT), so your idea of evolving graphs rather than trees is not novel, and we could already start from some existing approaches rather than inventing ours. Deap is good enough for tree-based GP, but it does not really support other GP approaches, which highly limits its applicability.