if i have two vector how to perform single crossover?

if i have
p1 = [ 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1]
p2 = [ 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0]
how to perform single crossover
c1 = [ 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0]
c2 = [ 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1]

 Respuesta aceptada

This is how I do it in genetic algorithm programming:
p1 = [ 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 0 1 1];
p2 = [ 0 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0];
CrossoverIndex = 12; % This Would Usually Be Random
c1 = [p1(1:CrossoverIndex) p2(CrossoverIndex+1:end)];
c2 = [p2(1:CrossoverIndex) p1(CrossoverIndex+1:end)];
Producing:
c1 = 1 0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 1 0 0
c2 = 0 0 0 0 1 1 1 1 0 0 1 1 1 0 1 0 0 0 0 0 1 0 1 1

4 comentarios

Md. Kawsar Ahmed Asif
Md. Kawsar Ahmed Asif el 24 de Mayo de 2018
Editada: Md. Kawsar Ahmed Asif el 24 de Mayo de 2018
Hello Star Strider, Could you tell me the name or type of this Crossover. And how it works? Thank You
My pleasure.
Using the classifications given in Crossover Options (link), this would correspond to 'crossoversinglepoint'. It works exactly the way the documentation for it describes, so I will not repeat that here.
Thanks a lot once again Star Strider. Now i've got it... But what about for 2-point crossover like Partially Mapped or Matched Crossover (PMX). Suppose i have two parents as following, (here i'm taking two crossover point at 3rd and 4th position)
P1 = [3 1 2 5 4]
P2 = [2 1 5 4 3] , will produce the 1st Offspring as
C1 = [4 1 2 5 3]
Again,
P2 = [2 1 5 4 3]
P1 = [3 1 2 5 4] , wili produce the remaining 2nd Offspring as
C2 = [3 1 5 4 2]
Now how can i get these Two Offspring proceeding by 'Position Wise Exchanging'? (Where two parents are mapped to each other).
Thank You
Is this two point crossover. Here actually no crossover between parents. only swapping first and last element of a parent and producing a new child.

Iniciar sesión para comentar.

Más respuestas (1)

Hassan Sarfraz
Hassan Sarfraz el 6 de Sept. de 2018
Thanks... but how to get these parents from these childs again?

Categorías

Más información sobre MATLAB en Centro de ayuda y File Exchange.

Preguntada:

el 9 de Mayo de 2016

Comentada:

el 9 de Mayo de 2019

Community Treasure Hunt

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

Start Hunting!

Translated by