Skip to main content

Multi-Gene Genetic Programming for system identification and regression

Project description

MGGP (Multigene Genetic Programming)

Version License

A flexible and extensible implementation of Multigene Genetic Programming (MGGP) focused on system identification and symbolic modeling, supporting:

  • Regression (static and dynamic systems)
  • Classification tasks
  • Dynamic models in NARX and FIR formulations
  • SISO, MISO, and MIMO system configurations

📦 Version: v0.0.3 (Latest Release)

This version introduces important improvements in modeling capabilities, code clarity, and project structure, moving the project closer to a fully packaged Python library.

🚀 What's new?

  • Improved readability of Free-Run and Multi-Shooting (MShooting) implementations

    • Clearer iteration flow
    • Explicit batch handling in MShooting
    • Consistent behavior across SISO, MISO, and MIMO
  • Support for current input term u[k]
    Previously, models only considered delayed inputs (u[k-1], ..., u[k-lagMax]).
    Including u[k] significantly enhances the expressive power of the identified models.

  • Advancements toward packaging as a Python library
    Internal refactoring and structural improvements preparing for future PyPI release.

  • Improved symbolic simplification for SISO models
    Cleaner and more interpretable final equations.

  • General code cleanup and notebook reorganization


🧠 Core Features

  • Symbolic regression via Multigene Genetic Programming
  • Support for dynamic system identification (NARX / FIR)
  • Native handling of:
    • SISO (Single Input Single Output)
    • MISO (Multiple Input Single Output)
    • MIMO (Multiple Input Multiple Output)
  • Free-run simulation and multi-shooting training strategies
  • Interpretable model structures (explicit equations)

🚀 Quick Start

Before start to run any notebook, run the code below to install the mggp as a library:

pip install -e .

otherwise, you'll need use:

src.mggp import MGGP

Check out the example notebook to get started:

📓 01_MGGP_Regression.ipynb - Demonstrates how to configure and use MGGP for Regression problems, and

📓 01_MGGP_Classifier.ipynb - Demonstrates how to configure and use MGGP for Classification problems.

📋 Requirements

The requirements are descript in the requirements.txt

This implementation is based on the MGGP methodology described in the following papers:

Foundational Works

Multi-Gene Genetic Programming for Nonlinear MIMO Modeling of F16 Aircraft Ground Vibrations

DOS SANTOS, Rafael Ávila et al. Multi-Gene Genetic Programming para Modelagem MIMO Nao Linear das Vibraçoes de uma Aeronave F16 no Solo.*

📄 Download PDF

A Novel MIMO Multi-Gene Genetic Programming Approach for Interpretable NARX Models: an application to vehicle state estimation

HENRIQUE GROENNER BARBOSA, Bruno et al. A Novel MIMO Multi-Gene Genetic Programming Approach for Interpretable NARX Models: an application to vehicle state estimation. Henrique and Ávila Santos, Rafael and Correa Victorino, Alessandro and Askari, Hassan and Xu, Nan, A Novel MIMO Multi-Gene Genetic Programming Approach for Interpretable NARX Models: an application to vehicle state estimation.*

📄 Download PDF

🤝 Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mggpy-0.0.3.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mggpy-0.0.3-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file mggpy-0.0.3.tar.gz.

File metadata

  • Download URL: mggpy-0.0.3.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for mggpy-0.0.3.tar.gz
Algorithm Hash digest
SHA256 5bf081952e90c5de604c50396b607a73fba719cf47ac200299c1ef4056164ef2
MD5 38c6df0b193111b2cf631ed036d9584f
BLAKE2b-256 76623a6aaa62e5c12de458e212366b21522701f8aebdf670a05d34b5bf00b675

See more details on using hashes here.

File details

Details for the file mggpy-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: mggpy-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for mggpy-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2e55c154650bf2ef7f73ecbf0c6085a4e9caf80d957334e9b871c1a0a8cb4d69
MD5 68bc64d1765ac43a4e71122e4f0adb78
BLAKE2b-256 71b1134f7c131c352739b85fe975924e8f810236f27ca04fafd8b8defd9e1e51

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page