Azzera filtri
Azzera filtri

How to use crossover and mutation ?

2 visualizzazioni (ultimi 30 giorni)
Mira le
Mira le il 20 Dic 2019
Risposto: Star Strider il 20 Dic 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?

Risposta accettata

Star Strider
Star Strider il 20 Dic 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.

Più risposte (0)

Categorie

Scopri di più su Data Import and Analysis in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by