Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ecrs-org/ecrs

ecrs - Evolutionary computation algorithms & tools for Rust
https://github.com/ecrs-org/ecrs

evolutionary-computation genetic-algorithm rust

Last synced: about 1 month ago
JSON representation

ecrs - Evolutionary computation algorithms & tools for Rust

Awesome Lists containing this project

README

        

# ECRS - Evolutionary Computation for Rust

**Disclaimer** Please note that this library is in early development phase and breaking changes may occur without any notice.

Evolutionary computation tools & algorithms.

The library provides:

* [Genetic algorithm](src/ga.rs) generic implementation with series of operators
* [Ant System algorithm](src/aco.rs) implementation
* [Firefly algorithm](src/ff.rs) implementation
* [PSO algorithm](src/pso.rs) implementation

For genetic algorithm there are various genetic operators & utility predefined:

* Crossover operators:
* SinglePoint
* TwoPoint
* MultiPoint
* Uniform
* Ordered
* PMX
* Selection operators:
* RouletteWheel
* Random
* Rank
* RankR
* Tournament
* StochasticUniversalSampling
* Boltzmann
* Mutation operators:
* Identity
* FlipBit
* Interchange
* Reversing
* Population generatos
* RandomPoints
* BitStrings

Each operator can be used in plug-in style to alternate algorithm behaviour.

The library also offers highly customizable logging system based on "probing". You can check out our [examples](examples/)

## Get started

### Installation

To add `ecrs` to your project simply make use of `cargo add` command:

```
cargo add ecrs
```

### Usage

Work in progess...

For now the best method to get started is checking out our [examples](examples/)

## MSRV

During this stage of development there is not MSRV policy estabilished yet. Currently `MSRV == 1.65.0` as there are some usages of syntax introduced in `1.65.0` in the codebase.

## Clone & repo setup

```bash
# Clone the repository
git clone [email protected]:ecrs-org/ecrs.git ecrs

# Install the hooks
git config core.hooksPath .githooks
```