How to use crossover and mutation ?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mira le
le 20 Déc 2019
Réponse apportée : Star Strider
le 20 Déc 2019
my population is lake that
p1 = [ 9 3 6 0 0]
p2 = [1 0 2 5 0 ]
how to use crossover and mutation to obtain new solution?
0 commentaires
Réponse acceptée
Star Strider
le 20 Déc 2019
There are many possibilities.
Likely the simplest:
p1 = [ 9 3 6 0 0] % Parent
p2 = [1 0 2 5 0 ] % Parent
idx = randi(numel(p1)-1);
p1x = [p1(1:idx) p2(idx+1:end)] % Crossover
p2x = [p2(1:idx) p1(idx+1:end)] % Crossover
idx = randi(numel(p1));
p1m = p1;
p2m = p2;
p1m(idx) = randi(9) % Mutatiion
p2m(idx) = randi(9) % Mutatiion
producing (in this run):
p1 =
9 3 6 0 0
p2 =
1 0 2 5 0
idx =
3
p1x =
9 3 6 5 0
p2x =
1 0 2 0 0
idx =
3
p1m =
9 3 8 0 0
p2m =
1 0 1 5 0
The ‘idx’ values both just happened to be the same this time.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Data Import and Analysis dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!