Evolutionary algorithm: Difference between revisions
Content deleted Content added
Line 4,595:
let _possibilities: String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ "
let _c: U16 = 100 // number of spawn per generation
let
let
var _parent: String = ""
Line 4,604:
var iter: U64 = 0
while not _target.eq(_parent) do
let rate: F64 =
iter = iter + 1
if (iter % 100) == 0 then
Line 4,611:
_env.out.print(", rate: " + rate.string())
end
var
var
var i: U16 = 0
while i < _c do
let spawn = mutate(_parent, rate)
let spawn_fitness = fitness(spawn)
if spawn_fitness >
end
i = i + 1
end
if
_parent =
end
end
Line 4,630:
fun fitness(trial: String): USize =>
var
var i: USize = 0
while i < trial.size() do
try
if trial(i) == _target(i) then
end
end
i = i + 1
end
fun
let
((
fun ref mutate(parent: String box, rate: F64): String =>
var
for char in parent.values() do
let
if
let
try
end
else
end
end
consume
Output:
<pre>100: UMMMDNKR IEIIB IIKZ A THAHEL, fitness: 14, rate: 0.455
|