genetic

genetic algorithm framework
git clone igris.git:dracuxan/genetic.git
Log | Files | Refs | README

commit c7452ccbad5e1a9b4f85bcd3c20287d2197413a0
parent 8f4c4c86c881b56dcc172adb0bf8319b2a39a976
Author: dracuxan <[email protected]>
Date:   Tue,  7 Apr 2026 12:23:59 +0530

example: portfolio optimization

Diffstat:
Agenetic/scripts/portfolio.exs | 29+++++++++++++++++++++++++++++
1 file changed, 29 insertions(+), 0 deletions(-)

diff --git a/genetic/scripts/portfolio.exs b/genetic/scripts/portfolio.exs @@ -0,0 +1,29 @@ +defmodule Portfolio do + alias Types.Chromosome + + @behaviour Problem + @target_fitness 180 + + @impl true + def genotype do + genes = + Enum.map(1..10, fn _ -> {:rand.uniform(10), :rand.uniform(10)} end) + + %Chromosome{genes: genes, size: 10} + end + + @impl true + def fitness_function(chromosome) do + chromosome.genes + |> Enum.map(fn {roi, risk} -> 2 * roi - risk end) + |> Enum.sum() + end + + @impl true + def terminate?([best | _], _generation) do + best.fitness > @target_fitness + end +end + +soln = Genetic.run(Portfolio) +IO.puts("\nfinal answer: #{inspect(soln)}")