Evolutionary algorithm: Difference between revisions

add UTFool solution
(add UTFool solution)
Line 7,008:
'METHINKS IT IS LIKE A WEASEL'
</pre>
 
=={{header|UTFool}}==
<lang UTFool>
···
http://rosettacode.org/wiki/Evolutionary_algorithm
···
■ Evolutionary
§ static
target⦂ String: "METHINKS IT IS LIKE A WEASEL"
letter⦂ char[]: "ABCDEFGHIJKLMNOPQRSTUVWXYZ ".toCharArray°
parent⦂ String
random⦂ java.util.Random°
rate⦂ double: 0.5
C⦂ int: 1000
 
▶ fittness⦂ int · computes the 'closeness' of its
• argument⦂ String · to the target string
closeness⦂ int: 0
∀ i ∈ 0 … target.length°
closeness◥ if target.charAt i = argument.charAt i
return closeness
 
▶ mutate⦂ String · returns a copy of the
• given⦂ String · with some characters probably mutated
• rate⦂ double
copy⦂ char[]: given.toCharArray°
∀ i ∈ 0 … given.length°
copy[i]: letter[random.nextInt letter.length] if rate > random.nextDouble°
return String.valueOf copy
 
▶ main
• args⦂ String[]
ancest⦂ StringBuilder°
∀ i ∈ 0 … target.length°
ancest.append letter[random.nextInt letter.length]
parent: ancest.toString°
currentFittness⦂ int: fittness parent
generation⦂ int: 0
🔁 until the parent ≈ target
if fittness parent > currentFittness
currentFittness: fittness parent
System.out.println "Fittness of generation #⸨generation⸩ is ⸨currentFittness⸩"
for each time from 1 to C
mutation⦂ String: mutate parent, rate
parent: mutation if fittness parent < fittness mutation
generation◥
System.out.println "Target reached by generation #⸨generation⸩"
</lang>
 
=={{header|vbscript}}==
Anonymous user