EvoLP is a *playground* for evolutionary computation in Julia. It provides a set of predefined *building blocks* that can be coupled together to quickly generate evolutionary computation solvers and compute statistics for a variety of optimisation tasks, including discrete, continuous and combinatorial optimisation.

## Features

- Random population generators (vectors and particles)
- Parent selection operators
- Several crossover and mutation methods
- Test functions for benchmarking
- Convenient result reporting and a statistics logbook

You can combine these blocks to make your own algorithms or use some of the included *minimisers*: a generational GA, 1+1 Evolutionary Algorithm and Particle Swarm Optimisation solver.

## Installation

You can install EvoLP from the REPL using the built-in package manager:

```
julia> import Pkg
julia> Pkg.add("EvoLP")
```

## Getting started

- Read the documentation.
- See the code in GitHub.
- Browse some of the examples to see how to use the built-in algorithms.
- For a more comprehensive tutorial, read the 8-queen problem where we make an algorithm from scratch.

## Acknowledgements

EvoLP started as a toolbox for internal use by PhD students of NTNU’s Open AI Lab, and whose funding is provided by Project no. 311284 by The Research Council of Norway.

## License

EvoLP is licensed under the MIT License which makes it free and open source.