Skip to main content

Track Network Planning using NEAT-based Evolution of Graphs

Project description

NEAT-TNP: Track Network Planning using NEAT-based Evolution of Graphs

This repository contains

  • A generalization of the NEAT genetic algorithm that synthesizes its core mechanism of evolving graphs, without knowledge about neural networks (neat_core.py)
  • A re-implementation of the original NEAT use case on top of the generalized algorithm (neat.py)
  • A new use case of heuristically finding spatial networks, applied to the track planning of a lunar cargo transport system (neat_tnp.py)
  • A high-performance implementation of the TNP use case, written in Rust

A set of minimal examples can be found in examples.ipynb.

Installation

pip install neat_tnp

Or to build the wheel from sources, run:

docker run --rm -v $(pwd):/io ghcr.io/pyo3/maturin build --release -i python3.12 -o /io/dist

Development

pip install .[dev]

Now you should be able to run the notebooks. Project structure:

├── __init__.py
├── neat_tnp
│   ├── neat_py_tnp.py          # reference TNP implementation
│   ├── neat_py_core.py
│   ├── neat_py_neat.py         # re-implementation of original NEAT
│   ├── neat_rs_tnp.py          # high-performance TNP implementation
│   ├── plotting.py             # utilities
│   ├── config_utils.py
│   ├── dem_utils.py
│   └── neat_py_tnp_eval.py     
├── crates                  # Rust crates for neat_rs_tnp.py
│   ├── neat_rs_core
│   └── neat_rs_tnp_rs
├── examples.ipynb          # canonical examples
├── pyproject.toml          # dependencies and package definition
└── README.md               # this file

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

neat_tnp-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (754.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

neat_tnp-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (753.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

neat_tnp-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (753.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

neat_tnp-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (754.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

neat_tnp-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (754.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file neat_tnp-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for neat_tnp-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f6ca980d74993ad23344ce0f44dfa104658b5bc114a0d06304ebb3d0708c9226
MD5 27804599c50390f719e45c13f167650b
BLAKE2b-256 f3a6b77d6138ab527b05a82dab13bb17b951d5e40ab7a91dbfc4192d4304a366

See more details on using hashes here.

File details

Details for the file neat_tnp-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for neat_tnp-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 30104e8da36824e5d8a2960656d819aa3fcb31217d95f77e9eb7a995c1436285
MD5 dc03432ac02b0b7814679e5f2fb56c95
BLAKE2b-256 6396442a5d8b1e3261e18bdecba475d1cf7bfc4480975c89fb4ca3d8dc710420

See more details on using hashes here.

File details

Details for the file neat_tnp-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for neat_tnp-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c04c057154c1092601ba143b57c11e16f5fd349b49c2443c99b858b9f1ccda9a
MD5 75426a869646398b23e7a75a8bc38f9a
BLAKE2b-256 fd9e9a37d1fe0f9337803d2fa1e01fed86c740f2780db17a7e3ecd6586b0df4a

See more details on using hashes here.

File details

Details for the file neat_tnp-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for neat_tnp-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 093f4a80f0a45c9a88d8b59333a8ae461c364e35a994bf676606ef474d07bde2
MD5 651c3893dd4bbc8718e6dc25deb231e8
BLAKE2b-256 50bbe6463947907d6c84c4a24fb6d8dfee038d1c851b235b4010a6697b9822ce

See more details on using hashes here.

File details

Details for the file neat_tnp-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for neat_tnp-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98d4260600e96a6d73cdb2ec198d20238533f9c12667ec584e30460eae45b7c3
MD5 c024f9377c4cffed1518c406b5c6db52
BLAKE2b-256 3bdb88bd93cef3e3dea3d05f0b915320315634cef39d761913678c3710dc12ba

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