Skip to content

Commit d569050

Browse files
committed
add speller problem
1 parent b47d15a commit d569050

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

scripts/speller.ex

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
defmodule Speller do
2+
@behaviour Problem
3+
alias Types.Chromosome
4+
5+
@impl true
6+
def genotype do
7+
genes = Stream.repeatedly(fn -> Enum.random(?a..?z) end)
8+
|> Enum.take(6)
9+
10+
%Chromosome{genes: genes, size: 6}
11+
end
12+
13+
@impl true
14+
def fitness_function(chromosome) do
15+
target = "sekrit"
16+
guess = List.to_string(chromosome.genes)
17+
String.jaro_distance(target, guess)
18+
end
19+
20+
@impl true
21+
def terminate?([best | _]), do: best.fitness == 1
22+
end
23+
24+
solution = Genetic.run(Speller)
25+
IO.write("\n")
26+
IO.inspect(solution)
27+

0 commit comments

Comments
 (0)