Jido.Evolve provides a simple public API for evolutionary search.
Installation
Add the dependency to your mix.exs:
def deps do
[
{:jido_evolve, "~> 0.2.0"}
]
endOptional Igniter Install
mix igniter.install jido_evolve
Basic Usage
defmodule MyFitness do
use Jido.Evolve.Fitness
def evaluate(entity, _ctx), do: {:ok, String.length(entity)}
end
stream =
Jido.Evolve.evolve(
initial_population: ["a", "abcd", "abc"],
fitness: MyFitness
)
final_state = Enum.reduce(stream, fn _state, acc -> acc end)
IO.inspect(final_state.best_entity)