genetic

genetic algorithm framework
git clone [email protected]:dracuxan/genetic.git
Log | Files | Refs | README

profile.exs (720B)


      1 defmodule DummyProblem do
      2   @behaviour Problem
      3   alias Types.Chromosome
      4 
      5   @impl true
      6   def genotype do
      7     genes = Enum.map(1..100, fn _ -> Enum.random(0..1) end)
      8     %Chromosome{genes: genes, size: 100}
      9   end
     10 
     11   @impl true
     12   def fitness_function(chromosome), do: Enum.sum(chromosome.genes)
     13 
     14   @impl true
     15   def terminate?(_pop, gen), do: gen == 1
     16 end
     17 
     18 defmodule Profiler do
     19   import ExProf.Macro
     20 
     21   def do_analyze do
     22     profile do
     23       Genetic.run(DummyProblem)
     24     end
     25   end
     26 
     27   def run do
     28     {records, _block_result} = do_analyze()
     29 
     30     total_percent =
     31       Enum.reduce(records, 0.0, fn
     32         records, acc -> records.percent + acc
     33       end)
     34 
     35     IO.inspect("total = #{total_percent}")
     36   end
     37 end
     38 
     39 Profiler.run()