Jido.Evolve is a generic evolutionary algorithm framework for Elixir.
The canonical public API is evolve/1.
Summary
Functions
@spec evolve(keyword() | map()) :: Enumerable.t()
Run an evolutionary search over a population.
Required options
:initial_population- List of entities to evolve.:fitness- Module implementingevaluate/2.
Optional options
:config-%Jido.Evolve.Config{}or config options map/keyword.:context- Context map passed tofitness.evaluate/2.:mutation- Mutation strategy module override.:selection- Selection strategy module override.:crossover- Crossover strategy module override.
Examples
defmodule MyFitness do
use Jido.Evolve.Fitness
def evaluate(entity, _ctx), do: {:ok, String.length(entity)}
end
Jido.Evolve.evolve(
initial_population: ["a", "abc", "ab"],
fitness: MyFitness
)
|> Enum.to_list()
@spec version() :: String.t()
Get version information.