a simple evoulutionary algorithm 1. the user can enter any user defined string as the evolutionary tareget up to 30 characters max
Ältere Kommentare anzeigen
clc
clear
t= 'Hell world!';
numRands=length(t);
tlength=numRands;
source=t(ceil(rand(1,tlength)*numRands));
fitval = fitness(source, t);
i = 0;
while 1
i = i + 1;
m = mutate(source);
fitval_m = fitness(m, t);
if fitval_m < fitval
fitval = fitval_m;
source = m;
fprintf('%5i %5i %14s', i, fitval_m, m);
end
if fitval == 0
break
end
end
function fitval = fitness(source, t)
fitval = 0
for i = 1 : length(source)
fitval = fitval + (double(t(i)) - double(source(i))) ^ 2;
end
end
function parts = mutate(source)
parts = source;
charpos = randi(length(source)) - 1;
parts(charpos) = char(double(parts(charpos)) + (randi(3)-2));
end
2 Kommentare
Walter Roberson
am 30 Mär. 2018
Is there a question here?
yared Zeleke
am 30 Mär. 2018
Bearbeitet: Walter Roberson
am 31 Mär. 2018
Akzeptierte Antwort
Weitere Antworten (0)
Kategorien
Mehr zu Introduction to Installation and Licensing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!