This is a NEAT implementation in C++ with Python interface, intended to be used for speed improvement over pure Python implementation.
This is repo is work in progress and under active development.
The implementation is based on the paper Evolving Neural Networks through Augmenting Topologies by Kenneth O. Stanley and Risto Miikkulainen.
Other languages support C++ binding is planned to be added in the future.
- Verification on species handling implementation
This project is still under development and is not ready for use.
- Currently C++ direct usage is supported.
- The implementation has been tested against the XOR problem, dynamic pole balancing problem is planned to be tested next.
- Python direct usage is expected to be completed in late July to late August 2023.
- C++ implementation
- Node class implementation
- Edge class implementation
- Genome class implementation
- Memory management test for above classes
- Species class implementation
- SpeciesHandler class implementation
- Memory management test for above classes
- Population class
- Memory management test for above classes
- Testing
- Test Handler class
- Basic XOR test
- Dynamic Pole Balancing problem test
- Python interface
- C API
- Python interface for Node class
- Python interface for Edge class
- Python interface for Genome class
- Python interface for SpeciesHandler class
- Python interface for Population class
- Pip package
- Documentation
- Examples
- Threading support
This project uses Makefile for building.
To build the project run make
in the root directory.
Language version used for development:
- python 3.9.5
- g++ C++17