Evolutionary algorithm: Difference between revisions

added Arturo
(added Arturo)
Line 968:
METHINKS IT IS LIKE A WEASEL
METHINKS IT IS LIKE A WEASEL</pre>
 
=={{header|Arturo}}==
 
<syntaxhighlight lang="arturo">target: "METHINKS IT IS LIKE A WEASEL"
alphabet: [` `] ++ @`A`..`Z`
p: 0.05
c: 100
 
 
negFitness: function [trial][
result: 0
loop 0..dec size trial 'i ->
if target\[i] <> trial\[i] -> inc 'result
return result
]
 
mutate: function [parent][
result: ""
loop parent 'c ->
'result ++ (p > random 0.0 1.0)? -> sample alphabet -> c
return result
]
 
parent: ""
do.times: size target ->
'parent ++ sample alphabet
 
j: 0
 
copies: []
while [parent <> target][
'copies ++ map c 'i -> mutate parent
 
best: first copies
loop 1..dec size copies 'i [
if (negFitness copies\[i]) < negFitness best ->
best: copies\[i]
]
parent: best
 
print [pad to :string j 2 parent]
inc 'j
]</syntaxhighlight>
 
{{out}}
 
<pre> 0 JBTBAFNWA YYZTOUBPIUUSPTFKYK
1 JBTBAFNWA YYFTOUBPIUU PTFKYK
2 MBTBAFNWA YYFTOUBPDUU PTFKYK
3 MBTBCMNWA YYFTOUBPDUU PTFKEK
4 MBTBCMNWA YDFSOUBPDUU PTFKEK
...
27 METHINVSV TDIS LIKE A WZASEK
28 METHINVSV TDIS LIKE A WZASEL
29 METHINVSV TDIS LIKE A WZASEL
30 METHINVSV TDIS LIKE A WZASEL
31 METHINVSV TDIS LIKE A WZASEL
32 METHINVSV TDIS LIKE A WZASEL
33 METHINVSV TDIS LIKE A WZASEL
34 METHINVSV TDIS LIKE A WZASEL
35 METHINVS TMIS LIKE A WZASEL
...
57 METHINVS ITMIS LIKE A WEASEL
58 METHINVS IT IS LIKE A WEASEL
59 METHINVS IT IS LIKE A WEASEL
60 METHINKS IT IS LIKE A WEASEL</pre>
 
=={{header|AutoHotkey}}==
1,532

edits