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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neat_tnp-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: neat_tnp-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 754.4 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f6ca980d74993ad23344ce0f44dfa104658b5bc114a0d06304ebb3d0708c9226
|
|
| MD5 |
27804599c50390f719e45c13f167650b
|
|
| BLAKE2b-256 |
f3a6b77d6138ab527b05a82dab13bb17b951d5e40ab7a91dbfc4192d4304a366
|
File details
Details for the file neat_tnp-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: neat_tnp-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 753.2 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30104e8da36824e5d8a2960656d819aa3fcb31217d95f77e9eb7a995c1436285
|
|
| MD5 |
dc03432ac02b0b7814679e5f2fb56c95
|
|
| BLAKE2b-256 |
6396442a5d8b1e3261e18bdecba475d1cf7bfc4480975c89fb4ca3d8dc710420
|
File details
Details for the file neat_tnp-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: neat_tnp-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 753.5 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c04c057154c1092601ba143b57c11e16f5fd349b49c2443c99b858b9f1ccda9a
|
|
| MD5 |
75426a869646398b23e7a75a8bc38f9a
|
|
| BLAKE2b-256 |
fd9e9a37d1fe0f9337803d2fa1e01fed86c740f2780db17a7e3ecd6586b0df4a
|
File details
Details for the file neat_tnp-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: neat_tnp-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 754.8 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
093f4a80f0a45c9a88d8b59333a8ae461c364e35a994bf676606ef474d07bde2
|
|
| MD5 |
651c3893dd4bbc8718e6dc25deb231e8
|
|
| BLAKE2b-256 |
50bbe6463947907d6c84c4a24fb6d8dfee038d1c851b235b4010a6697b9822ce
|
File details
Details for the file neat_tnp-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: neat_tnp-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 754.6 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98d4260600e96a6d73cdb2ec198d20238533f9c12667ec584e30460eae45b7c3
|
|
| MD5 |
c024f9377c4cffed1518c406b5c6db52
|
|
| BLAKE2b-256 |
3bdb88bd93cef3e3dea3d05f0b915320315634cef39d761913678c3710dc12ba
|