Skip to content

An interface and implementation in C++ for running NEAT algorithm from python using shared library

License

Notifications You must be signed in to change notification settings

GWMCwing/NEAT-CPP-PY

Repository files navigation

NEAT-CPP-PY

Description

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.

Current Development

  • Verification on species handling implementation

Usage

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.

Road map

  • 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

Build

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

About

An interface and implementation in C++ for running NEAT algorithm from python using shared library

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published