25 lines
469 B
Elixir
25 lines
469 B
Elixir
defmodule OneMax do
|
|
alias Types.Chromosome
|
|
|
|
@behaviour Problem
|
|
|
|
@impl true
|
|
def genotype() do
|
|
genes = for _ <- 1..1000, do: Enum.random(0..1)
|
|
%Chromosome{genes: genes}
|
|
end
|
|
|
|
@impl true
|
|
def fitness_function(chromosome) do
|
|
Enum.sum(chromosome.genes)
|
|
end
|
|
|
|
@impl true
|
|
def terminate?(_population, generation), do: generation == 100
|
|
end
|
|
|
|
soln = Genetic.run(OneMax)
|
|
|
|
IO.write("\n")
|
|
IO.inspect(soln.genes)
|