# algen
Algen is a platform, written in rust, for running genetic algorithms.
## Installation
Add the dependency to your crates
```toml
[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
[dependencies]
algen = "0.1.2"
```
And then you can run cargo to fetch it.
```bash
cargo build
```
## Usage
Algen provides an abstraction on top of genetic algorithms. On its own, it
does not provide a working implementation. That's up to you! So here are the
traits you need to implement in order to use Algen:
- **Algorithm** to define how input data is manipulated to solve a particular
problem.
- **Analyzer** to score the result of the algorithm and produce a numeric
value representing how well it did.
In addition to these traits, you need to provide [TestParameters](https://docs.rs/algen/latest/algen/models/test_parameters/index.html) and
some kind of **Input Data** which is fed to your algorithm.
See the example in the examples folder for more details.
```rust
run_algorithm(
¶meters,
test_data,
algo,
analyzer,
Some(after_generation),
);
```
## Features
Optionally, you can include the tracing feature if you would like the library
to emit traces using the [tracing](https://crates.io/crates/tracing) crate.
```toml
[dependencies]
algen = { version = "0.1.2", features = ["tracing"] }
```
## Contributing
Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change.
Please make sure to update tests as appropriate.
## License
[MIT](https://choosealicense.com/licenses/mit/)