Metadata-Version: 2.4
Name: evokit
Version: 0.5.0
Summary: A evolutionary computing framework
Author-email: Yiding Li <commit@lyodine.com>
Project-URL: Homepage, https://yidingli.com/evokit/
Project-URL: Documentation, https://yidingli.com/evokit/docs/
Project-URL: Repository, https://gitlab.com/evokit/evokit
Keywords: Machine Learning,Evolutionary Computing,Framework
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3.12
Classifier: Natural Language :: English
Classifier: Topic :: Documentation :: Sphinx
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Artificial Life
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.12.0
Description-Content-Type: text/markdown
Provides-Extra: gp-visualise
Requires-Dist: graphviz>=0.20.3; extra == "gp-visualise"
Provides-Extra: test
Requires-Dist: pytest>=8.2.0; extra == "test"
Requires-Dist: nbmake>=1.5.4; extra == "test"
Provides-Extra: accounting-visualise
Requires-Dist: numpy>=1.26.4; extra == "accounting-visualise"
Requires-Dist: matplotlib>=3.10.1; extra == "accounting-visualise"
Provides-Extra: multiprocess
Requires-Dist: multiprocess>=0.70.18; extra == "multiprocess"
Provides-Extra: pickling
Requires-Dist: dill>=0.4.0; extra == "pickling"

<p align="center">
<img src="./media/gear.svg" width=100>
</p>

# EVOKIT

A modular, [permissively licensed](./LICENCE.txt), highly customisable evolutionary computing framework. This framework was developed further from [my MEng report](media\YidingLi-MEng-2024-09-23.pdf), produced with supervision and guidance from [Dr. Stephen Kelly](https://creativealgorithms-cd4c88.gitlab.io/team/).

This framework is thoroughly documented and completely typed. Please see the [documentation] for instructions on how to install and use it.

## Installation

Install from PyPI:

```shell
pip install evokit
```

Install from source:

```
pip install .
```

Please see [documentation](https://yidingli.com/projects/evokit/docs/install-and-build.html) for detailed instructions, how the project is built, and how to perform a trial run after installation.

## Components

The library have the following modules:

| Component                                                    | Description                                              |
| ------------------------------------------------------------ | -------------------------------------------------------- |
| [core](./evokit/core/)                                       | Interfaces for custom evolutionary operators             |
| [core.accelerator](./evokit/core/accelerator/)               | Performance-boosting utilities; parallelisation          |
| [accounting](./evokit/accounting/)                           | Observe and report algorithms at runtime                 |
| [core.accelerator](./evokit/evolvables/)                     | Custom evolutionary operators, including representations |
| [tools.diversity](./evokit/tools/diversity/)                 | Diversity maintenance                                    |
| [core.lineage](./evokit/tools/lineage/)                      | Lineage tracing                                          |
| `save`, `load` in [core.population](./evokit/core/population.py) | Saving and loading individuals and populations           |



