Evolutionary algorithm: Difference between revisions
added Arturo
Antoni Gual (talk | contribs) |
Drkameleon (talk | contribs) (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}}==
|